/* ============================================================
   RENDEZ-VOUS IMMO - CSS HOME (Elementor / WPML 3 langues)
   Charge sur la front page via functions.php enfant (is_front_page).
   IDs des pages d'accueil : 63306 (FR) / 63307 (EN) / 63308 (ES).
   Chaque selecteur lie a la page est donc decline pour les 3 IDs,
   car WPML attribue un ID distinct a chaque traduction (et donc
   des classes body.elementor-page-XXXXX et .elementor-XXXXX
   differentes par langue).
   Role :
     1. Centrer les conteneurs Elementor (le vrai correctif largeur)
     2. Rehabiller le carousel et les cartes Wiidoo (dont le CSS
        natif est retire sur la Home par le filtre style_loader_src)
     5. Rehabiller la barre de recherche Wiidoo (champs blancs,
        grille responsive, texte par defaut lisible)
   NE PAS mettre ici les styles single/global Wiidoo : ils restent
   dans le Customizer car ils servent aux autres pages.
   ============================================================ */

/* ------------------------------------------------------------
   1. CENTRAGE & LARGEUR DES CONTENEURS ELEMENTOR
   La cause du debordement n'etait pas la largeur (deja a 1140)
   mais l'alignement : les conteneurs flex parents ne centraient
   pas leurs enfants. align-items:center regle ca.
   ------------------------------------------------------------ */

/* Les conteneurs flex (parents inclus) centrent leurs enfants */
body.elementor-page-63306 .e-con,
body.elementor-page-63307 .e-con,
body.elementor-page-63308 .e-con,
body.elementor-page-63306 .e-con-inner,
body.elementor-page-63307 .e-con-inner,
body.elementor-page-63308 .e-con-inner {
  align-items: center !important;
}

/* Chaque inner se limite a 1140 et se centre */
body.elementor-page-63306 .e-con > .e-con-inner,
body.elementor-page-63307 .e-con > .e-con-inner,
body.elementor-page-63308 .e-con > .e-con-inner {
  width: 100% !important;
  max-width: 1140px !important;
  margin-inline: auto !important;
}

/* Les widgets enfants peuvent retrecir et se recentrent dans 1140
   (min-width:0 = empeche un contenu long de pousser la largeur) */
body.elementor-page-63306 .e-con-inner > .elementor-widget,
body.elementor-page-63307 .e-con-inner > .elementor-widget,
body.elementor-page-63308 .e-con-inner > .elementor-widget,
body.elementor-page-63306 .e-con-inner > .elementor-element:not(.e-con),
body.elementor-page-63307 .e-con-inner > .elementor-element:not(.e-con),
body.elementor-page-63308 .e-con-inner > .elementor-element:not(.e-con) {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 1140px !important;
  margin-inline: auto !important;
}

/* Conteneurs pleine largeur (e-con-full) : centrer leur contenu dans 1140 */
body.elementor-page-63306 .e-con.e-con-full,
body.elementor-page-63307 .e-con.e-con-full,
body.elementor-page-63308 .e-con.e-con-full {
  align-items: center !important;
}
body.elementor-page-63306 .e-con.e-con-full > .elementor-widget,
body.elementor-page-63307 .e-con.e-con-full > .elementor-widget,
body.elementor-page-63308 .e-con.e-con-full > .elementor-widget,
body.elementor-page-63306 .e-con.e-con-full > .elementor-element,
body.elementor-page-63307 .e-con.e-con-full > .elementor-element,
body.elementor-page-63308 .e-con.e-con-full > .elementor-element {
  width: 100% !important;
  max-width: 1140px !important;
  margin-inline: auto !important;
}

/* Heros (bloc 3c5ab5b) : centrer le H1 et les widgets a toute profondeur */
body.elementor-page-63306 .elementor-element-3c5ab5b .elementor-widget,
body.elementor-page-63307 .elementor-element-3c5ab5b .elementor-widget,
body.elementor-page-63308 .elementor-element-3c5ab5b .elementor-widget {
  width: 100% !important;
  max-width: 1140px !important;
  margin-inline: auto !important;
}
body.elementor-page-63306 .elementor-element-3c5ab5b .elementor-heading-title,
body.elementor-page-63307 .elementor-element-3c5ab5b .elementor-heading-title,
body.elementor-page-63308 .elementor-element-3c5ab5b .elementor-heading-title {
  text-align: center !important;
}

/* Anciennes Sections Elementor (hero, temoignages) */
body.elementor-page-63306 .elementor-section > .elementor-container,
body.elementor-page-63307 .elementor-section > .elementor-container,
body.elementor-page-63308 .elementor-section > .elementor-container {
  max-width: 1140px !important;
  margin-inline: auto !important;
}

