/* Bizo-Immo Vacances - Front (design aligné capture / référence) */

/*
 * Variables scopées aux wrappers du plugin pour éviter que le thème WordPress
 * ne les écrase (isolation du style).
 */
.bizo-immo-vacances-wrap,
.bizo-immo-ventes-wrap,
.bizo-fiche-bien {
	--bizo-primary: #2b3035;
	--bizo-primary-hover: #3d454d;
	--bizo-text-muted: #637381;
	--bizo-text-body: #454f5b;
	--bizo-accent: #5ba4d4;
	--bizo-accent-soft: #e8f4fc;
	--bizo-card-bg: #ffffff;
	--bizo-card-shadow: 0 4px 16px rgba(43, 48, 53, 0.08);
	--bizo-card-shadow-hover: 0 10px 32px rgba(43, 48, 53, 0.12);
	--bizo-radius: 10px;
	--bizo-radius-image: 10px 10px 0 0;
	--bizo-transition: 0.2s ease;
}

.bizo-immo-vacances-wrap {
	max-width: 1280px;
	margin: 0 auto;
	padding: 2rem 1.5rem;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Formulaire de recherche */
.bizo-immo-search-form {
	background: #f8fafc;
	border-radius: var(--bizo-radius);
	padding: 1.5rem;
	margin-bottom: 2.5rem;
	border: 1px solid #e2e8f0;
}

.bizo-search-fields {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: flex-end;
}

.bizo-field {
	display: flex;
	flex-direction: column;
	min-width: 100px;
}

.bizo-field label {
	font-size: 0.875rem;
	font-weight: 600;
	margin-bottom: 0.35rem;
	color: var(--bizo-primary);
}

.bizo-field input[type="number"],
.bizo-field input[type="text"],
.bizo-field select {
	padding: 0.6rem 0.85rem;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	font-size: 1rem;
	color: var(--bizo-primary);
	background: #fff;
	transition: border-color var(--bizo-transition);
}

.bizo-field input:focus,
.bizo-field select:focus {
	outline: none;
	border-color: var(--bizo-accent);
}

.bizo-field-submit {
	justify-content: flex-end;
}

.bizo-btn {
	display: inline-block;
	padding: 0.65rem 1.5rem;
	font-size: 0.9375rem;
	font-weight: 600;
	border: none;
	border-radius: var(--bizo-radius);
	cursor: pointer;
	text-decoration: none;
	transition: background-color var(--bizo-transition), transform var(--bizo-transition);
}

.bizo-btn-search {
	background: var(--bizo-primary);
	color: #fff;
}

.bizo-btn-search:hover {
	background: var(--bizo-primary-hover);
}

/* Section résultats */
.bizo-results-title {
	font-size: 2rem;
	font-weight: 700;
	color: var(--bizo-primary);
	margin: 0 0 0.5rem;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.bizo-results-desc {
	font-size: 1rem;
	color: var(--bizo-text-muted);
	margin: 0 0 2rem;
	line-height: 1.5;
}

/* Grille cartes */
.bizo-biens-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 1.75rem;
}

.bizo-biens-grid.bizo-biens-list {
	grid-template-columns: 1fr;
}

/* Carte bien */
.bizo-bien-card {
	margin: 0;
}

.bizo-bien-card-link {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--bizo-card-bg);
	border-radius: var(--bizo-radius);
	overflow: hidden;
	box-shadow: var(--bizo-card-shadow);
	text-decoration: none;
	color: inherit;
	transition: transform var(--bizo-transition), box-shadow var(--bizo-transition);
}

.bizo-bien-card-link:hover {
	transform: translateY(-6px);
	box-shadow: var(--bizo-card-shadow-hover);
}

.bizo-bien-card-link:hover .bizo-bien-cta {
	background: var(--bizo-primary-hover);
	color: #fff;
}

/* Image + tag */
.bizo-bien-image-wrap {
	position: relative;
	flex-shrink: 0;
}

.bizo-bien-image,
.bizo-bien-carousel {
	border-radius: var(--bizo-radius-image);
}

.bizo-bien-image {
	padding-top: 58%;
	background-size: cover;
	background-position: center;
	transition: transform var(--bizo-transition);
}

/* Carousel sur les cartes liste */
.bizo-bien-carousel {
	position: relative;
	overflow: hidden;
}

.bizo-bien-carousel-inner {
	display: flex;
	transition: transform 0.4s ease;
	will-change: transform;
}

.bizo-bien-slide {
	flex: 0 0 100%;
	width: 100%;
	padding-top: 58%;
	background-size: cover;
	background-position: center;
	transition: transform var(--bizo-transition);
}

.bizo-bien-card-link:hover .bizo-bien-image,
.bizo-bien-card-link:hover .bizo-bien-slide {
	transform: scale(1.03);
}

