/* Charte Soginif Holding (memes couleurs que addons/portal_branding :
   primaire #7A12A7 violet, accent #0237A1 bleu).
   Chaque variante de page d'accueil du gabarit HouseBox (index.html a
   index4.html) a sa propre couleur d'accent : la variante utilisee ici
   (index.html = "homepage1") utilise --ztc-bg-bg-3 / --ztc-text-text-4
   (#CBCD30, jaune-vert) comme couleur de boutons/CTA - c'est celle-ci
   qu'il faut recolorer, pas bg-7/bg-6 qui pilotent les AUTRES variantes
   (homepage3/4, pages dashboard/blog) absentes de cette integration.
   --ztc-bg-bg-4 / --ztc-text-text-5 (#073B3A, vert sapin) est la 2e teinte
   structurelle du gabarit (bandeau du header, soulignes de menu au survol,
   badges/accents sur les cartes claires) : recoloree en bleu accent pour
   rester dans la charte au lieu du vert d'origine.
   --ztc-text-text-2 / --ztc-bg-bg-2 (#030E0F, quasi-noir) reste le texte
   courant neutre (utilise 500+ fois) : volontairement laisse tel quel. */
:root {
  --ztc-bg-bg-3: #7A12A7;
  --ztc-text-text-4: #7A12A7;
  --ztc-bg-bg-4: #0237A1;
  --ztc-text-text-5: #0237A1;
}

/* Le voile sombre pose sur les photos de hero (::after, opacity 60%) est
   en #073B3A code en dur dans le gabarit (pas via une variable --ztc-*),
   donc invisible pour l'override ci-dessus : on le recolore ici
   explicitement (utilise sur l'accueil - hero1 - et sur les futures pages
   interieures - hero-inner / hero-inner-sidebar - pas encore construites). */
.hero-area-slider .hero1-section-area::after,
.hero-inner-section-area::after,
.hero-inner-section-area-sidebar::after {
  background: #0237A1;
}

/* Fleches precedent/suivant du slider "Avis Clients" (.testimonial-arrows,
   lib slick) : cercle a fond blanc translucide (20%) + icone blanche -
   pense pour se detacher d'une photo derriere, mais ce slider n'a PAS de
   photo en fond ici (juste le fond clair de la section) => icone blanche
   invisible sur cercle quasi-blanc. Pas lie au recolorage violet
   ci-dessus (couleurs figees rgba/blanc d'origine) : on rend le cercle
   opaque en violet marque pour un contraste garanti quel que soit le fond. */
.testimonial-arrows .testimonial-prev-arrow button,
.testimonial-arrows .testimonial-next-arrow button {
  background: rgba(122, 18, 167, 0.85);
}

/* --ztc-bg-bg-3 / --ztc-text-text-4 servent aussi de FOND (boutons,
   onglets actifs, pagination, badges...) un peu partout dans le gabarit.
   A l'origine ce fond est jaune-vert clair (#CBCD30) et le texte par
   defaut qui s'y pose est --ztc-text-text-2 (quasi-noir) : lisible.
   Recolore en violet marque #7A12A7 ci-dessus, ce fond devient fonce et le
   meme texte quasi-noir devient illisible ("voir nos biens" et toute
   rubrique au meme fond). Plutot que de rebrancher chaque regle sur une
   autre variable de texte (risque de regression sur les variantes
   homepage2-4 qui partagent le meme fichier), on force le blanc
   explicitement sur la liste exhaustive des selecteurs qui utilisent ces
   deux variables comme fond (cf. grep sur css_vendor/main.css). */