/* Widget HTML "Agent immobilier" : autorise le retour a la ligne */
body.elementor-page-63306 .elementor-widget-html,
body.elementor-page-63307 .elementor-widget-html,
body.elementor-page-63308 .elementor-widget-html {
  max-width: 100% !important;
  overflow-wrap: break-word !important;
}

/* Titres bruts <h2> dans les widgets HTML */
body.elementor-page-63306 .elementor-widget-html h2,
body.elementor-page-63307 .elementor-widget-html h2,
body.elementor-page-63308 .elementor-widget-html h2 {
  color: #2e8bd6 !important;
  text-align: center !important;
}

/* ------------------------------------------------------------
   1bis. CENTRAGE GLOBAL DES TITRES DE SECTION (correctif H1)
   Probleme : seul le H1 du heros (bloc 3c5ab5b) etait centre.
   Les autres titres ("Nos clients temoignent", "Notre catalogue
   de proprietes", "La revue de presse sur Estepona", "Vous
   recherchez une propriete a la location ?") sont aussi des H1
   mais dans d'AUTRES sections - non ciblees par les regles
   precedentes - donc colles au bord gauche du viewport.

   Correctif independant des data-id : on contraint TOUT widget
   titre/texte de la page a 1140 centre, a n'importe quelle
   profondeur, qu'il soit dans .e-con OU .elementor-section.
   ------------------------------------------------------------ */

/* a) Tous les widgets Titre (heading) et Texte, peu importe la
      profondeur d'imbrication : largeur bornee + recentres */
body.elementor-page-63306 .elementor-widget-heading,
body.elementor-page-63307 .elementor-widget-heading,
body.elementor-page-63308 .elementor-widget-heading,
body.elementor-page-63306 .elementor-widget-text-editor,
body.elementor-page-63307 .elementor-widget-text-editor,
body.elementor-page-63308 .elementor-widget-text-editor {
  width: 100% !important;
  max-width: 1140px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* b) Le texte du titre lui-meme est centre horizontalement.
      Cible H1, H2, H3 dans les widgets heading + le wrapper. */
body.elementor-page-63306 .elementor-widget-heading .elementor-heading-title,
body.elementor-page-63307 .elementor-widget-heading .elementor-heading-title,
body.elementor-page-63308 .elementor-widget-heading .elementor-heading-title,
body.elementor-page-63306 .elementor-widget-heading h1,
body.elementor-page-63307 .elementor-widget-heading h1,
body.elementor-page-63308 .elementor-widget-heading h1,
body.elementor-page-63306 .elementor-widget-heading h2,
body.elementor-page-63307 .elementor-widget-heading h2,
body.elementor-page-63308 .elementor-widget-heading h2,
body.elementor-page-63306 .elementor-widget-heading h3,
body.elementor-page-63307 .elementor-widget-heading h3,
body.elementor-page-63308 .elementor-widget-heading h3 {
  text-align: center !important;
}

/* ------------------------------------------------------------
   1ter. COULEUR DES TITRES (palette bleu)
   H1 = bleu fonce (#0d2f4a), SAUF le H1 du heros (bloc 3c5ab5b)
   qui reste blanc sur l'image de fond marine.
   H2 = bleu clair (#2e8bd6).
   Cible les widgets heading Elementor a toute profondeur.
   ------------------------------------------------------------ */

/* H1 bleu fonce (tous les widgets heading sauf heros) */
body.elementor-page-63306 .elementor-widget-heading h1.elementor-heading-title,
body.elementor-page-63307 .elementor-widget-heading h1.elementor-heading-title,
body.elementor-page-63308 .elementor-widget-heading h1.elementor-heading-title {
  color: #0d2f4a !important;
}

/* Re-exclusion : le H1 du heros (bloc 3c5ab5b) reste blanc */
body.elementor-page-63306 .elementor-element-3c5ab5b h1.elementor-heading-title,
body.elementor-page-63307 .elementor-element-3c5ab5b h1.elementor-heading-title,
body.elementor-page-63308 .elementor-element-3c5ab5b h1.elementor-heading-title {
  color: #ffffff !important;
}

/* H2 bleu clair (tous les widgets heading) */
body.elementor-page-63306 .elementor-widget-heading h2.elementor-heading-title,
body.elementor-page-63307 .elementor-widget-heading h2.elementor-heading-title,
body.elementor-page-63308 .elementor-widget-heading h2.elementor-heading-title {
  color: #2e8bd6 !important;
}

