/*
 * Styles front minimaux et neutres pour l'archive et la fiche bien.
 * Conçus pour être surchargés par le thème actif (peu de spécificité,
 * variables de couleur limitées, aucune dépendance à un design system).
 */

.fichimmo-archive-switch {
	margin: 0.25em 0 0;
}

/* Filtres */

.fichimmo-filtre-tabs {
	display: flex;
	gap: 0.25em;
	margin-bottom: -1px;
}

.fichimmo-filtre-tab {
	padding: 0.8em 2em;;
	color: #555 !important;
	text-decoration: none !important;
	background: #ddd;
	border: 1px solid #ddd;
	border-bottom: none;
	border-radius: 20px 20px 0 0;
}

.fichimmo-filtre-tab:hover {
	background: #ececec;
}

.fichimmo-filtre-tab.is-active {
	background: #f9f9f9;
	color: #1d2327 !important;
	font-weight: 800;
	border-bottom: 1px solid #f9f9f9;
	z-index: 9;
    position: relative;
}

.fichimmo-filtre-champ label {
	margin-bottom: 0px;
}

.fichimmo-filtres {
	display: flex;
	flex-wrap: wrap;
	gap: 1em;
	align-items: flex-start;
	padding: 2.5em 1em 1em 1em;
	margin-bottom: 1.5em;
	border: 1px solid #ddd;
	border-radius: 0px 20px 20px 20px;
    position: relative;
    background: #f9f9f9;
}

.fichimmo-shortcode-archive .fichimmo-filtres {
	border-radius: 20px 20px 20px 20px;
}

.fichimmo-filtre-champ {
	display: flex;
	flex-direction: column;
	gap: 0.3em;
}

.fichimmo-filtre-champ label,
.fichimmo-filtre-legende {
	font-size: 0.85em;
	font-weight: 600;
}

.fichimmo-filtre-champ input,
.fichimmo-filtre-champ select,
.fichimmo-dropdown-toggle {
	box-sizing: border-box;
	height: 2.5em;
	padding: 0.4em 0.6em;
	background: #fff;
	color: #000;
	border: 1px solid #ccc;
	border-radius: 8px;
	box-shadow: none;
	font-size: 1em;
}

#fichimmo-f-pieces {
	width: 80px;
}

#fichimmo-f-surface {
	width: 120px;
}

.fichimmo-dropdown-checkbox {
	position: relative;
}

.fichimmo-dropdown-toggle {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5em;
	width: 100%;
	min-width: 12em;
	text-align: left;
	cursor: pointer;
	box-shadow: none !important;
}

.fichimmo-filtres-group {
	margin-bottom: 2em;
}

.fichimmo-dropdown-toggle-text {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.fichimmo-dropdown-toggle .fichimmo-icon {
	flex: 0 0 auto;
	color: #8a8a8a;
}

/*
 * Panneau "Type de bien" / "Commune" : fenêtre modale qui glisse depuis le
 * bord droit de l'écran (façon LeBonCoin), au lieu d'un menu déroulant
 * classique — pilotée par la classe "is-open" (voir initCheckboxDropdowns()
 * dans fichimmo-front.js), pas par l'attribut "hidden", pour permettre la
 * transition CSS.
 */
.fichimmo-dropdown-panel {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 10000;
	display: flex;
	flex-direction: column;
	width: min(420px, 100vw);
	max-height: none;
	background: #fff;
	border: none;
	border-radius: 0;
	box-shadow: -8px 0 24px rgba(0, 0, 0, 0.15);
	transform: translateX(100%);
	transition: transform 0.3s ease;
}

.fichimmo-dropdown-panel.is-open {
	transform: translateX(0);
}

.fichimmo-dropdown-overlay {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: rgba(0, 0, 0, 0.4);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0s linear 0.3s;
}

.fichimmo-dropdown-overlay.is-open {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.3s ease;
}

body.fichimmo-dropdown-open {
	overflow: hidden;
}

.fichimmo-dropdown-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
	padding: 1.1em 1.4em;
	border-bottom: 1px solid #eee;
	flex: 0 0 auto;
}

.fichimmo-dropdown-title {
	font-size: 1.1em;
	font-weight: 700;
	color: #1d2327;
}