.bizo-bien-type {
	position: absolute;
	top: 0.875rem;
	right: 0.875rem;
	z-index: 1;
	display: inline-block;
	padding: 0.4rem 0.75rem;
	font-size: 0.6875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #fff;
	background: var(--bizo-accent);
	border-radius: 6px;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

/* Pastille DPE sur carte bien vente */
.bizo-bien-dpe {
	position: absolute;
	bottom: 0.875rem;
	left: 0.875rem;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	font-size: 0.875rem;
	font-weight: 700;
	color: #fff;
	border-radius: 6px;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
}
.bizo-dpe-a { background: #2e7d32; }
.bizo-dpe-b { background: #43a047; }
.bizo-dpe-c { background: #8bc34a; }
.bizo-dpe-d { background: #ffeb3b; color: #333; }
.bizo-dpe-e { background: #ff9800; }
.bizo-dpe-f { background: #e65100; }
.bizo-dpe-g { background: #b71c1c; }
.bizo-dpe- { background: #78909c; }

/* Contenu carte */
.bizo-bien-content {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 1.5rem;
	gap: 0.5rem;
}

.bizo-bien-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--bizo-primary);
	margin: 0;
	line-height: 1.3;
	letter-spacing: -0.01em;
}

.bizo-bien-quartier {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.875rem;
	color: var(--bizo-text-muted);
	margin: 0;
}

.bizo-icon {
	display: inline-block;
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
}

.bizo-icon-pin {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%235ba4d4'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E");
}

.bizo-icon-people {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23637381'%3E%3Cpath d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/%3E%3C/svg%3E");
}

.bizo-icon-bed {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23637381'%3E%3Cpath d='M7 13c1.66 0 3-1.34 3-3S8.66 7 7 7s-3 1.34-3 3 1.34 3 3 3zm12-6h-8v7H3V5H1v15h2v-3h18v3h2v-9c0-2.21-1.79-4-4-4z'/%3E%3C/svg%3E");
}

.bizo-bien-excerpt {
	font-size: 0.875rem;
	color: var(--bizo-text-body);
	margin: 0;
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	flex: 1;
	min-height: 3.9em;
}

/* Séparateur + footer carte : meta + prix */
.bizo-bien-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 0.75rem;
	padding-top: 1rem;
	border-top: 1px solid #e5e7eb;
}

.bizo-bien-meta {
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: 0.875rem;
	color: var(--bizo-text-muted);
}

.bizo-meta-item {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.bizo-bien-prix {
	margin: 0;
	font-size: 0.875rem;
	color: var(--bizo-text-muted);
	text-align: right;
}

.bizo-bien-prix-amount {
	font-weight: 700;
	font-size: 1.125rem;
	color: var(--bizo-primary);
}

.bizo-bien-prix-unit {
	font-weight: 400;
	color: var(--bizo-text-muted);
}

/* Bouton CTA carte (rectangle arrondi, majuscules, bien aligné dans la carte) */
.bizo-bien-cta {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-width: 0;
	margin: 1.25rem 0 0;
	padding: 0.8rem 1.25rem;
	box-sizing: border-box;
	font-size: 0.8125rem;
	font-weight: 600;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: #fff;
	background: var(--bizo-primary);
	border-radius: var(--bizo-radius);
	transition: background-color var(--bizo-transition);
	align-self: stretch;
}

/* Disposition liste */
.bizo-biens-list .bizo-bien-card-link {
	flex-direction: row;
	text-align: left;
}

.bizo-biens-list .bizo-bien-image-wrap {
	flex: 0 0 320px;
}

.bizo-biens-list .bizo-bien-image,
.bizo-biens-list .bizo-bien-carousel {
	border-radius: var(--bizo-radius) 0 0 var(--bizo-radius);
}

.bizo-biens-list .bizo-bien-image {
	padding-top: 0;
	height: 100%;
	min-height: 220px;
}

.bizo-biens-list .bizo-bien-carousel {
	height: 100%;
	min-height: 220px;
}

.bizo-biens-list .bizo-bien-carousel-inner {
	height: 100%;
}

.bizo-biens-list .bizo-bien-slide {
	padding-top: 0;
	height: 100%;
	min-height: 220px;
	flex: 0 0 100%;
}

.bizo-biens-list .bizo-bien-content {
	padding: 1.75rem;
}

.bizo-no-results {
	padding: 3rem 2rem;
	text-align: center;
	color: var(--bizo-text-muted);
	font-size: 1rem;
}

.bizo-pagination {
	margin-top: 2.5rem;
	text-align: center;
}

.bizo-pagination a,
.bizo-pagination span {
	display: inline-block;
	padding: 0.5rem 1rem;
	margin: 0 0.25rem;
	border-radius: 8px;
	text-decoration: none;
	background: #f1f5f9;
	color: var(--bizo-primary);
	font-weight: 500;
	transition: background var(--bizo-transition);
}

.bizo-pagination a:hover {
	background: var(--bizo-accent-soft);
}

.bizo-pagination .current {
	background: var(--bizo-primary);
	color: #fff;
}

/* ========== Fiche bien (page / modal – style référence Bizo-Immo) ========== */
.bizo-fiche-bien {
	max-width: 1200px;
	margin: 0 auto;
	padding-bottom: 2rem;
}

.bizo-fiche-notice {
	margin: 0 0 1rem;
	padding: 0.85rem 1rem;
	border-radius: var(--bizo-radius);
	font-size: 0.9375rem;
}
.bizo-fiche-notice-success {
	background: #ecfdf5;
	border: 1px solid #a7f3d0;
	color: #065f46;
}
.bizo-fiche-notice-error {
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #991b1b;
}

.bizo-fiche-back-wrap {
	margin: 0 0 1.5rem;
}

.bizo-fiche-back {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-size: 0.9375rem;
	color: var(--bizo-text-muted);
	text-decoration: none;
	transition: color var(--bizo-transition);
}

.bizo-fiche-back:hover {
	color: var(--bizo-primary);
}

.bizo-fiche-back-arrow {
	font-size: 1.1em;
}

/* Galerie : grande image + miniatures à droite + bouton "Voir toutes les photos" */
.bizo-fiche-galerie {
	display: grid;
	grid-template-columns: 1fr 100px;
	gap: 0.5rem;
	margin-bottom: 2rem;
	border-radius: var(--bizo-radius);
	overflow: hidden;
}

.bizo-fiche-galerie-main {
	position: relative;
	border-radius: var(--bizo-radius);
	overflow: hidden;
}

.bizo-fiche-image-main {
	padding-top: 55%;
	background-size: cover;
	background-position: center;
	transition: transform var(--bizo-transition);
}

.bizo-fiche-galerie-main:hover .bizo-fiche-image-main {
	transform: scale(1.02);
}

.bizo-fiche-voir-photos {
	position: absolute;
	bottom: 1rem;
	right: 1rem;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.5rem 0.85rem;
	font-size: 0.8125rem;
	color: var(--bizo-text-muted);
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(0,0,0,0.08);
	transition: background var(--bizo-transition), color var(--bizo-transition);
}

.bizo-fiche-voir-photos:hover {
	background: #f8fafc;
	color: var(--bizo-primary);
}

.bizo-fiche-voir-photos-icon {
	display: inline-block;
	width: 1rem;
	height: 1rem;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23637381'%3E%3Cpath d='M12 12m-3.2 0a3.2 3.2 0 1 1 6.4 0 3.2 3.2 0 1 1-6.4 0'/%3E%3Cpath d='M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z'/%3E%3C/svg%3E") center/contain no-repeat;
}

.bizo-fiche-thumbs {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.bizo-fiche-thumb {
	flex: 1;
	min-height: 60px;
	border: none;
	border-radius: 8px;
	background-size: cover;
	background-position: center;
	cursor: pointer;
	opacity: 0.7;
	transition: opacity var(--bizo-transition), border-color var(--bizo-transition);
}

.bizo-fiche-thumb:hover,
.bizo-fiche-thumb.is-active {
	opacity: 1;
	border: 2px solid var(--bizo-accent);
}

/* Colonne principale + sidebar */
.bizo-fiche-main {
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 2.5rem;
	align-items: start;
}

.bizo-fiche-col {
	min-width: 0;
}

/* En-tête fiche : titre, lieu, stats */
.bizo-fiche-header {
	margin-bottom: 2rem;
}

.bizo-fiche-title {
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--bizo-primary);
	margin: 0 0 0.5rem;
	line-height: 1.25;
}

.bizo-fiche-quartier {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.9375rem;
	color: var(--bizo-text-muted);
	margin: 0 0 0.75rem;
}

.bizo-fiche-stats {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-size: 0.9375rem;
	color: var(--bizo-text-body);
}

.bizo-fiche-stat {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.bizo-fiche-stat-sep {
	color: #c4cdd5;
	font-weight: 300;
}

/* Sections : À propos, Équipements, Vidéo */
.bizo-fiche-section-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--bizo-primary);
	margin: 0 0 1rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid #e5e7eb;
}

.bizo-fiche-about {
	margin-bottom: 2rem;
}

.bizo-fiche-content {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--bizo-text-body);
}

.bizo-fiche-content p {
	margin: 0 0 0.75rem;
}

.bizo-fiche-equipements,
.bizo-fiche-prestations {
	margin-bottom: 2rem;
}

.bizo-fiche-equipements .bizo-fiche-section-title {
	color: #374151;
	font-weight: 700;
}

.bizo-equipements-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.5rem 1.5rem;
	font-size: 0.9375rem;
	color: #6b7280;
}

.bizo-equipements-grid li {
	display: flex;
	align-items: center;
	gap: 0.65rem;
}

/* Icône coche teal dans un cercle (style Équipements, comme sur la maquette) */
.bizo-equip-check {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.35rem;
	height: 1.35rem;
	flex-shrink: 0;
	border-radius: 50%;
	background-color: #0d9488;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E");
	background-size: 0.65em 0.65em;
	background-position: center;
	background-repeat: no-repeat;
}

@media (max-width: 768px) {
	.bizo-immo-search-form {
		padding: 1.25rem;
	}
	.bizo-search-fields {
		flex-direction: column;
		align-items: stretch;
	}
	.bizo-field {
		min-width: 0;
		width: 100%;
	}
	.bizo-field-submit {
		justify-content: stretch;
	}
	.bizo-btn-search {
		width: 100%;
		min-height: 44px;
	}
	.bizo-biens-list .bizo-bien-card-link {
		flex-direction: column;
	}
	.bizo-biens-list .bizo-bien-image-wrap {
		flex: none;
		width: 100%;
	}
	.bizo-biens-list .bizo-bien-image,
	.bizo-biens-list .bizo-bien-slide {
		padding-top: 58%;
		min-height: 0;
	}
	.bizo-biens-list .bizo-bien-image,
	.bizo-biens-list .bizo-bien-carousel {
		border-radius: var(--bizo-radius-image);
	}
	.bizo-biens-list .bizo-bien-carousel {
		min-height: 0;
	}
}

.bizo-fiche-video {
	margin-bottom: 2rem;
}

.bizo-fiche-video-embed {
	position: relative;
	padding-top: 56.25%;
	margin-bottom: 0.75rem;
	border-radius: var(--bizo-radius);
	overflow: hidden;
	background: #000;
}

.bizo-fiche-video-embed iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: none;
}

.bizo-fiche-video-link {
	font-size: 0.9375rem;
	color: var(--bizo-accent);
	text-decoration: none;
}

.bizo-fiche-video-link:hover {
	text-decoration: underline;
}

/* Sidebar réservation (sticky) */
.bizo-fiche-sidebar {
	position: sticky;
	top: 1.5rem;
}

.bizo-fiche-booking {
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 4px 24px rgba(15, 23, 42, 0.08);
}

/* Header sombre (slate-900) */
.bizo-booking-header-dark {
	background: #0f172a;
	color: #f8fafc;
	padding: 1rem 1.25rem;
	margin: 0;
}

.bizo-booking-header-left {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.bizo-fiche-booking-header .bizo-fiche-prix-big {
	font-size: 1.5rem;
	font-weight: 700;
	color: #f8fafc;
	margin: 0;
}

.bizo-fiche-prix-unit {
	font-size: 0.9375rem;
	font-weight: 500;
	opacity: 0.85;
}

.bizo-badge-luxe {
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	background: rgba(248, 250, 252, 0.2);
	color: #f8fafc;
	padding: 0.35rem 0.6rem;
	border-radius: 6px;
}

.bizo-fiche-booking-title {
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--bizo-primary);
	margin: 1rem 1.25rem 0.5rem;
}

/* Calendrier */
.bizo-fiche-calendar-widget {
	padding: 0 1.25rem 1rem;
}

.bizo-calendar-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.75rem;
}

.bizo-calendar-prev,
.bizo-calendar-next {
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #f1f5f9;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	font-size: 1.125rem;
	color: var(--bizo-primary);
	cursor: pointer;
	transition: background var(--bizo-transition), border-color var(--bizo-transition);
}

.bizo-calendar-prev:hover,
.bizo-calendar-next:hover {
	background: #e2e8f0;
	border-color: #cbd5e1;
}

.bizo-calendar-month-year {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--bizo-primary);
}

.bizo-calendar-dow-row {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
	margin-bottom: 0.5rem;
	font-size: 0.6875rem;
	font-weight: 700;
	color: var(--bizo-text-muted);
	text-align: center;
}

.bizo-calendar-days {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
	font-size: 0.8125rem;
	text-align: center;
}

.bizo-calendar-day {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	padding: 0.25rem;
	border-radius: 8px;
	color: var(--bizo-text-body);
	cursor: pointer;
	transition: background var(--bizo-transition), color var(--bizo-transition);
}

.bizo-calendar-day:hover:not(.bizo-calendar-day-empty):not(.bizo-calendar-day-other) {
	background: var(--bizo-accent-soft);
	color: var(--bizo-primary);
}

.bizo-calendar-day-other {
	color: #cbd5e1;
	cursor: default;
}

.bizo-calendar-day-selected {
	background: var(--bizo-accent);
	color: #fff;
	font-weight: 600;
}

.bizo-calendar-day-in-range {
	background: rgba(91, 164, 212, 0.25);
	color: var(--bizo-primary);
}

.bizo-calendar-day-empty {
	visibility: hidden;
	cursor: default;
}

/* État initial : Prix par nuit + bouton Sélectionnez vos dates */
.bizo-booking-prix-nuit-simple {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem 1.25rem;
	font-size: 0.875rem;
	color: var(--bizo-text-body);
}

.bizo-booking-prix-nuit-simple .bizo-recap-value {
	color: var(--bizo-primary);
}

.bizo-btn-select-dates {
	width: calc(100% - 2.5rem);
	margin: 0 1.25rem 1rem;
	padding: 0.85rem 1.25rem;
	font-size: 1rem;
	font-weight: 600;
	color: #fff;
	background: #64748b;
	border: none;
	border-radius: 10px;
	cursor: pointer;
	transition: background var(--bizo-transition);
	box-shadow: 0 2px 8px rgba(100, 116, 139, 0.25);
}

.bizo-btn-select-dates:hover {
	background: #475569;
	color: #fff;
}

/* Récap prix (affiché après sélection des dates) */
.bizo-fiche-booking-recap {
	border-top: 1px solid #e2e8f0;
	padding: 1rem 1.25rem;
	background: #f8fafc;
}

.bizo-recap-line {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 0.875rem;
	margin-bottom: 0.5rem;
}

.bizo-recap-line:last-child {
	margin-bottom: 0;
}

.bizo-recap-total {
	margin-top: 0.5rem;
	padding-top: 0.5rem;
	border-top: 1px solid #e2e8f0;
	font-size: 1rem;
}

.bizo-recap-total .bizo-recap-value {
	color: var(--bizo-primary);
}

/* Formulaire réservation */
.bizo-fiche-booking-form {
	padding: 1rem 1.25rem;
}

.bizo-form-row {
	margin: 0 0 1rem;
}

.bizo-form-row label {
	display: block;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--bizo-primary);
	margin-bottom: 0.35rem;
}