/* OVERRIDES CIBLES PAR WIDGET (places apres les regles generales pour gagner)
   - Heros "Trouvez la propriete de vos reves" = H2 widget 92eadec : reste BLANC
     (annule la regle H2 bleu clair ci-dessus sur ce widget precis).
   - "Votre agent immobilier a Estepona depuis 2013" = H1 widget 99a0063 :
     BLEU FONCE (annule la re-exclusion blanche du bloc heros 3c5ab5b qui
     l'attrapait par erreur car il est imbrique dans ce bloc). */
body.elementor-page-63306 .elementor-element-92eadec h2.elementor-heading-title,
body.elementor-page-63307 .elementor-element-92eadec h2.elementor-heading-title,
body.elementor-page-63308 .elementor-element-92eadec h2.elementor-heading-title {
  color: #ffffff !important;
}
body.elementor-page-63306 .elementor-element-99a0063 h1.elementor-heading-title,
body.elementor-page-63307 .elementor-element-99a0063 h1.elementor-heading-title,
body.elementor-page-63308 .elementor-element-99a0063 h1.elementor-heading-title {
  color: #0d2f4a !important;
}
/* Note : les titres (heading) restent centres via le bloc b).
   Le justifie n'affecte pas les textes tenant sur une seule ligne
   (ex. sous-titre du heros), donc aucun risque pour les libelles courts. */
body.elementor-page-63306 .elementor-widget-text-editor,
body.elementor-page-63307 .elementor-widget-text-editor,
body.elementor-page-63308 .elementor-widget-text-editor,
body.elementor-page-63306 .elementor-widget-text-editor p,
body.elementor-page-63307 .elementor-widget-text-editor p,
body.elementor-page-63308 .elementor-widget-text-editor p {
  text-align: justify !important;
  -webkit-hyphens: auto !important;
  hyphens: auto !important;
}

/* d) Filet de securite : si un de ces titres est dans un
      conteneur "pleine largeur" non borne (cause du debord a
      gauche jusqu'a x=0), on borne le conteneur de section et
      ses enfants directs, a toute profondeur. */
body.elementor-page-63306 .elementor-section .elementor-widget-wrap > .elementor-widget,
body.elementor-page-63307 .elementor-section .elementor-widget-wrap > .elementor-widget,
body.elementor-page-63308 .elementor-section .elementor-widget-wrap > .elementor-widget,
body.elementor-page-63306 .e-con > .elementor-widget,
body.elementor-page-63307 .e-con > .elementor-widget,
body.elementor-page-63308 .e-con > .elementor-widget,
body.elementor-page-63306 .e-con-inner > .elementor-widget,
body.elementor-page-63307 .e-con-inner > .elementor-widget,
body.elementor-page-63308 .e-con-inner > .elementor-widget {
  margin-inline: auto !important;
}

/* ------------------------------------------------------------
   2. REHABILLAGE CAROUSEL "Decouvrez nos proprietes"
   (le CSS natif Wiidoo etant retire sur la Home)
   ------------------------------------------------------------ */

.elementor-63306 .swipercaro,
.elementor-63307 .swipercaro,
.elementor-63308 .swipercaro {
  overflow: hidden !important;
  width: 100% !important;
  max-width: 1140px !important;
  margin: 0 auto !important;
  height: 300px !important;
}
.elementor-63306 .caro,
.elementor-63307 .caro,
.elementor-63308 .caro {
  height: 300px !important;
  width: 100% !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  background-position: center center !important;
  border: 0 !important;
  padding: 0 !important;
}
.elementor-63306 .dark-overlord,
.elementor-63307 .dark-overlord,
.elementor-63308 .dark-overlord {
  height: 300px !important;
  width: 100% !important;
  color: #fff;
  display: flex;
  background-color: rgba(0, 0, 0, 0.5);
}
.elementor-63306 .chug,
.elementor-63307 .chug,
.elementor-63308 .chug { width: 100% !important; }
.elementor-63306 .caro-title,
.elementor-63307 .caro-title,
.elementor-63308 .caro-title { width: 100% !important; font-size: 21px; }
.elementor-63306 .swipermain,
.elementor-63307 .swipermain,
.elementor-63308 .swipermain { overflow: hidden !important; }

/* Carrousel photo interne aux cartes de #rs_resultsbox.
   Ces .swipermain ne sont pas sous .elementor-63306, donc la regle
   ci-dessus ne les atteint pas. overflow:hidden confine les slides
   2/7, 3/7... a l'interieur de la carte sans bloquer le swipe
   (c'est .swiper-wrapper qui translate, pas le conteneur). */
#rs_resultsbox > .propys .swipermain {
  overflow: hidden !important;
  width: 100% !important;
}
.elementor-63306 .swiper-scrollbar,
.elementor-63307 .swiper-scrollbar,
.elementor-63308 .swiper-scrollbar { position: relative !important; width: 100% !important; }
.elementor-63306 .swiper-button-next2,
.elementor-63307 .swiper-button-next2,
.elementor-63308 .swiper-button-next2 { height: 0 !important; }