.fichimmo-dropdown-close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2em;
	height: 2em;
	padding: 0;
	background: none;
	border: none;
	font-size: 1.5em;
	line-height: 1;
	color: #666;
	cursor: pointer;
	box-shadow: none;
}

.fichimmo-dropdown-close:hover {
	color: #000;
}

.fichimmo-dropdown-body {
	flex: 1 1 auto;
	overflow-y: auto;
	padding: 0.5em 1.4em;
}

.fichimmo-dropdown-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
	padding: 1em 1.4em;
	border-top: 1px solid #eee;
	flex: 0 0 auto;
}

.fichimmo-dropdown-clear {
	background: none;
	border: 1px solid #ccc;
	border-radius: 100px;
	padding: 0.7em 1.4em;
	color: #333;
	cursor: pointer;
	box-shadow: none;
}

.fichimmo-dropdown-clear:hover {
	background: #f5f5f5;
}

.fichimmo-dropdown-apply {
	flex: 1 1 auto;
	border: none;
	border-radius: 100px;
	padding: 0.7em 1.4em;
	color: #fff;
	font-weight: 600;
	cursor: pointer;
	box-shadow: none;
}

.fichimmo-dropdown-apply:hover {
	opacity: 0.9;
}

.fichimmo-dropdown-option {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 0.2em 0.2em;
	font-weight: 400;
	white-space: normal;
	cursor: pointer;
}

.fichimmo-dropdown-option:hover {
	background: #f5f5f5;
}

.fichimmo-dropdown-option-parent {
	font-weight: 600;
}

.fichimmo-dropdown-option-child {
	padding-left: 1.6em;
}

.fichimmo-dropdown-empty {
	margin: 0;
	padding: 0.3em 0.2em;
	color: #666;
}

.fichimmo-filtre-range {
	flex-direction: column;
}

.fichimmo-filtre-range-inputs {
	display: flex;
	align-items: center;
	gap: 0.3em;
}

.fichimmo-filtre-range input {
	width: 6em;
}

.fichimmo-filtre-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.3em;
}

.fichimmo-filtre-actions-spacer {
	visibility: hidden;
}

.fichimmo-btn {
	display: inline-block;
	padding: 0.5em 1em;
	border-radius: 100px;
	text-decoration: none;
	cursor: pointer;
	border: 1px solid #333;
	background: #333;
	color: #fff;
	font-size: 0.95em;
	transition: opacity 0.15s ease;
}

.fichimmo-btn:hover {
	opacity: 0.8;
}

.fichimmo-filtres .fichimmo-btn-reset {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: #666 !important;
	text-decoration: underline;
	font-size: 0.9em;
	cursor: pointer;
	margin-top: 0.5em;
}

.fichimmo-filtres .fichimmo-btn-reset:hover {
	color: #333 !important;
}

/* Toggle grille/liste + tri */

.fichimmo-view-toggle {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.5em;
	margin-bottom: 1em;
}

.fichimmo-view-btn {
	padding: 0.4em 1.5em;
	border: 1px solid #ccc;
	background: #f5f5f5;
	border-radius: 100px;
	cursor: pointer;
}