.bizo-fiche-booking-form input[type="text"],
.bizo-fiche-booking-form input[type="email"],
.bizo-fiche-booking-form select,
.bizo-fiche-booking-form textarea {
	width: 100%;
	padding: 0.6rem 0.85rem;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	font-size: 0.9375rem;
	color: var(--bizo-primary);
	background: #fff;
	box-sizing: border-box;
	transition: border-color var(--bizo-transition);
}

.bizo-fiche-booking-form input:focus,
.bizo-fiche-booking-form select:focus,
.bizo-fiche-booking-form textarea:focus {
	outline: none;
	border-color: var(--bizo-accent);
}

.bizo-fiche-booking-form textarea {
	resize: vertical;
	min-height: 80px;
}

.bizo-form-row-rgpd {
	margin-bottom: 1rem;
}

.bizo-form-row-rgpd .bizo-label-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	font-weight: normal;
	font-size: 0.8125rem;
	line-height: 1.4;
	cursor: pointer;
}

.bizo-form-row-rgpd .bizo-label-checkbox input[type="checkbox"] {
	width: auto;
	margin-top: 0.2rem;
	flex-shrink: 0;
}

.bizo-form-row-rgpd .bizo-label-checkbox a {
	color: var(--bizo-accent);
	text-decoration: underline;
}