/* ------------------------------------------------------------
   3. REHABILLAGE GRILLE "Dernieres proprietes en vente"
   IMPORTANT : le conteneur reel des cartes est #rs_resultsbox
   (un .rs-row imbrique), et il n'est PAS sous .elementor-63306.
   On le cible donc par son ID seul (unique sur la page), sinon
   le prefixe .elementor-63306 rate la cible et rien ne s'applique.
   On ne touche PAS le .rs-row generique (qui sert au bloc
   Trier + pagination) pour ne pas casser sa mise en page.
   ------------------------------------------------------------ */

#rs_resultsbox {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  max-width: 1140px !important;
  margin: 0 auto !important;
}
.elementor-63306 .propys,
.elementor-63307 .propys,
.elementor-63308 .propys { padding: 5px !important; }
.elementor-63306 .rs-col,
.elementor-63307 .rs-col,
.elementor-63308 .rs-col {
  padding: 8px !important;
  box-sizing: border-box;
}

/* GRID PROPRIETES - 3 colonnes desktop.
   Selecteur combine toutes les classes reelles de la carte pour
   atteindre la specificite maximale (1,5,0) face aux regles natives.
   box-sizing border-box : sans !important, le padding s'ajoute au
   flex-basis en content-box et les 3 colonnes ne tiennent plus. */
#rs_resultsbox > .propys.rs-col.s12.m12.l4 {
  width: 33.3333% !important;
  max-width: 33.3333% !important;
  flex: 0 0 33.3333% !important;
  box-sizing: border-box !important;
}
.elementor-63306 .rs-card,
.elementor-63307 .rs-card,
.elementor-63308 .rs-card {
  box-shadow: none !important;
  border: 1px solid #f0f2f5;
}
.elementor-63306 .prophead,
.elementor-63307 .prophead,
.elementor-63308 .prophead { min-height: 55px !important; padding: 8px !important; }
.elementor-63306 .proptitlecard,
.elementor-63307 .proptitlecard,
.elementor-63308 .proptitlecard {
  height: 50px !important;
  display: flex;
  justify-content: center;
  align-items: center;
}
.elementor-63306 .limited_description,
.elementor-63307 .limited_description,
.elementor-63308 .limited_description { font-size: 11px !important; font-weight: 200 !important; }
.elementor-63306 .pricee,
.elementor-63307 .pricee,
.elementor-63308 .pricee {
  font-size: 17px !important;
  margin-bottom: 10px !important;
  height: 34px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.elementor-63306 .pricee2,
.elementor-63307 .pricee2,
.elementor-63308 .pricee2 {
  display: grid !important;
  grid-template-columns: auto auto auto auto !important;
  font-size: 13px !important;
  gap: 10px !important;
}
.elementor-63306 .pricee2 div,
.elementor-63307 .pricee2 div,
.elementor-63308 .pricee2 div { display: flex; align-items: center !important; gap: 5px !important; }
.elementor-63306 .pricee2 div svg,
.elementor-63307 .pricee2 div svg,
.elementor-63308 .pricee2 div svg { height: 13px; }

/* ------------------------------------------------------------
   4. RESPONSIVE (grille proprietes + titres)
   Grid proprietes : 3 col (desktop) / 2 col (tablette <=1024)
   / 1 col (mobile <=767). Memes selecteurs renforces que la
   regle desktop pour battre les classes natives Wiidoo.
   ------------------------------------------------------------ */

@media (max-width: 1024px) {
  .elementor-63306 h1.elementor-heading-title,
.elementor-63307 h1.elementor-heading-title,
.elementor-63308 h1.elementor-heading-title { font-size: 42px !important; line-height: 1.15 !important; }
  .elementor-63306 h2,
.elementor-63307 h2,
.elementor-63308 h2 { font-size: 24px !important; line-height: 1.25 !important; }

  /* TABLETTE : 2 colonnes */
  #rs_resultsbox > .propys.rs-col.s12.m12.l4 {
    width: 50% !important;
    max-width: 50% !important;
    flex: 0 0 50% !important;
  }
}

@media (max-width: 767px) {
  .elementor-63306 h1.elementor-heading-title,
  .elementor-63307 h1.elementor-heading-title,
  .elementor-63308 h1.elementor-heading-title { font-size: 32px !important; line-height: 1.2 !important; margin-bottom: 16px !important; }
  .elementor-63306 h2,
  .elementor-63307 h2,
  .elementor-63308 h2 { font-size: 20px !important; line-height: 1.3 !important; margin-top: 26px !important; margin-bottom: 12px !important; }

  /* MOBILE : 1 colonne */
  #rs_resultsbox > .propys.rs-col.s12.m12.l4 {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }
}