.fichimmo-view-btn.is-active {
	background: var(--fichimmo-accent, #333);
	color: #fff;
	border-color: var(--fichimmo-accent, #333);
	box-shadow: none !important;
}

.fichimmo-sort {
	display: flex;
	align-items: center;
	gap: 0.5em;
	margin-left: auto;
	font-size: 0.8em;
}

.fichimmo-sort label {
	font-size: 0.9em;
	color: #444;
	white-space: nowrap;
	position: relative;
    top: 3px;
}

.fichimmo-sort-select {
	padding: 0.4em 1em;
	background: #f5f5f5;
	color: #000;
	border: 1px solid #ccc;
	border-radius: 100px;
	box-shadow: none;
	cursor: pointer;
}

/* Résultats : grille et liste utilisent le même balisage de carte,
   seul data-view change la disposition du conteneur. */

.fichimmo-results[data-view="grid"] {
	display: grid;
	/* --fichimmo-columns (posé par le shortcode [fichimmo_biens]) impose un
	   nombre de colonnes fixe ; sans cette variable, la grille de l'archive
	   reste en auto-fill responsive. */
	grid-template-columns: repeat(var(--fichimmo-columns, auto-fill), minmax(260px, 1fr));
	gap: 1.5em;
}

.fichimmo-shortcode-empty {
	padding: 1em 0;
	color: #666;
}

.fichimmo-results[data-view="list"] {
	display: flex;
	flex-direction: column;
	gap: 1em;
}

.fichimmo-results[data-view="list"] .fichimmo-card {
	display: flex;
	flex-direction: row;
	align-items: stretch;
}

.fichimmo-results[data-view="list"] .fichimmo-card-media {
	flex: 0 0 220px;
	aspect-ratio: 1 / 1;
}

.fichimmo-results[data-view="list"] .fichimmo-card-link {
	flex: 1;
	min-width: 0;
}

.fichimmo-card {
	border: 1px solid #e0e0e0;
	border-radius: 15px;
	overflow: hidden;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.fichimmo-card:hover,
.fichimmo-card:focus-within {
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
	transform: translateY(-2px);
}

.fichimmo-card-link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.fichimmo-card-link,
.fichimmo-card-link:hover,
.fichimmo-card-link *,
.fichimmo-card-link:hover * {
	text-decoration: none !important;
}

.fichimmo-card-media {
	position: relative;
	aspect-ratio: 3 / 2;
	background: #f0f0f0;
	overflow: hidden;
}

/* Slider photo de la carte : piste défilante horizontale, une image
   pleine largeur à la fois ; --fichimmo-slide-index est posé en ligne
   par fichimmo-front.js sur .fichimmo-card-slider-track. */

.fichimmo-card-slider {
	position: relative;
	width: 100%;
	height: 100%;
}

.fichimmo-card-slider-track {
	display: flex;
	width: 100%;
	height: 100%;
	transform: translateX(calc(var(--fichimmo-slide-index, 0) * -100%));
	transition: transform 0.3s ease;
}

.fichimmo-card-slide {
	flex: 0 0 100%;
	width: 100%;
	height: 100%;
	display: block;
}

.fichimmo-card-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.fichimmo-card-slider-arrow {
	position: absolute;
	top: 50%;
	z-index: 2;
	box-sizing: border-box;
	width: 50px;
	height: 50px;
	padding: 0 0 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.85);
	color: #1d2327;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	opacity: 0;
	transform: translateY(-50%);
	transition: opacity 0.15s ease, background 0.15s ease;
}

.fichimmo-card-slider:hover .fichimmo-card-slider-arrow {
	opacity: 1;
}

.fichimmo-card-slider-arrow:hover {
	background: #fff;
}

.fichimmo-card-slider-prev {
	left: 8px;
}

.fichimmo-card-slider-next {
	right: 8px;
}

.fichimmo-card-slider-dots {
	position: absolute;
	left: 50%;
	bottom: 15px;
	z-index: 2;
	display: flex;
	gap: 4px;
	transform: translateX(-50%);
}

.fichimmo-card-slider-dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 1px solid rgba(0, 0, 0, 0.15);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.65);
	cursor: pointer;
}

.fichimmo-single .fichimmo-card-slider-dot {
	width: 15px;
	height: 15px;
}

.fichimmo-card-slider-dot.is-active {
	background: #fff;
}

.fichimmo-card-body {
	padding: 1em;
}

.fichimmo-card-prix {
	font-weight: 700;
	font-size: 1.15em;
	margin: 0 !important;
}

.fichimmo-price-suffix {
	font-size: 0.55em;
	font-weight: 400;
	color: #777;
}

.fichimmo-card-title {
	font-size: 1em;
	margin: 0 0 0.3em;
}

.fichimmo-card-localisation {
	display: flex;
	align-items: center;
	gap: 4px;
	margin: 0 0 0.5em;
	color: #666;
	font-size: 0.8em;
	border-top: 1px solid #d3d3d3;
    border-bottom: 1px solid #d3d3d3;
    padding: 0.3em 0;
}

.fichimmo-card-caracts {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.9em;
	margin: 0;
	padding: 0;
	font-size: 0.7em !important;
	color: #444;
}

