/*
 * Domus Suisse - UX mobile et tablette (audit Impeccable du 17/10/2026).
 * Charge par le module domus-core/modules/domus-mobile-ux.php.
 * Retour arriere : fichier vide domus-core/modules/.domus-mobile-ux.php.disabled, puis purge.
 * Charte : action #1C4D59 (survol #163A46), encre #1F4746, ambre reserve aux statuts,
 * rayon 6px, pas d'ombre.
 */
:root {
	--dmx-accent: #1C4D59;
	--dmx-accent-deep: #163A46;
	--dmx-ink: #1F4746;
	--dmx-tint: #F1F5F6;
	--dmx-hair: rgba(28, 77, 89, 0.14);
	--dmx-quiet: #6B7778;
	--dmx-safe-bottom: env(safe-area-inset-bottom, 0px);
}

/* ------------------------------------------------------------------ */
/* 1. Liens : couleur d'action de la charte (l'ambre est a 2,24:1)     */
/* ------------------------------------------------------------------ */
/* meme specificite que la regle du kit (.elementor-kit-9 a) : les surcharges existantes
   (boutons, etiquettes, menus) continuent de l'emporter, ce que body.elementor-kit-9 a cassait */
.elementor-kit-9 a { color: var(--dmx-accent); }
.elementor-kit-9 a:hover { color: var(--dmx-accent-deep); }
/* etiquettes (liens) : texte blanc sur fond sombre, jamais la couleur des liens */
.elementor-kit-9 a.label,
.elementor-kit-9 a.hz-label,
.elementor-kit-9 a.label:hover,
.elementor-kit-9 a.hz-label:hover { color: #fff; text-decoration: none; }
.elementor-kit-9 a.label:hover,
.elementor-kit-9 a.hz-label:hover { background-color: var(--dmx-accent-deep); }
.elementor-widget-text-editor p a,
.property-description-wrap .block-content-wrap a,
.dc-agency-link,
.form-group a[href*="conditions"],
.control--checkbox a {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}
.breadcrumb a,
.property-navigation-wrap a,
.property-nav-link { color: var(--dmx-accent) !important; }

/* ------------------------------------------------------------------ */
/* 2. Textes indicatifs lisibles (#6B7778 = 4,6:1 sur blanc)           */
/* ------------------------------------------------------------------ */
.form-control::placeholder,
input::placeholder,
textarea::placeholder { color: var(--dmx-quiet) !important; opacity: 1; }
.bootstrap-select > .dropdown-toggle.bs-placeholder,
.bootstrap-select > .dropdown-toggle.bs-placeholder .filter-option-inner-inner { color: var(--dmx-quiet) !important; }
.reset-search-btn { color: var(--dmx-accent) !important; }

/* ------------------------------------------------------------------ */
/* 3. Champs en 16 px sous 1 024 px : pas de zoom automatique sur iOS  */
/* ------------------------------------------------------------------ */
@media (max-width: 1024px) {
	input.form-control,
	textarea.form-control,
	.bs-searchbox input,
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="number"],
	input[type="password"],
	input[type="search"],
	textarea { font-size: 16px !important; }
}

/* ------------------------------------------------------------------ */
/* 4. Boutons de fermeture et bascules : 44 px                          */
/* ------------------------------------------------------------------ */
@media (max-width: 991.98px) {
	.offcanvas-header .btn-close,
	#mobile-property-form .btn-close,
	.overlay-search-module-close { width: 44px !important; height: 44px !important; padding: 0 !important; display: inline-flex; align-items: center; justify-content: center; }
	.mobile-map-switch .btn { min-height: 44px; }
	#hz-offcanvas-login-register .btn-create-listing {
		background: var(--dmx-accent) !important; border-color: var(--dmx-accent) !important; color: #fff !important;
	}
}