@media (max-width: 480px) {
  .elementor-63306 h1.elementor-heading-title,
.elementor-63307 h1.elementor-heading-title,
.elementor-63308 h1.elementor-heading-title { font-size: 28px !important; }
  .elementor-63306 h2,
.elementor-63307 h2,
.elementor-63308 h2 { font-size: 19px !important; }
}

/* ============================================================
   5. BARRE DE RECHERCHE WIIDOO (heros) - restyling
   Champs fond blanc opaque, grille 4 colonnes desktop calee sur
   la maquette : ligne 1 = Location / Property Types / Price Min /
   Price Max ; ligne 2 = Beds / Reference / case a cocher / Search.
   Tablette : 2 par ligne. Mobile : 1 par ligne.
   Cible la structure reelle : .wiisearchbar > .rs-col.l3
   avec champs virtual-select (.vscomp-*), input .rs-input,
   case .newdevs1, bouton #rsosearchbut, bouton .adv_butt (masque).
   ============================================================ */

/* La barre : grille flex pleine largeur, 1140 centre */
body.elementor-page-63306 .wiisearchbar,
body.elementor-page-63307 .wiisearchbar,
body.elementor-page-63308 .wiisearchbar {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  gap: 10px !important;
  width: 100% !important;
  max-width: 1140px !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

/* Chaque colonne : on annule la largeur native l3 et on pose une
   grille 4 par ligne (Location, Property Types, Price Min, Price Max
   sur ligne 1 ; Beds, Reference, case, Search sur ligne 2).
   gap 10px x3 intervalles => on retire 7.5px par cellule. */
body.elementor-page-63306 .wiisearchbar > .rs-col,
body.elementor-page-63307 .wiisearchbar > .rs-col,
body.elementor-page-63308 .wiisearchbar > .rs-col {
  flex: 1 1 calc(25% - 7.5px) !important;
  max-width: calc(25% - 7.5px) !important;
  width: auto !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

/* --- Champs virtual-select (Lieu, Types, Prix, Lits) --- */
body.elementor-page-63306 .wiisearchbar .vscomp-toggle-button,
body.elementor-page-63307 .wiisearchbar .vscomp-toggle-button,
body.elementor-page-63308 .wiisearchbar .vscomp-toggle-button {
  background-color: #ffffff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid #e2e2e2 !important;
  border-radius: 4px !important;
  height: 48px !important;
  min-height: 48px !important;
  box-sizing: border-box !important;
}
body.elementor-page-63306 .wiisearchbar .vscomp-ele,
body.elementor-page-63307 .wiisearchbar .vscomp-ele,
body.elementor-page-63308 .wiisearchbar .vscomp-ele,
body.elementor-page-63306 .wiisearchbar .vscomp-ele-wrapper,
body.elementor-page-63307 .wiisearchbar .vscomp-ele-wrapper,
body.elementor-page-63308 .wiisearchbar .vscomp-ele-wrapper {
  width: 100% !important;
  background: transparent !important;
}
body.elementor-page-63306 .wiisearchbar .vscomp-value,
body.elementor-page-63307 .wiisearchbar .vscomp-value,
body.elementor-page-63308 .wiisearchbar .vscomp-value {
  color: #2a2a2a !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  padding-left: 4px !important;
  opacity: 1 !important;
}
/* CAUSE REELLE du texte pale : opacity:0.5 appliquee par le composant
   vscomp sur le texte par defaut (PAS de classe .placeholder ici).
   On force l'opacite pleine sur TOUTE la chaine (value + toggle-button
   + wrapper) pour couvrir le cas ou l'opacite serait posee sur un parent,
   et on impose un gris fonce lisible. Selecteurs renforces (double classe)
   pour battre le main.min.css natif du composant. */
body.elementor-page-63306 .wiisearchbar .vscomp-ele-wrapper,
body.elementor-page-63307 .wiisearchbar .vscomp-ele-wrapper,
body.elementor-page-63308 .wiisearchbar .vscomp-ele-wrapper,
body.elementor-page-63306 .wiisearchbar .vscomp-toggle-button,
body.elementor-page-63307 .wiisearchbar .vscomp-toggle-button,
body.elementor-page-63308 .wiisearchbar .vscomp-toggle-button,
body.elementor-page-63306 .wiisearchbar .vscomp-toggle-button .vscomp-value,
body.elementor-page-63307 .wiisearchbar .vscomp-toggle-button .vscomp-value,
body.elementor-page-63308 .wiisearchbar .vscomp-toggle-button .vscomp-value,
body.elementor-page-63306 .wiisearchbar .vscomp-wrapper .vscomp-value,
body.elementor-page-63307 .wiisearchbar .vscomp-wrapper .vscomp-value,
body.elementor-page-63308 .wiisearchbar .vscomp-wrapper .vscomp-value {
  opacity: 1 !important;
}
body.elementor-page-63306 .wiisearchbar .vscomp-toggle-button .vscomp-value,
body.elementor-page-63307 .wiisearchbar .vscomp-toggle-button .vscomp-value,
body.elementor-page-63308 .wiisearchbar .vscomp-toggle-button .vscomp-value,
body.elementor-page-63306 .wiisearchbar .vscomp-wrapper .vscomp-value,
body.elementor-page-63307 .wiisearchbar .vscomp-wrapper .vscomp-value,
body.elementor-page-63308 .wiisearchbar .vscomp-wrapper .vscomp-value {
  color: #5a5a5a !important;
}
/* La fleche du select, lisible elle aussi */
body.elementor-page-63306 .wiisearchbar .vscomp-arrow,
body.elementor-page-63307 .wiisearchbar .vscomp-arrow,
body.elementor-page-63308 .wiisearchbar .vscomp-arrow,
body.elementor-page-63306 .wiisearchbar .vscomp-arrow::after,
body.elementor-page-63307 .wiisearchbar .vscomp-arrow::after,
body.elementor-page-63308 .wiisearchbar .vscomp-arrow::after {
  opacity: 1 !important;
  border-color: #5a5a5a !important;
}

/* CORRECTIF MARTEAU : si malgre tout le texte reste pale, c'est que
   l'opacite 0.5 est posee sur un element parent/etat non cible plus
   haut (ex. .vscomp-wrapper.closed, .vscomp-ele-wrapper:not(.focused)).
   On force donc l'opacite pleine sur TOUS les descendants de la barre,
   quel que soit leur etat. La couleur reste geree par les regles
   ci-dessus (le texte par defaut en #5a5a5a). */
body.elementor-page-63306 .wiisearchbar,
body.elementor-page-63307 .wiisearchbar,
body.elementor-page-63308 .wiisearchbar,
body.elementor-page-63306 .wiisearchbar *,
body.elementor-page-63307 .wiisearchbar *,
body.elementor-page-63308 .wiisearchbar * {
  opacity: 1 !important;
}

/* --- Champ texte Reference --- */
body.elementor-page-63306 .wiisearchbar .rs-input,
body.elementor-page-63307 .wiisearchbar .rs-input,
body.elementor-page-63308 .wiisearchbar .rs-input {
  background-color: #ffffff !important;
  color: #2a2a2a !important;
  width: 100% !important;
  height: 48px !important;
  box-sizing: border-box !important;
  border: 1px solid #e2e2e2 !important;
  border-radius: 4px !important;
  padding: 0 14px !important;
  font-size: 14px !important;
}
body.elementor-page-63306 .wiisearchbar .rs-input::placeholder,
body.elementor-page-63307 .wiisearchbar .rs-input::placeholder,
body.elementor-page-63308 .wiisearchbar .rs-input::placeholder {
  color: #5a5a5a !important;
  opacity: 1 !important;
}

/* --- Case a cocher "Nouveaux developpements" --- */
body.elementor-page-63306 .wiisearchbar .newdevs1,
body.elementor-page-63307 .wiisearchbar .newdevs1,
body.elementor-page-63308 .wiisearchbar .newdevs1 {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  background-color: #ffffff !important;
  border: 1px solid #e2e2e2 !important;
  border-radius: 4px !important;
  height: 48px !important;
  padding: 0 14px !important;
}
body.elementor-page-63306 .wiisearchbar .newdevs1 .wiicheck,
body.elementor-page-63307 .wiisearchbar .newdevs1 .wiicheck,
body.elementor-page-63308 .wiisearchbar .newdevs1 .wiicheck {
  color: #2a2a2a !important;
  font-size: 13px !important;
  margin: 0 !important;
}

/* --- Bouton "Recherche" (submit) : teal plein, occupe sa cellule ---
   Sur l'image cible il est sur la 2e ligne, meme largeur qu'un champ.
   On ne force donc PAS la pleine largeur : il garde la largeur de
   colonne (25%) heritee de la regle .rs-col ci-dessus. */
body.elementor-page-63306 .wiisearchbar #rsosearchbut.rs-button,
body.elementor-page-63307 .wiisearchbar #rsosearchbut.rs-button,
body.elementor-page-63308 .wiisearchbar #rsosearchbut.rs-button {
  background-color: #e0742f !important;
  color: #ffffff !important;
  border: 0 !important;
  border-radius: 4px !important;
  width: 100% !important;
  height: 48px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: .5px !important;
  cursor: pointer !important;
}
body.elementor-page-63306 .wiisearchbar #rsosearchbut.rs-button:hover,
body.elementor-page-63307 .wiisearchbar #rsosearchbut.rs-button:hover,
body.elementor-page-63308 .wiisearchbar #rsosearchbut.rs-button:hover {
  background-color: #c9621f !important;
}