.fichimmo-card-caracts li {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.fichimmo-card-equipements {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.7em;
	margin: 0.5em 0 0;
	padding: 0.5em 0 0;
	font-size: 0.7em;
	color: #666;
}

.fichimmo-card-equipements li {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 0.2em 0.5em;
	border: 1px solid #cdcdcd;
	border-radius: 20px;
	background: #f3f3f3;
	font-size: 0.7em !important;
	color: #000;
}

.fichimmo-card-equipements li .fichimmo-icon {
	color: #000;
}

.fichimmo-card-date {
	margin: 1em 0 0 0 !important;
	font-size: 0.7em;
	color: #999;
}

/* Dates des vignettes d'archive (mise en ligne / mise à jour) : plus
   petites que sur la vignette compacte des annonces suggérées. */
.fichimmo-card:not(.fichimmo-card-compact) .fichimmo-card-date {
	font-size: 0.6em;
}

/* 2e ligne de date (dernière mise à jour) : collée à la précédente. */
.fichimmo-card-date.fichimmo-card-date-maj {
	margin-top: 0.2em !important;
}

/* Boutons de partage sous la colonne latérale de la fiche : pastilles
   rondes à la couleur d'accentuation (--fichimmo-accent posée en ligne). */
.fichimmo-partage {
	margin-top: 1.2em;
	text-align: center;
}

.fichimmo-partage-titre {
	margin: 0 0 0.5em;
	font-size: 0.85em;
	font-weight: 600;
	color: #666;
}

.fichimmo-partage-liste {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5em;
}

.fichimmo-partage .fichimmo-share-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 38px;
	height: 38px;
	padding: 0;
	background: #fff;
	color: var(--fichimmo-accent, #333);
	border: 1px solid var(--fichimmo-accent, #333);
	border-radius: 50%;
	box-shadow: none;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.15s ease, color 0.15s ease;
}

.fichimmo-partage .fichimmo-share-btn[hidden] {
	display: none;
}

.fichimmo-partage .fichimmo-icon {
	width: 18px;
	height: 18px;
	color: inherit;
}

/* !important : la surcouche de couleurs (print_custom_colors) impose la
   couleur d'accentuation à tous les liens de la fiche, y compris au survol. */
.fichimmo-single .fichimmo-partage .fichimmo-share-btn:hover,
.fichimmo-single .fichimmo-partage .fichimmo-share-btn:focus-visible {
	background: var(--fichimmo-accent, #333);
	color: #fff !important;
}

.fichimmo-partage-copie {
	margin: 0.5em 0 0;
	font-size: 0.8em;
	color: #666;
}

.fichimmo-partage-copie[hidden] {
	display: none;
}

/* Impression : la fiche sans les éléments d'interaction. */
@media print {
	.fichimmo-partage,
	.fichimmo-single-topbar,
	.fichimmo-galerie-view-all,
	.fichimmo-card-slider-arrow,
	.fichimmo-card-slider-dots,
	.fichimmo-single-suggestions {
		display: none !important;
	}
}

/* Dates de publication / mise à jour sous le titre de la fiche. */
.fichimmo-single-dates {
	display: flex;
	flex-wrap: wrap;
	gap: 0.2em 1.2em;
	margin: 0.3em 0 0;
	font-size: 0.75em;
	color: #999;
}

.fichimmo-icon {
	flex-shrink: 0;
	color: #8a8a8a;
}

/* Bandeaux statut/exclusivité (indisponible) et médaillon DPE */

.fichimmo-card-badges-left {
	position: absolute;
	top: 0.6em;
	left: 0.6em;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	font-size: 0.9em;
}

.fichimmo-single  .fichimmo-card-badges-left {
	font-size: 1.5em;
}

.fichimmo-badge-statut,
.fichimmo-badge-exclusivite {
	padding: 0.3em 1em;
	color: #fff;
	font-size: 0.8em;
	font-weight: 700;
	text-transform: uppercase;
	border-radius: 50px;
}

.fichimmo-badge-statut {
	background: #b32d2e;
}

.fichimmo-badge-statut-sous-offre {
	background: #dd8a1a;
}

.fichimmo-card-dpe {
	position: absolute;
	top: 0.6em;
	right: 0.6em;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.9em;
	height: 1.9em;
	border-radius: 3px;
	color: #fff;
	font-size: 0.8em;
	font-weight: 700;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}

.fichimmo-pagination {
	margin-top: 2em;
	margin-bottom: 4em;
	text-align: center;
}

.fichimmo-pagination .page-numbers {
    display: inline-block;
    background: white;
    box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.2);
    padding: 0.5em 0.8em;
    border-radius: 100px;
    margin: 0 0.3em;
	position: relative;
	transition: all 0.25s;
}

.fichimmo-pagination .page-numbers.prev,
.fichimmo-pagination .page-numbers.next {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	vertical-align: middle;
}

.fichimmo-pagination .page-numbers.prev .fichimmo-icon,
.fichimmo-pagination .page-numbers.next .fichimmo-icon {
	color: inherit;
}

.fichimmo-pagination .page-numbers:hover {
	transform: translateY(-5px);
	text-decoration: none;
}

.fichimmo-pagination  .page-numbers.current {
	font-weight: 900;
}

.fichimmo-no-results {
	padding: 2em 0;
}

/* Fiche bien */

.fichimmo-galerie {
	position: relative;
	margin-bottom: 1.5em;
}

/* Slider photo de la fiche bien, réutilise le mécanisme et les classes du
   slider des cartes de listing (fichimmo-card-slider*, voir initCardSliders()
   dans fichimmo-front.js) — seule la taille du conteneur diffère. */

.fichimmo-galerie-slider {
	position: relative;
	width: 100%;
	aspect-ratio: 3 / 2;
	background: #f0f0f0;
	border-radius: 20px;
	overflow: hidden;
}

.fichimmo-galerie-item {
	padding: 0;
	border: 0;
	background: none;
	cursor: zoom-in;
}

.fichimmo-galerie-item:focus-visible {
	outline: 3px solid #2271b1;
	outline-offset: 2px;
}

.fichimmo-galerie-view-all {
	position: absolute;
	right: 1em;
	bottom: 1em;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 0.5em 1em;
	background: rgba(255, 255, 255, 0.9);
	color: #1d2327;
	border: none;
	border-radius: 100px;
	font-size: 1.2em;
	font-weight: 600;
	cursor: pointer;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
}

.fichimmo-galerie-view-all:hover {
	background: #fff;
	color: black !important;
}

/* Barre au-dessus de la galerie : bouton retour + fil d'Ariane */

.fichimmo-single-topbar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 1em;
	margin-bottom: 1.8em;
}

.fichimmo-back-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #444 !important;
	text-decoration: none !important;
	font-size: 0.9em;
	font-weight: 600;
	flex: 0 0 auto;
	background: white;
    box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.2);
    padding: 0.6em 1.5em;
    border-radius: 20px;
}