.theme-btn1,
.pagination-area ul li a.active,
.pagination-area ul li a:hover,
.about2-section-area .about-heading .accordion .accordion-item button:not(.collapsed)::before,
.testimonial-arrows .testimonial-prev-arrow button:hover,
.testimonial-arrows .testimonial-next-arrow button:hover,
.mobile-sidebar.mobile-sidebar1 .footer1-contact-info .social-links-mobile-menu ul li a:hover,
.mobile-header .circle-button:hover,
.blog-inner-section .blog-siderbar .categories-area ul li a:hover,
.blog-inner-section .blog-siderbar .tags-area ul li a:hover,
.blog-inner-section .blog-post-details-area .list-author li:nth-child(1) a,
.blog-inner-section .blog-post-details-area .vide-images a,
.blog-inner-section .blog-post-details-area .vide-images a::after,
.blog-inner-section .blog-post-details-area .tags-social .tags ul li a:hover,
.blog-inner-section .blog-post-details-area .tags-social .social ul li a:hover,
.footer1-section-area .footer-logoarea ul li a:hover,
.footer1-section-area .instagram-posts .img1 .icons a,
.homepage1-body .header-area.homepage1 .header-elements .main-menu ul li .tp-submenu .homemenu-thumb .homemenu-btn .theme-btn1,
.properties-section-area .property-feature-slider .property-boxarea .content-area .btn-area .nm-btn,
.property-inner-section .heading1 .tabs-btn ul li button.active,
.property-inner-section .tab-content .tab-pane .property-boxarea .content-area .btn-area .nm-btn,
.property-maplist-section .sidebar1-area ul li button.active,
.property-maplist-section .property-mapgrid-area .heading1 .tabs-btn ul li button.active,
.property-inner-section-find .heading1 .tabs-btn ul li button.active,
.property-inner-section-find .tab-content .tab-pane .property-boxarea .content-area .btn-area .nm-btn,
.property-inner-section-find .sidebar1-area ul li button.active,
.properties-details1-area .images-area-details .content-area .content ul li:nth-child(1) a,
.properties-details1-area .details-siderbar .vide-images a,
.properties-details1-area .details-siderbar .vide-images a::after,
.properties-details1-area .details-siderbar .rotate-images a,
.properties-details1-area .all-side-details .sidebar1-area ul li button.active,
.propoerties-boxes-section .single-slider-area .property-boxarea .content-area .btn-area .nm-btn,
.properties-details2-area .images-area-details .img2-carousel .owl-nav button:hover,
.properties-details2-area .details-siderbar .content-area .content ul li:nth-child(1) a,
.properties-details2-area .details-siderbar .vide-images a,
.properties-details2-area .details-siderbar .vide-images a::after,
.properties-details2-area .details-siderbar .rotate-images a,
.properties-details2-area .all-side-details .sidebar1-area ul li button.active,
.properties-details3-area .images-area-details .img2-carousel .owl-nav button:hover,
.properties-details3-area .images-area-details .img1 a,
.properties-details3-area .images-area-details .img1 a::after,
.properties-details3-area .images-area-details .images-area2 .content-area2 a.price,
.properties-details3-area .details-siderbar .bg1 .content-area .content ul li:nth-child(1) a,
.properties-details3-area .details-siderbar .vide-images a,
.properties-details3-area .details-siderbar .vide-images a::after,
.properties-details3-area .details-siderbar .rotate-images a,
.properties-details3-area .all-side-details .sidebar1-area ul li button.active,
.properties-details4-area .images-area-details .testimonial-arrows button:hover,
.properties-details4-area .details-siderbar .content-area .content ul li:nth-child(1) a,
.properties-details4-area .details-siderbar .vide-images a,
.properties-details4-area .details-siderbar .vide-images a::after,
.properties-details4-area .details-siderbar .rotate-images a,
.properties-details4-area .all-side-details .sidebar1-area ul li button.active,
.offer1-section-area .offer-boxarea:hover,
.others-section-area .property-tab-section .tab-btn.active,
.others-section-area .property-tab-section .filter-group button.customize-sale:hover,
.others-section-area .property-tab-section .filter-group button.customize-sale.click,
.others-section-area .property-tab-section .search-button button,
.others-section-area-inner .property-tab-section .tab-btn.active,
.others-section-area-inner .property-tab-section .filter-group button.customize-sale:hover,
.others-section-area-inner .property-tab-section .filter-group button.customize-sale.click,
.others-section-area-inner .property-tab-section .search-button button,
.dashboard-section-area .dash1-box:hover .icons,
.dashboard-section-area .dashboad-all-details-section a.price,
.team1-section-area .team-widget-boxarea:hover .share a,
.team1-section-area .team-widget-boxarea ul li a:hover,
.items-section-area .testimonial-arrows button:hover,
.contact-inner-section .heading1 .number-address-area .phone-number:hover .img1,
.contact-inner-section .heading1 .social ul li a:hover,
.testimonial1-section-area .testimonial-arrows button,
.property-location-section-area .property-single-slider .owl-nav button,
.privacy-policy-area .all-category .categories-area ul li a:hover {
  color: #fff !important;
}