/* --- Bouton "Advanced Search" : masque sur la Home pour coller
   a la maquette (barre simple 8 champs). Si tu veux le reafficher,
   remplace 'display:none' par le bloc flex commente plus bas. --- */
body.elementor-page-63306 .wiisearchbar > .adv_butt,
body.elementor-page-63307 .wiisearchbar > .adv_butt,
body.elementor-page-63308 .wiisearchbar > .adv_butt {
  display: none !important;
}
/* Variante visible (au cas ou) :
body.elementor-page-63306 .wiisearchbar > .adv_butt {
  flex: 1 1 100% !important;
  max-width: 1140px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  background-color: rgba(255,255,255,.9) !important;
  color: #007577 !important;
  border: 1px solid #ffffff !important;
  border-radius: 4px !important;
  height: 44px !important;
  margin-top: 4px !important;
  cursor: pointer !important;
}
*/
body.elementor-page-63306 .wiisearchbar > .adv_butt .iconadv,
body.elementor-page-63307 .wiisearchbar > .adv_butt .iconadv,
body.elementor-page-63308 .wiisearchbar > .adv_butt .iconadv {
  height: 18px !important;
  width: auto !important;
}

/* La colonne du champ avance reste cachee tant que non active */
body.elementor-page-63306 .wiisearchbar > .baradv.rs-hide,
body.elementor-page-63307 .wiisearchbar > .baradv.rs-hide,
body.elementor-page-63308 .wiisearchbar > .baradv.rs-hide {
  display: none !important;
}