.fichimmo-back-btn:hover {
	color: #000 !important;
}

.fichimmo-back-btn .fichimmo-icon {
	color: var(--fichimmo-accent, #8a8a8a);
}

.fichimmo-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.85em;
	color: #666;
}

.fichimmo-breadcrumb li {
	display: flex;
	align-items: center;
}

.fichimmo-breadcrumb li:not(:last-child)::after {
	content: '/';
	margin: 0 0.5em;
	color: #999;
}

.fichimmo-breadcrumb a {
	color: #666 !important;
	text-decoration: none !important;
}

.fichimmo-breadcrumb a:hover {
	text-decoration: underline !important;
}

.fichimmo-breadcrumb li:last-child {
	color: #333;
	font-weight: 600;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 40vw;
}

/* Lightbox */

.fichimmo-lightbox {
	position: fixed;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, 0.88);
	padding: 2em;
	z-index: 100000;
}

.fichimmo-lightbox[hidden] {
	display: none;
}

.fichimmo-lightbox-img {
	max-width: 90vw;
	max-height: 85vh;
	object-fit: contain;
	border-radius: 4px;
}

.fichimmo-lightbox-close,
.fichimmo-lightbox-prev,
.fichimmo-lightbox-next {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
	border: none;
	border-radius: 50%;
	cursor: pointer;
	line-height: 1;
	transition: background 0.15s ease;
}

.fichimmo-lightbox-close:hover,
.fichimmo-lightbox-prev:hover,
.fichimmo-lightbox-next:hover {
	background: rgba(255, 255, 255, 0.25);
}