/* ------------------------------------------------------------------ */
/* 5. Fiche annonce sur telephone                                       */
/* ------------------------------------------------------------------ */
@media (max-width: 767.98px) {
	/* la barre de recherche ne reste plus collee en haut de la fiche */
	body.single-property .mobile-search-nav.sticky-search-area { position: relative !important; top: auto !important; box-shadow: none !important; }

	/* photo 4:3 au lieu de carree */
	body.single-property .property-banner,
	body.single-property .property-top-wrap { height: auto !important; min-height: 0 !important; }
	body.single-property .property-banner > .d-block.d-md-none { position: relative; aspect-ratio: 4 / 3; height: auto !important; overflow: hidden; }
	body.single-property .property-banner .property-featured-image { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; }

	/* galerie balayable (construite par domus-mobile-ux.js) */
	.dmx-gallery { position: absolute; inset: 0; z-index: 2; display: flex; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
	.dmx-gallery::-webkit-scrollbar { display: none; }
	.dmx-gallery .dmx-gallery-slide { flex: 0 0 100%; height: 100% !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: var(--dmx-tint) !important; box-shadow: none !important; scroll-snap-align: start; scroll-snap-stop: always; position: relative; cursor: zoom-in; }
	.dmx-gallery-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
	.dmx-gallery-count { position: absolute; left: 12px; bottom: 12px; z-index: 3; background: var(--dmx-accent-deep); color: #fff; font: 600 13px/1 Inter, sans-serif; padding: 7px 10px; border-radius: 4px; pointer-events: none; font-variant-numeric: tabular-nums; }
	body.single-property.dmx-has-gallery .property-banner .property-image-count { display: none !important; }

	/* favori et partage poses sur la photo */
	body.single-property .mobile-top-wrap .mobile-property-tools { position: relative; z-index: 4; height: 60px; margin: -60px 0 0 !important; padding: 0 0 12px !important; background: transparent !important; border: 0 !important; box-shadow: none !important; pointer-events: none; }
	body.single-property .mobile-property-tools > div { justify-content: flex-end !important; height: 48px; padding: 0 12px !important; }
	body.single-property .mobile-property-tools .property-item-tools { pointer-events: auto; gap: 8px !important; margin: 0; }
	body.single-property .mobile-property-tools .item-tool,
	body.single-property .mobile-property-tools .item-tool > span { width: 44px !important; height: 44px !important; min-width: 44px; }
	body.single-property .mobile-property-tools .item-tool > span { display: flex !important; align-items: center; justify-content: center; background: #fff !important; border: 1px solid var(--dmx-hair) !important; border-radius: 6px !important; }

	/* prix d'abord, puis titre, puis adresse */
	body.single-property .mobile-property-title { display: flex; flex-direction: column; padding-top: 16px !important; padding-bottom: 16px !important; }
	body.single-property .mobile-property-title > .d-flex { order: 1; margin-bottom: 8px !important; }
	body.single-property .mobile-property-title .item-price-wrap { order: 2; margin: 0 0 4px !important; padding: 0; }
	body.single-property .mobile-property-title .item-price { margin: 0 !important; }
	body.single-property .mobile-property-title .item-price .price { font: 600 22px/1.2 Inter, sans-serif !important; color: var(--dmx-ink) !important; }
	body.single-property .mobile-property-title .page-title { order: 3; margin-bottom: 4px !important; }
	body.single-property .mobile-property-title .page-title-mobile { font-size: 18px !important; line-height: 1.3 !important; }
	body.single-property .mobile-property-title .item-address { order: 4; margin-bottom: 0 !important; }

	/* texte courant plus lisible */
	body.single-property .property-description-wrap .block-content-wrap,
	body.single-property .property-description-wrap .block-content-wrap p { font-size: 16px !important; line-height: 1.55 !important; }
}

/* barre de contact : deux boutons avec leur texte */
@media (max-width: 991.98px) {
	body.single-property .mobile-property-contact { padding: 8px 12px calc(8px + var(--dmx-safe-bottom)) !important; }
	body.single-property .mobile-property-contact > .d-flex { gap: 8px !important; align-items: center; }
	body.single-property .mobile-property-contact .btn { flex: 0 0 auto !important; width: auto !important; min-width: 140px; height: 48px !important; padding: 0 16px !important; gap: 8px; font: 600 15px/1 Inter, sans-serif !important; border-radius: 6px !important; }
	body.single-property .mobile-property-contact .btn i { font-size: 18px !important; }
	body.single-property .mobile-property-contact .btn[data-bs-target="#mobile-property-form"] { order: 3; background: var(--dmx-accent) !important; border: 1px solid var(--dmx-accent) !important; color: #fff !important; }
	body.single-property .mobile-property-contact .btn[data-bs-target="#mobile-property-form"] i { color: #fff !important; }
	body.single-property .mobile-property-contact a.btn[href^="tel:"] { order: 2; background: #fff !important; border: 1px solid var(--dmx-accent) !important; color: var(--dmx-accent) !important; }
	body.single-property .mobile-property-contact a.btn[href^="tel:"] i { color: var(--dmx-accent) !important; }
	body.single-property .back-to-top-wrap { bottom: calc(76px + var(--dmx-safe-bottom)) !important; }
}
@media (max-width: 767.98px) {
	body.single-property .mobile-property-contact .agent-details { display: none !important; }
	body.single-property .mobile-property-contact .btn { flex: 1 1 0 !important; min-width: 0; }
	body.single-property { padding-bottom: calc(64px + var(--dmx-safe-bottom)) !important; }
}

/* modale de contact : un seul bouton d'action */
#mobile-property-form .dmx-label { display: block; margin: 0 0 6px; font: 600 13px/1.3 Inter, sans-serif; color: var(--dmx-ink); }
#mobile-property-form .houzez_agent_property_form { height: 48px; background: var(--dmx-accent) !important; border: 1px solid var(--dmx-accent) !important; color: #fff !important; font-weight: 600; border-radius: 6px; }
#mobile-property-form .houzez_agent_property_form:hover { background: var(--dmx-accent-deep) !important; }
#mobile-property-form .hz-btn-call { min-height: 44px; background: transparent !important; border-color: transparent !important; color: var(--dmx-accent) !important; text-decoration: underline; text-underline-offset: 2px; }
#mobile-property-form .dmx-actions-stack { flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important; }
#mobile-property-form .form-control:not(textarea) { height: 48px; }
#mobile-property-form textarea.form-control { min-height: 120px; }

/* ------------------------------------------------------------------ */
/* 6. Accueil sur telephone : recherche courte, filtres repliables     */
/* ------------------------------------------------------------------ */
@media (max-width: 767.98px) {
	.elementor-2521 .elementor-element-isclt1m6i,
	.elementor-2521 .elementor-element-isclt1m6i > .e-con-inner { --row-gap: 12px; --widgets-spacing-row: 12px; row-gap: 12px !important; }
	.elementor-2521 .elementor-element-isclt1m6i { padding-top: 24px !important; padding-bottom: 32px !important; min-height: 0 !important; }
	.elementor-2521 .elementor-element-668f292 { display: none !important; }
	.elementor-2521 .elementor-element-e22816e .elementor-heading-title { font-size: 26px !important; line-height: 1.2 !important; font-weight: 600 !important; }
	.elementor-2521 .elementor-element-7022121 .houzez_section_subtitle,
	.elementor-2521 .elementor-element-7022121 p { font-size: 15px !important; line-height: 1.45 !important; margin-bottom: 0 !important; }
	.elementor-2521 .elementor-element-e22816e,
	.elementor-2521 .elementor-element-7022121 { margin-bottom: 0 !important; }

	/* Recherche mobile de l'accueil : geree par domus-search-mobile (formulaire court + panneau). */
	.elementor-2521 .elementor-element-rf8ywmto0 { padding-left: 0 !important; padding-right: 0 !important; }
}

/* ------------------------------------------------------------------ */
/* 7. Accueil sur tablette : formulaire en deux colonnes egales         */
/* ------------------------------------------------------------------ */
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-element-7a7d625 .elementor-field-group-ae5c1fd { width: 100% !important; }
	.elementor-element-7a7d625 .elementor-field-group-d646c05,
	.elementor-element-7a7d625 .elementor-field-group-8cdd40e { width: 50% !important; }
	.elementor-element-7a7d625 .houzez-ele-search-form-wrapper > .elementor-field-type-submit:has(button[type="submit"]) { order: 3 !important; width: 100% !important; }
	.elementor-element-7a7d625 .houzez-ele-search-form-wrapper > .elementor-field-group:has(.advanced-search-btn),
	.elementor-element-7a7d625 .houzez-ele-search-form-wrapper > .elementor-field-group:has(.reset-search-btn),
	.elementor-element-7a7d625 .houzez-ele-search-form-wrapper > .domus-map-btn-field { order: 4 !important; width: 33.333% !important; flex: 0 0 33.333% !important; max-width: 33.333% !important; }
	.elementor-element-7a7d625 .domus-map-btn-field .domus-map-btn-group { width: 100%; }
	.elementor-element-7a7d625 .domus-map-btn-field .elementor-button,
	.elementor-element-7a7d625 .domus-map-btn-field a,
	.elementor-element-7a7d625 .domus-map-btn-field button,
	.elementor-element-7a7d625 .elementor-field-group:has(.advanced-search-btn) .elementor-button,
	.elementor-element-7a7d625 .elementor-field-group:has(.reset-search-btn) .btn { width: 100% !important; min-height: 44px !important; justify-content: center; }
}

/* ------------------------------------------------------------------ */
/* 8. Recherche en surimpression (telephone et tablette portrait)       */
/* ------------------------------------------------------------------ */
@media (max-width: 991.98px) {
	#overlay-search-advanced-module { padding-bottom: 0 !important; }
	#mobile-search-form .form-control:not(textarea) { height: 48px !important; min-height: 48px; }
	#mobile-search-form .bootstrap-select,
	#mobile-search-form .bootstrap-select > .dropdown-toggle { height: 44px !important; min-height: 44px; }
	#mobile-search-form .bootstrap-select > .dropdown-toggle { display: flex; align-items: center; }
	#mobile-search-form .row > .col-6:has(select[name="location[]"]),
	#mobile-search-form .row > .col-6:has(select[name="areas[]"]),
	#mobile-search-form .row > .col-6:has(select[name="status[]"]) { flex: 0 0 100%; width: 100%; max-width: 100%; }
	#mobile-search-form .row > .col-12:has(.btn-search) {
		position: sticky; bottom: 0; z-index: 5; background: #fff; margin-top: 8px;
		padding-top: 8px; padding-bottom: calc(8px + var(--dmx-safe-bottom)); border-top: 1px solid var(--dmx-hair);
	}
	#mobile-search-form .btn-search { height: 48px !important; background: var(--dmx-accent) !important; border-color: var(--dmx-accent) !important; color: #fff !important; font-weight: 600; border-radius: 6px; }
	#mobile-search-form .save_search_click,
	#mobile-search-form .reset-search-btn { min-height: 44px; }
	#mobile-search-form .reset-search-btn { background: transparent !important; border-color: transparent !important; text-decoration: underline; text-underline-offset: 2px; }
}

/* ------------------------------------------------------------------ */
/* 9. En-tete sur tablette paysage : logo a gauche (992-1279 px)        */
/* ------------------------------------------------------------------ */
@media (min-width: 992px) and (max-width: 1279.98px) {
	.header-v5 .header-top .header-social-icons { display: none !important; }
	.header-v5 .header-top .logo-desktop { flex: 0 0 auto !important; width: auto !important; margin-right: auto; text-align: left; }
	.header-v5 .header-top .login-register { flex: 0 1 auto !important; width: auto !important; }
}

/* sous-menus ouverts au toucher (classe posee par domus-mobile-ux.js) */
.on-hover-menu li.dmx-open > ul.dropdown-menu { opacity: 1 !important; visibility: visible !important; }

/* ------------------------------------------------------------------ */
/* 10. Carte en demi-ecran : en-tete de liste et largeur de la carte    */
/* ------------------------------------------------------------------ */
@media (max-width: 1199.98px) {
	.half-map-right-wrap .page-title-wrap > .d-flex { flex-wrap: wrap; row-gap: 8px; }
	.half-map-right-wrap .page-title-wrap > .d-flex > .page-title { flex: 1 0 100%; }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
	.half-map-wrap > .half-map-left-wrap { flex: 0 0 42% !important; width: 42% !important; max-width: 42% !important; }
	.half-map-wrap > .half-map-right-wrap { flex: 0 0 58% !important; width: 58% !important; max-width: 58% !important; }
}

/* ------------------------------------------------------------------ */
/* 11. Bandeau cookies compact et bas sur telephone                     */
/* ------------------------------------------------------------------ */
@media (max-width: 767.98px) {
	.cmplz-cookiebanner.cmplz-center {
		top: auto !important; bottom: 0 !important; left: 0 !important; right: 0 !important; transform: none !important;
		width: 100% !important; max-width: none !important; margin: 0 !important; border-radius: 6px 6px 0 0 !important;
		padding: 16px 16px calc(12px + var(--dmx-safe-bottom)) !important; max-height: 70vh; overflow-y: auto; gap: 10px !important;
	}
	.cmplz-cookiebanner .cmplz-logo { display: none !important; }
	.cmplz-cookiebanner .cmplz-message { font-size: 13px !important; line-height: 1.45 !important; }
	.cmplz-cookiebanner .cmplz-buttons { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px !important; }
	.cmplz-cookiebanner .cmplz-buttons .cmplz-btn { width: 100% !important; min-height: 44px !important; margin: 0 !important; }
	.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences,
	.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences { grid-column: 1 / -1; }
	.cmplz-cookiebanner .cmplz-links.cmplz-documents { font-size: 12px; }
}
@media (max-width: 1279.98px) {
	.cmplz-manage-consent { display: none !important; }
}

/* ------------------------------------------------------------------ */
/* 12. Finitions : pied de page, suivi d'etapes                         */
/* ------------------------------------------------------------------ */
@media (max-width: 1024px) {
	.elementor-element-10a40dd p a { display: inline-block; padding: 6px 0; }
}
@media (max-width: 399.98px) {
	.domus-steps { gap: 0 !important; }
	.domus-steps__item { flex: 1 1 0 !important; min-width: 0 !important; }
	.domus-steps__label { white-space: normal !important; font-size: 12px !important; text-align: center; }
}

/* ------------------------------------------------------------------ */
/* 13. Retouches apres retour (17/10) : icone de recherche, retour en   */
/*     haut, bouton « Parcourir la carte »                              */
/* ------------------------------------------------------------------ */
/* l'icone loupe est un ::before de 42 px de haut : avec des champs de 48 px elle montait de 3 px */
@media (max-width: 1024px) {
	.search-icon { position: relative; }
	.search-icon:before {
		top: 0 !important; bottom: 0 !important; height: auto !important; line-height: 1 !important;
		display: flex !important; align-items: center; justify-content: center; width: 24px; left: 14px !important;
	}
	.search-icon input { padding-left: 44px !important; }
}

/* retour en haut : meme repere partout, au-dessus de la barre de contact sur les fiches */
@media (max-width: 991.98px) {
	.back-to-top-wrap { right: 16px !important; bottom: calc(16px + var(--dmx-safe-bottom)) !important; }
	body.single-property .back-to-top-wrap { bottom: calc(80px + var(--dmx-safe-bottom)) !important; }
	.back-to-top-wrap .btn-back-to-top {
		width: 44px !important; height: 44px !important; line-height: 1 !important; padding: 0 !important;
		display: inline-flex !important; align-items: center; justify-content: center;
		background: var(--dmx-accent) !important; border-color: var(--dmx-accent) !important; color: #fff !important; border-radius: 6px !important;
	}
	.back-to-top-wrap .btn-back-to-top i { color: #fff !important; line-height: 1; margin: 0; top: 0; }
}

/* « Parcourir la carte » et « Plus de filtres » : le texte passe à la ligne au lieu de déborder */
@media (max-width: 767.98px) {
	.elementor-element-7a7d625 .houzez-ele-search-form-wrapper > .dmx-filters-toggle-field,
	.elementor-element-7a7d625 .houzez-ele-search-form-wrapper > .domus-map-btn-field { min-width: 0 !important; box-sizing: border-box; }
	.dmx-filters-toggle,
	.elementor-element-7a7d625 .domus-map-btn-field .elementor-button,
	.elementor-element-7a7d625 .domus-map-btn-field a,
	.elementor-element-7a7d625 .domus-map-btn-field button {
		min-width: 0 !important; max-width: 100% !important; white-space: normal !important; text-align: center;
		line-height: 1.2 !important; font-size: 13px !important; padding: 6px 8px !important; overflow: hidden; overflow-wrap: anywhere;
	}
	.elementor-element-7a7d625 .domus-map-btn-field .elementor-button i,
	.elementor-element-7a7d625 .domus-map-btn-field button i { flex: 0 0 auto; margin: 0 4px 0 0 !important; }
}