.bizo-btn-booking-submit {
	width: 100%;
	padding: 0.85rem 1.25rem;
	font-size: 1rem;
	font-weight: 600;
	color: #fff;
	background: var(--bizo-accent);
	border: none;
	border-radius: 10px;
	cursor: pointer;
	transition: background var(--bizo-transition);
	margin-top: 0.25rem;
}

.bizo-btn-booking-submit:hover {
	background: #4a9fd6;
}

.bizo-btn-booking-submit:disabled {
	opacity: 0.7;
	cursor: not-allowed;
}

.bizo-fiche-disclaimer {
	font-size: 0.75rem;
	color: var(--bizo-text-muted);
	margin: 0;
	padding: 0.75rem 1.25rem 1rem;
	line-height: 1.4;
}

/* ========== Formulaire Demander une visite (vente) ========== */
.bizo-fiche-vente-contact .bizo-form-demande-visite-wrap {
	padding: 1.5rem 1.5rem 1.5rem;
	background: #fafbfc;
	border-radius: 0 0 16px 16px;
}

.bizo-fiche-vente-contact .bizo-fiche-booking-title {
	font-size: 1rem;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
	color: var(--bizo-primary);
	margin: 0 0 0.35rem;
	padding: 0;
}

.bizo-form-demande-visite-desc {
	font-size: 0.875rem;
	color: var(--bizo-text-muted);
	margin: 0 0 1.25rem;
	line-height: 1.45;
}