.fichimmo-lightbox-close {
	top: 1em;
    right: 1em;
    width: 50px;
    height: 60px;
    font-size: 35px;
}

.fichimmo-lightbox-prev,
.fichimmo-lightbox-next {
	top: 50%;
	transform: translateY(-50%);
	width: 50px;
    height: 58px;
	font-size: 32px;
}

.fichimmo-lightbox-prev {
	left: 1em;
}

.fichimmo-lightbox-next {
	right: 1em;
}

.fichimmo-lightbox-counter {
	position: absolute;
	bottom: 1em;
	left: 50%;
	transform: translateX(-50%);
	margin: 0;
	color: #fff;
	font-size: 0.9em;
}

body.fichimmo-lightbox-open {
	overflow: hidden;
}

/*
 * Fiche bien : mise en page en grille. Sur mobile, tout est empilé dans
 * l'ordre header > aside (prix + contact) > main (contenu détaillé). À
 * partir de 900px, deux colonnes (le bloc prix/contact défile normalement).
 */
.fichimmo-single-layout {
	display: grid;
	grid-template-columns: 1fr;
	grid-template-areas: "header" "aside" "main";
	gap: 2em;
}

@media (min-width: 900px) {
	.fichimmo-single-layout {
		grid-template-columns: 2fr 1fr;
		grid-template-areas: "header header" "main aside";
		align-items: start;
	}
}

.fichimmo-single-title-row {
	grid-area: header;
}

.fichimmo-single-main {
	grid-area: main;
	min-width: 0;
}

.fichimmo-single-aside {
	grid-area: aside;
}

.fichimmo-single-title {
	margin: 0;
}

.fichimmo-single-price-box {
	padding: 2em;
	border: 1px solid #e0e0e0;
	border-radius: 20px;
	background: #ffffff;
	box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.2);
}

.fichimmo-single-prix {
	font-size: 2em;
	font-weight: 700;
	margin: 0 0 0.2em;
}

.fichimmo-single-prix-details {
	list-style: none;
	margin: 0 0 0.5em;
	padding: 0;
	color: #555;
	font-size: 0.95em;
}

.fichimmo-single-meta {
	margin: 0;
	color: #666;
}

.fichimmo-single-transaction {
	font-weight: 600;
	margin-right: 0.5em;
}

.fichimmo-single-price-box .fichimmo-contact,
.fichimmo-single-price-box .fichimmo-similaires {
	margin: 2em 0 0;
	background: #f5f5f5;
    padding: 1em;
    border-radius: 15px;
    border-top: 0;
}

.fichimmo-single-price-box .fichimmo-contact .fichimmo-contact-tel,
.fichimmo-single-price-box .fichimmo-contact .fichimmo-contact-email{
	font-size: 1.2em;
	text-decoration: none;
	font-weight: 800;
}

.fichimmo-single-price-box .fichimmo-contact a {
	text-decoration: none;
}

.fichimmo-single-pictos {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 1.5em;
	margin: 0 0 1.5em;
	padding: 1em 0;
	border-top: 1px solid #e0e0e0;
	border-bottom: 1px solid #e0e0e0;
	font-size: 1.2em;
}

.fichimmo-single-pictos li {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.fichimmo-single-description {
	margin: 1.5em 0;
	font-size: 1.3em;
	line-height: 1.7;
}

/* Toutes les balises de la description (p, span, ul, li, titres, etc.) ont
   la même taille : 1.3em posé une seule fois sur le conteneur, les
   descendants en héritent. Poser 1.3em sur chaque balise ferait se
   multiplier les tailles (ul > li > span = 1.3 × 1.3 × 1.3). !important :
   le thème et l'éditeur imposent leurs propres tailles aux p/li/titres. */
.fichimmo-single .fichimmo-single-description * {
	font-size: inherit !important;
	line-height: 1.7 !important;
}

.fichimmo-caracteristiques,
.fichimmo-dpe-badge,
.fichimmo-single-documents,
.fichimmo-single-localisation {
	margin: 2em 0;
	padding-top: 1.5em;
	border-top: 1px solid #e0e0e0;
}

.fichimmo-single-localisation p {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 1.4em;
}

.fichimmo-single-localisation .fichimmo-single-risque {
	color: #b32d2e;
	font-size: 0.8em;
}

.fichimmo-single-risque .fichimmo-icon {
	color: #b32d2e;
}

.fichimmo-single-disponibilite {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0.4em 0 0;
	color: #666;
	font-size: 0.95em;
}

.fichimmo-documents-list {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.6em;
	margin: 0;
	padding: 0;
}

.fichimmo-documents-list a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #1d2327;
	text-decoration: none;
	background: white;
    box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.3);
    padding: 0.8em 1em;
    border-radius: 50px;
    margin-bottom: 0.5em;
}