/* ---------------------------------------------------------------------
   Boutons d'en-tete sans fleche (Se connecter, S'inscrire, Voir nos biens)
   : padding horizontal equilibre, l'icone a gauche suffit. */
.o_re_header_btns {
  display: flex;
  gap: 10px;
}
.o_re_header_btns .theme-btn1,
.o_re_header_btns .theme-btn2,
.about-heading .btn-area1 .theme-btn1 {
  padding-left: 22px;
  padding-right: 22px;
}
.o_re_header_btns i {
  margin-right: 6px;
}

/* Selecteur de langue FR / EN */
.o_re_lang_switch {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.o_re_lang {
  display: inline-block;
  min-width: 30px;
  padding: 3px 7px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-align: center;
  color: inherit;
  opacity: 0.7;
  text-decoration: none;
  transition: background 0.2s, opacity 0.2s;
}
.o_re_lang:hover {
  opacity: 1;
}
.o_re_lang.active {
  background: #7A12A7;
  color: #fff !important;
  opacity: 1;
}
.header-top-area .o_re_lang {
  color: #fff !important;
}
.header-top-area .o_re_lang.active {
  background: #fff;
  color: #0237A1 !important;
}
.o_re_lang_switch_mobile {
  padding: 16px 0;
  gap: 8px;
}
.o_re_lang_switch_mobile .o_re_lang {
  border: 1px solid #e3e3ea;
  padding: 6px 14px;
  font-size: 14px;
}

/* Avis clients (realestate.testimonial) */
.o_re_testimonial {
  background: #fff;
  border-radius: 16px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  box-shadow: 0 10px 30px rgba(3, 14, 15, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.o_re_testimonial:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(122, 18, 167, 0.12);
}
.o_re_stars {
  color: #F5A524;
  font-size: 15px;
  display: flex;
  gap: 3px;
}
.o_re_stars .o_re_star_off {
  color: #e2e2ea;
}
.o_re_testimonial_text {
  flex: 1;
  margin: 0;
  font-size: 16px;
  line-height: 1.65;
  color: #3b4146;
}
.o_re_testimonial_author {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-top: 16px;
  border-top: 1px solid #f0f0f4;
}
.o_re_testimonial_author strong {
  display: block;
  color: #030E0F;
}
.o_re_testimonial_author small {
  color: #6c757d;
}
.o_re_testimonial_initial {
  width: 44px;
  height: 44px;
  min-width: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #7A12A7, #0237A1);
}
.o_re_testimonial_empty {
  text-align: center;
  padding: 48px 24px;
  background: rgba(255, 255, 255, 0.85);
  border-radius: 16px;
  border: 1px dashed #d9d3e3;
}
.o_re_testimonial_empty i {
  font-size: 34px;
  color: #7A12A7;
  margin-bottom: 12px;
}
.o_re_testimonial_empty p {
  margin: 0;
  font-size: 17px;
}

/* Formulaire de contact : champ piege anti-robots + validation */
.o_re_hp {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.o_re_contact_form.was-validated .form-control:invalid {
  border-color: #d93025;
}
.o_re_contact_form button[disabled] {
  opacity: 0.7;
  cursor: progress;
}

/* Notifications (toasts) */
.o_re_toasts {
  position: fixed;
  right: 20px;
  bottom: 100px;
  z-index: 2000;
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: min(420px, calc(100vw - 40px));
}
.o_re_toast {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 18px;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 14px 40px rgba(3, 14, 15, 0.18);
  border-left: 5px solid #1e8e3e;
  font-size: 15px;
  line-height: 1.5;
  color: #1f2328;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.o_re_toast.show {
  opacity: 1;
  transform: translateY(0);
}
.o_re_toast i {
  font-size: 20px;
  margin-top: 1px;
}
.o_re_toast_ok i {
  color: #1e8e3e;
}
.o_re_toast_ko {
  border-left-color: #d93025;
}
.o_re_toast_ko i {
  color: #d93025;
}
.o_re_toast span {
  flex: 1;
}
.o_re_toast_close {
  border: 0;
  background: none;
  font-size: 22px;
  line-height: 1;
  color: #8a8f98;
  padding: 0 0 0 4px;
}