.bizo-fiche-vente-contact .bizo-fiche-booking-form {
	padding: 0;
	margin: 0;
}

.bizo-fiche-vente-contact .bizo-form-row {
	margin-bottom: 1.15rem;
}

.bizo-fiche-vente-contact .bizo-form-row label {
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--bizo-primary);
	margin-bottom: 0.4rem;
	display: block;
}

.bizo-required {
	color: var(--bizo-accent);
	font-weight: 700;
}

.bizo-fiche-vente-contact .bizo-fiche-booking-form input[type="text"],
.bizo-fiche-vente-contact .bizo-fiche-booking-form input[type="email"],
.bizo-fiche-vente-contact .bizo-fiche-booking-form input[type="tel"],
.bizo-fiche-vente-contact .bizo-fiche-booking-form input[type="date"],
.bizo-fiche-vente-contact .bizo-fiche-booking-form textarea {
	width: 100%;
	padding: 0.75rem 1rem;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	font-size: 0.9375rem;
	color: var(--bizo-primary);
	background: #fff;
	box-sizing: border-box;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.bizo-fiche-vente-contact .bizo-fiche-booking-form input:focus,
.bizo-fiche-vente-contact .bizo-fiche-booking-form textarea:focus {
	outline: none;
	border-color: var(--bizo-accent);
	box-shadow: 0 0 0 3px rgba(91, 164, 212, 0.15);
}

.bizo-fiche-vente-contact .bizo-fiche-booking-form textarea {
	resize: vertical;
	min-height: 100px;
}

.bizo-fiche-vente-contact .bizo-form-row-rgpd {
	margin-bottom: 1.25rem;
}

.bizo-fiche-vente-contact .bizo-btn-demande-visite {
	width: 100%;
	padding: 1rem 1.5rem;
	font-size: 1rem;
	font-weight: 700;
	color: #fff;
	background: linear-gradient(135deg, var(--bizo-accent) 0%, #4a9fd6 100%);
	border: none;
	border-radius: 12px;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(91, 164, 212, 0.35);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	margin: 0 0 1rem;
}

.bizo-fiche-vente-contact .bizo-btn-demande-visite:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 20px rgba(91, 164, 212, 0.4);
}

.bizo-fiche-vente-contact .bizo-btn-demande-visite:disabled {
	transform: none;
	opacity: 0.8;
	cursor: not-allowed;
}

.bizo-fiche-vente-contact .bizo-form-disclaimer {
	font-size: 0.8125rem;
	color: var(--bizo-text-muted);
	margin: 0;
	padding: 0;
	line-height: 1.4;
	text-align: center;
}

/* ========== Biens à vendre : bandeaux, infos complémentaires, design ========== */
.bizo-fiche-bien-vente {
	position: relative;
}
.bizo-fiche-bien-vente:has(.bizo-fiche-bandeau) .bizo-fiche-back-wrap {
	margin-top: 3.5rem;
}

.bizo-fiche-bandeau {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 10;
	padding: 0.75rem 1.5rem;
	font-size: 1rem;
	font-weight: 700;
	text-align: center;
	letter-spacing: 0.05em;
	color: #fff;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.bizo-fiche-bandeau-reserve {
	background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
}
.bizo-fiche-bandeau-vendu {
	background: linear-gradient(135deg, #64748b 0%, #475569 100%);
}

.bizo-fiche-complement {
	margin-bottom: 2rem;
}
.bizo-fiche-dl {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.5rem 1.5rem;
	align-items: center;
	margin: 0;
	font-size: 0.9375rem;
}
.bizo-fiche-dl dt {
	margin: 0;
	font-weight: 600;
	color: var(--bizo-primary);
}
.bizo-fiche-dl dd {
	margin: 0;
	color: var(--bizo-text-body);
}
.bizo-fiche-dl .bizo-dpe-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.25rem;
	padding: 0.35rem 0.6rem;
	font-size: 0.9375rem;
	font-weight: 700;
	color: #fff;
	border-radius: 6px;
}
.bizo-fiche-georisques {
	font-size: 0.875rem;
	color: var(--bizo-text-muted);
	margin: 0 0 2rem;
	padding: 0.75rem 0;
	border-top: 1px solid #e5e7eb;
}
.bizo-fiche-georisques a {
	color: var(--bizo-accent);
	text-decoration: underline;
}
.bizo-fiche-georisques a:hover {
	text-decoration: none;
}

/* Section Localisation + carte */
.bizo-fiche-localisation {
	margin-top: 2.5rem;
	padding-top: 2rem;
	border-top: 1px solid #e5e7eb;
}

.bizo-fiche-localisation .bizo-fiche-section-title {
	margin-bottom: 0.5rem;
}

.bizo-fiche-adresse {
	font-size: 0.9375rem;
	color: var(--bizo-text-muted);
	margin: 0 0 1rem;
	line-height: 1.5;
}

.bizo-fiche-map-wrap {
	position: relative;
	width: 100%;
	border-radius: var(--bizo-radius);
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
	border: 1px solid #e2e8f0;
}

.bizo-fiche-map {
	display: block;
	width: 100%;
	height: 320px;
	border: none;
}

@media (max-width: 640px) {
	.bizo-fiche-map {
		height: 260px;
	}
}

.bizo-fiche-vente-desactive .bizo-fiche-vente-desactive-msg {
	margin: 0;
	padding: 1.25rem;
	text-align: center;
	font-size: 0.9375rem;
	color: var(--bizo-text-muted);
	background: #f8fafc;
	border-radius: var(--bizo-radius);
	border: 1px solid #e2e8f0;
}

/* Page liste biens à vendre : design renforcé */
.bizo-immo-ventes-wrap {
	background: linear-gradient(180deg, #f8fafc 0%, #ffffff 120px);
	border-radius: 16px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
.bizo-immo-ventes-wrap .bizo-immo-search-form {
	background: #fff;
	border: 1px solid #e2e8f0;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
.bizo-immo-ventes-wrap .bizo-results-title {
	font-size: 2.25rem;
	font-weight: 800;
	letter-spacing: -0.03em;
}
.bizo-immo-ventes-wrap .bizo-bien-card-vente .bizo-bien-card-link {
	border: 1px solid #e5e7eb;
}
.bizo-immo-ventes-wrap .bizo-bien-card-vente .bizo-bien-card-link:hover {
	border-color: var(--bizo-accent);
	box-shadow: 0 12px 40px rgba(43, 48, 53, 0.12);
}
.bizo-immo-ventes-wrap .bizo-bien-prix-amount {
	font-size: 1.25rem;
	color: var(--bizo-primary);
}
.bizo-immo-ventes-wrap .bizo-bien-cta {
	background: var(--bizo-accent);
	color: #fff;
}
.bizo-immo-ventes-wrap .bizo-bien-cta:hover {
	background: #4a9fd6;
}

@media (max-width: 900px) {
	.bizo-fiche-main {
		grid-template-columns: 1fr;
	}
	.bizo-fiche-sidebar {
		position: static;
	}
	.bizo-fiche-galerie {
		grid-template-columns: 1fr;
	}
	.bizo-fiche-thumbs {
		flex-direction: row;
	}
	.bizo-fiche-thumb {
		min-height: 70px;
		flex: 1 1 0;
	}
}

/* Modal SPA (#/bien/slug) */
.bizo-modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 99999;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.bizo-modal.is-open {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	padding: 2rem 1rem;
}

.bizo-modal.is-loading .bizo-modal-inner {
	min-height: 200px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.bizo-modal-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(43, 48, 53, 0.5);
	cursor: pointer;
	z-index: 0;
}

.bizo-modal-content {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
	background: #fff;
	border-radius: var(--bizo-radius);
	box-shadow: var(--bizo-card-shadow-hover);
	padding: 2rem;
	animation: bizo-modal-in 0.25s ease;
}

@keyframes bizo-modal-in {
	from {
		opacity: 0;
		transform: translateY(-10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.bizo-modal-inner {
	position: relative;
}

.bizo-modal-close-wrap {
	margin: 0 0 1rem;
}

.bizo-modal-close-wrap .bizo-modal-close {
	display: inline-block;
	padding: 0.5rem 0;
	font-size: 0.95rem;
	color: var(--bizo-primary);
	text-decoration: none;
	font-weight: 600;
	transition: color var(--bizo-transition);
}

.bizo-modal-close-wrap .bizo-modal-close:hover {
	color: var(--bizo-accent);
}

.bizo-modal-error {
	color: #dc2626;
	padding: 2rem;
	text-align: center;
}

.bizo-modal .bizo-fiche-bien {
	max-width: none;
	margin: 0;
}

.bizo-modal .bizo-fiche-title {
	font-size: 1.75rem;
}

/* ========== Responsive ========== */

@media (max-width: 640px) {
	.bizo-equipements-grid {
		grid-template-columns: 1fr;
	}
	.bizo-immo-vacances-wrap {
		padding: 1.25rem 1rem;
	}
	.bizo-immo-search-form {
		padding: 1rem;
		margin-bottom: 2rem;
	}
	.bizo-results-title {
		font-size: 1.5rem;
	}
	.bizo-results-desc {
		font-size: 0.9375rem;
		margin-bottom: 1.5rem;
	}
	.bizo-biens-grid {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}
	.bizo-bien-content {
		padding: 1.25rem;
	}
	.bizo-bien-footer {
		flex-wrap: wrap;
		gap: 0.5rem;
	}
	.bizo-bien-cta {
		min-height: 44px;
		margin-top: 1rem;
	}
	.bizo-biens-list .bizo-bien-card-link {
		flex-direction: column;
	}
	.bizo-biens-list .bizo-bien-image-wrap {
		flex: none;
	}
	.bizo-biens-list .bizo-bien-image,
	.bizo-biens-list .bizo-bien-slide {
		min-height: 200px;
	}
	.bizo-biens-list .bizo-bien-image,
	.bizo-biens-list .bizo-bien-carousel {
		border-radius: var(--bizo-radius-image);
	}
	.bizo-biens-list .bizo-bien-content {
		padding: 1.25rem;
	}
	/* Modal SPA */
	.bizo-modal-content {
		max-width: 100%;
		margin: 0 0.5rem;
		padding: 1rem;
		border-radius: var(--bizo-radius);
	}
	.bizo-modal.is-open {
		padding: 1rem 0.5rem;
	}
	.bizo-modal .bizo-fiche-title {
		font-size: 1.375rem;
	}
	/* Fiche bien : galerie + sidebar */
	.bizo-fiche-booking {
		border-radius: 12px;
	}
	.bizo-booking-header-dark {
		padding: 0.875rem 1rem;
	}
	.bizo-fiche-booking-header .bizo-fiche-prix-big {
		font-size: 1.25rem;
	}
	.bizo-fiche-booking-title {
		margin: 0.75rem 1rem 0.5rem;
	}
	.bizo-fiche-calendar-widget {
		padding: 0 1rem 0.875rem;
	}
	.bizo-calendar-prev,
	.bizo-calendar-next {
		min-width: 44px;
		min-height: 44px;
	}
	.bizo-calendar-day {
		min-height: 40px;
		font-size: 0.8125rem;
	}
	.bizo-booking-prix-nuit-simple {
		padding: 0.875rem 1rem;
	}
	.bizo-btn-select-dates {
		width: calc(100% - 2rem);
		margin: 0 1rem 0.875rem;
		min-height: 44px;
		padding: 0.875rem 1rem;
	}
	.bizo-fiche-booking-recap {
		padding: 0.875rem 1rem;
	}
	.bizo-fiche-booking-form {
		padding: 0.875rem 1rem;
	}
	.bizo-fiche-booking-form .bizo-btn {
		min-height: 44px;
	}
	/* Fiche bien (page single, pas modal) */
	.bizo-fiche-bien {
		padding-left: 1rem;
		padding-right: 1rem;
		padding-bottom: 1.5rem;
	}
	.bizo-fiche-bien .bizo-fiche-title {
		font-size: 1.375rem;
	}
	.bizo-fiche-header {
		margin-bottom: 1.5rem;
	}
	.bizo-fiche-stats {
		flex-wrap: wrap;
		gap: 0.5rem;
	}
	/* Galerie fiche : miniatures en ligne, autoriser retour à la ligne si besoin */
	.bizo-fiche-thumbs {
		flex-wrap: wrap;
	}
	.bizo-fiche-thumb {
		min-width: 60px;
		min-height: 56px;
	}
	/* Pagination */
	.bizo-pagination {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 0.35rem;
		margin-top: 2rem;
	}
	.bizo-pagination a,
	.bizo-pagination span {
		padding: 0.45rem 0.75rem;
		margin: 0;
		font-size: 0.875rem;
	}
}

/* Très petit écran : footer carte 2 lignes si besoin */
@media (max-width: 480px) {
	.bizo-immo-vacances-wrap {
		padding: 1rem 0.75rem;
	}
	.bizo-results-title {
		font-size: 1.375rem;
	}
	.bizo-bien-footer {
		flex-direction: column;
		align-items: flex-start;
	}
	.bizo-bien-prix {
		width: 100%;
		text-align: left;
	}
	.bizo-modal-content {
		margin: 0 0.25rem;
		padding: 0.875rem;
	}
	.bizo-fiche-galerie {
		margin-bottom: 1.5rem;
	}
	.bizo-fiche-section-title {
		font-size: 1.125rem;
	}
	.bizo-fiche-thumb {
		min-width: 50px;
		min-height: 50px;
	}
	.bizo-pagination a,
	.bizo-pagination span {
		padding: 0.4rem 0.6rem;
		font-size: 0.8125rem;
	}
}