.fichimmo-documents-list a:hover {
	text-decoration: none;
}

.fichimmo-documents-list .fichimmo-icon {
	color: var(--fichimmo-accent, #8a8a8a);
}

.fichimmo-caracteristiques-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 0.5em 2em;
	margin: 0;
}

.fichimmo-caract-row {
	display: flex;
	justify-content: space-between;
	gap: 1em;
	padding: 0.4em 0;
	border-bottom: 1px dotted #ddd;
}

.fichimmo-caract-row dt {
	color: #666;
	font-weight: 200;
}

.fichimmo-caract-row dd {
	margin: 0;
	font-weight: 600;
	text-align: right;
}

/* Étiquette DPE/GES : échelle A -> G, verte à rouge */

.fichimmo-dpe-echelle {
	margin-bottom: 2em;
}

.fichimmo-dpe-legende {
	font-weight: 600;
	margin: 0 0 0.4em;
}

.fichimmo-dpe-barres {
	display: flex;
	gap: 2px;
}

.fichimmo-dpe-lettre {
	flex: 1;
	max-width: 3em;
	text-align: center;
	padding: 0.4em 0;
	font-weight: 700;
	color: #fff;
	opacity: 0.35;
	border-radius: 2px;
}

.fichimmo-dpe-lettre.is-active {
	opacity: 1;
	outline: 2px solid #222;
	outline-offset: 1px;
}