/* ------------------------------------------------------------
   5bis. RESPONSIVE BARRE DE RECHERCHE
   ------------------------------------------------------------ */

/* Tablette : 2 par ligne (le bouton Search suit la grille) */
@media (max-width: 1024px) {
  body.elementor-page-63306 .wiisearchbar > .rs-col,
body.elementor-page-63307 .wiisearchbar > .rs-col,
body.elementor-page-63308 .wiisearchbar > .rs-col {
    flex: 1 1 calc(50% - 5px) !important;
    max-width: calc(50% - 5px) !important;
  }
}

/* Mobile : 1 champ par ligne, tout empile */
@media (max-width: 600px) {
  body.elementor-page-63306 .wiisearchbar,
body.elementor-page-63307 .wiisearchbar,
body.elementor-page-63308 .wiisearchbar {
    flex-direction: column !important;
  }
  body.elementor-page-63306 .wiisearchbar > .rs-col,
body.elementor-page-63307 .wiisearchbar > .rs-col,
body.elementor-page-63308 .wiisearchbar > .rs-col {
    flex: 1 1 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }
}

/* ============================================================
   6. CORRECTIFS FINAUX (places en dernier = priorite a specificite egale)
   a) Texte des champs vscomp invisible : la couleur est imposee par
      une regle native plus specifique (variable heritee, souvent
      blanche). On cible donc avec une specificite SUPERIEURE en
      chainant wrapper + toggle-button + value, et on couvre aussi
      l'eventuel <span> interne. Couleur foncee + opacite pleine.
   b) Champ Reference : hauteur strictement identique aux vscomp.
   ============================================================ */

/* a) Texte vscomp : specificite renforcee (3 classes + element) */
body.elementor-page-63306 .wiisearchbar .vscomp-wrapper .vscomp-toggle-button .vscomp-value,
body.elementor-page-63307 .wiisearchbar .vscomp-wrapper .vscomp-toggle-button .vscomp-value,
body.elementor-page-63308 .wiisearchbar .vscomp-wrapper .vscomp-toggle-button .vscomp-value,
body.elementor-page-63306 .wiisearchbar .vscomp-ele-wrapper .vscomp-toggle-button .vscomp-value,
body.elementor-page-63307 .wiisearchbar .vscomp-ele-wrapper .vscomp-toggle-button .vscomp-value,
body.elementor-page-63308 .wiisearchbar .vscomp-ele-wrapper .vscomp-toggle-button .vscomp-value,
body.elementor-page-63306 .wiisearchbar .vscomp-value span,
body.elementor-page-63307 .wiisearchbar .vscomp-value span,
body.elementor-page-63308 .wiisearchbar .vscomp-value span {
  color: #5a5a5a !important;
  opacity: 1 !important;
  -webkit-text-fill-color: #5a5a5a !important; /* bat les variables de couleur heritee */
}