.fichimmo-dpe-a { background: #319834; }
.fichimmo-dpe-b { background: #56ab2f; }
.fichimmo-dpe-c { background: #a2c614; }
.fichimmo-dpe-d { background: #f2e01c; color: #222; }
.fichimmo-dpe-e { background: #f2af1c; }
.fichimmo-dpe-f { background: #e8641c; }
.fichimmo-dpe-g { background: #d81c1c; }

/* Échelle GES : dégradé violet dédié, plus spécifique que les couleurs DPE
   ci-dessus pour les mêmes classes de lettre (voir dpe-badge.php, les deux
   échelles réutilisent fichimmo-dpe-a...g). */

.fichimmo-dpe-echelle-ges .fichimmo-dpe-a { background: #ede9fe; color: #3b0764; }
.fichimmo-dpe-echelle-ges .fichimmo-dpe-b { background: #ddd6fe; color: #3b0764; }
.fichimmo-dpe-echelle-ges .fichimmo-dpe-c { background: #c4b5fd; color: #3b0764; }
.fichimmo-dpe-echelle-ges .fichimmo-dpe-d { background: #a78bfa; color: #2e1065; }
.fichimmo-dpe-echelle-ges .fichimmo-dpe-e { background: #8b5cf6; color: #fff; }
.fichimmo-dpe-echelle-ges .fichimmo-dpe-f { background: #7c3aed; color: #fff; }
.fichimmo-dpe-echelle-ges .fichimmo-dpe-g { background: #5b21b6; color: #fff; }

.fichimmo-dpe-non-soumis,
.fichimmo-dpe-en-cours,
.fichimmo-dpe-absent {
	color: #666;
	font-style: italic;
}

.fichimmo-dpe-cout-energie {
	margin: 1em 0 0;
	font-size: 1em;
	font-weight: 600;
}

.fichimmo-contact a {
	text-decoration: underline;
}

.fichimmo-similaires .fichimmo-results {
	margin-top: 1em;
}

.fichimmo-single-suggestions {
	margin: 8em 0;
	padding-top: 2em;
}

.fichimmo-single-suggestions .fichimmo-results {
	margin-top: 1em;
}

/* Toujours 3 colonnes sur cette section précise (pas de repli auto-fill),
   avec un repli manuel sur les écrans étroits pour éviter que les cartes
   ne soient écrasées sous leur largeur minimale. */

.fichimmo-single-suggestions .fichimmo-results[data-view="grid"] {
	grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 700px) {
	.fichimmo-single-suggestions .fichimmo-results[data-view="grid"] {
		grid-template-columns: 1fr;
	}
}

@media (min-width: 701px) and (max-width: 999px) {
	.fichimmo-single-suggestions .fichimmo-results[data-view="grid"] {
		grid-template-columns: repeat(2, 1fr);
	}
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.fichimmo-single {
	max-width: 1200px;
	margin: 3em auto;
	padding: 1em;
}

.fichimmo-results {
	margin-bottom: 3em;
}

/* Simulateur de prêt (fiche bien, vente uniquement) */

.fichimmo-simulateur,
.fichimmo-simulateur-noscript {
	margin: 2em 0 1em;
	padding: 1.5em;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	background: #fafafa;
}

.fichimmo-simulateur h2,
.fichimmo-simulateur-noscript h2 {
	margin-top: 0;
}

.fichimmo-simulateur-form {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 1em;
	margin-bottom: 1em;
}

.fichimmo-simulateur-champ {
	display: flex;
	flex-direction: column;
	gap: 0.3em;
}

.fichimmo-simulateur-champ label {
	font-size: 0.85em;
	font-weight: 600;
}

.fichimmo-simulateur-champ input,
.fichimmo-simulateur-champ select {
	box-sizing: border-box;
	height: 2.5em;
	padding: 0.4em 0.6em;
	background: #fff;
	color: #000;
	border: 1px solid #ccc;
	border-radius: 8px;
	box-shadow: none;
	font-size: 1em;
}

.fichimmo-simulateur-emprunt {
	margin: 0 0 1em;
	font-weight: 600;
	color: #444;
	min-height: 1.2em;
}

.fichimmo-simulateur-resultats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 1em;
	margin-bottom: 1em;
}

.fichimmo-simulateur-resultat {
	display: flex;
	flex-direction: column;
	gap: 0.2em;
	padding: 1em;
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
}

.fichimmo-simulateur-resultat-label {
	font-size: 0.8em;
	color: #666;
}

.fichimmo-simulateur-resultat-valeur {
	font-size: 1.3em;
	font-weight: 700;
}

.fichimmo-simulateur-disclaimer {
	margin: 0;
	font-size: 0.8em;
	color: #666;
}

/* Frais de notaire : bloc compact juste sous la Localisation, dans
   fichimmo-single-main (résumé secondaire, pas la mise en avant du
   simulateur de prêt). */

.fichimmo-frais-notaire {
	margin: 4em 0 2em 0;
	padding: 1em 1.2em;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	background: #fafafa;
	font-size: 0.9em;
}

.fichimmo-frais-notaire h2 {
	margin: 0 0 0.6em;
	font-size: 1.1em;
}

.fichimmo-frais-notaire-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 0.8em;
}

.fichimmo-frais-notaire-table td {
	padding: 0.35em 0;
	border-bottom: 1px solid #e0e0e0;
}

.fichimmo-frais-notaire-table td:last-child {
	text-align: right;
	white-space: nowrap;
}

.fichimmo-frais-notaire-total td {
	border-bottom: none;
	border-top: 2px solid #ccc;
	padding-top: 0.5em;
	font-weight: 700;
	font-size: 1em;
}

.fichimmo-frais-notaire-budget {
	margin: 0 0 0.8em;
	font-weight: 600;
	color: #444;
}

.fichimmo-frais-notaire-disclaimer {
	margin: 0;
	font-size: 0.85em;
	color: #666;
}

.fichimmo-single-title {
    font-size: 2.5em;
    font-weight: 800;
	padding: 0.5em 0;
}

.fichimmo-single h2{
    font-size: 1.8em;
    font-weight: 800;
}

.fichimmo-single-suggestions .fichimmo-card-title {
	font-size: 1.5em;
}

.fichimmo-single-suggestions > h2 {
	text-align: center;
	margin-bottom: 2em;
}

.fichimmo-single-description #TheTexte {
	font-size: 1.2em;
}