/* b) Champ Reference : meme hauteur que les vscomp (48px) */
body.elementor-page-63306 .wiisearchbar .rs-input,
body.elementor-page-63307 .wiisearchbar .rs-input,
body.elementor-page-63308 .wiisearchbar .rs-input {
  height: 48px !important;
  min-height: 48px !important;
  line-height: 48px !important;
}

/* c) Le texte vscomp est NOIR (verifie en Computed : color rgb(0,0,0)),
   donc le souci n'est ni la couleur ni l'opacite mais le RENDU :
   le texte etait masque par un line-height/hauteur/overflow herite.
   On retablit un affichage de texte normal et centre verticalement
   dans les 48px, sans le couper. */
body.elementor-page-63306 .wiisearchbar .vscomp-toggle-button .vscomp-value,
body.elementor-page-63307 .wiisearchbar .vscomp-toggle-button .vscomp-value,
body.elementor-page-63308 .wiisearchbar .vscomp-toggle-button .vscomp-value {
  color: #5a5a5a !important;
  -webkit-text-fill-color: #5a5a5a !important;
  opacity: 1 !important;
  visibility: visible !important;
  font-size: 14px !important;
  line-height: 1.4 !important;        /* PAS 48px : un line-height geant peut pousser le texte hors zone */
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  text-indent: 0 !important;
  display: flex !important;
  align-items: center !important;     /* centre verticalement le texte dans la hauteur du champ */
  white-space: nowrap !important;
}

/* ------------------------------------------------------------
   7. TEXTES DE CONTENU JUSTIFIES (titres exclus)
   Les paragraphes des widgets HTML (bloc "Agent immobilier...")
   et des widgets text-editor sont justifies. Les titres restent
   centres (regle 1bis b) ; les <h2> internes aux widgets HTML
   sont explicitement re-exclus ici pour rester centres.
   hyphens:auto limite les "rivieres" d'espaces du justifie FR.
   ------------------------------------------------------------ */
body.elementor-page-63306 .elementor-widget-html p,
body.elementor-page-63307 .elementor-widget-html p,
body.elementor-page-63308 .elementor-widget-html p,
body.elementor-page-63306 .elementor-widget-html li,
body.elementor-page-63307 .elementor-widget-html li,
body.elementor-page-63308 .elementor-widget-html li {
  text-align: justify !important;
  -webkit-hyphens: auto !important;
  hyphens: auto !important;
}
/* Re-exclusion : les titres internes aux widgets HTML restent centres */
body.elementor-page-63306 .elementor-widget-html h1,
body.elementor-page-63307 .elementor-widget-html h1,
body.elementor-page-63308 .elementor-widget-html h1,
body.elementor-page-63306 .elementor-widget-html h2,
body.elementor-page-63307 .elementor-widget-html h2,
body.elementor-page-63308 .elementor-widget-html h2,
body.elementor-page-63306 .elementor-widget-html h3,
body.elementor-page-63307 .elementor-widget-html h3,
body.elementor-page-63308 .elementor-widget-html h3 {
  text-align: center !important;
}
/* ============================================
   8) FIX FOOTER - neutralise le sticky footer
   ============================================ */
body.elementor-page-63306 .rh_wrap_stick_footer,
body.elementor-page-63307 .rh_wrap_stick_footer,
body.elementor-page-63308 .rh_wrap_stick_footer {
  padding-bottom: 0 !important;
}

body.elementor-page-63306 .rh_apply_sticky_wrapper_footer,
body.elementor-page-63307 .rh_apply_sticky_wrapper_footer,
body.elementor-page-63308 .rh_apply_sticky_wrapper_footer,
body.elementor-page-63306 .rh_sticky_wrapper_footer,
body.elementor-page-63307 .rh_sticky_wrapper_footer,
body.elementor-page-63308 .rh_sticky_wrapper_footer {
  position: static !important;
  bottom: auto !important;
}
/* Flèches du carrousel "Nos clients témoignent" (classes next1/prev1 sans style) */
.swipercaro { position: relative; }
.swiper-button-prev1,
.swiper-button-next1 {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  cursor: pointer;
}
.swiper-button-prev1 { left: 10px; }
.swiper-button-next1 { right: 10px; }

/* CTA « Locations » : fond adapté à l'appareil */
@media (min-width: 1025px) {
  .rh_section__cta_elementor { background-image: url(/wp-content/uploads/2026/07/cta-locations-desktop.webp) !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .rh_section__cta_elementor { background-image: url(/wp-content/uploads/2026/07/cta-locations-tablette.webp) !important; }
}
@media (max-width: 767px) {
  .rh_section__cta_elementor { background-image: url(/wp-content/uploads/2026/07/cta-locations-mobile.webp) !important; }
}