/* Styles limités aux classes .dcg-* : personnalisables sans toucher au thème. */
.dcg-property {
	--dcg-gap: 1.5rem;
	--dcg-border: #ddd;
	--dcg-muted: #666;
	--dcg-error: #b3261e;
	--dcg-success: #1e6e34;
	box-sizing: border-box;
	margin: 0 auto;
	max-width: 1100px;
	padding: var(--dcg-gap) 1rem;
}

/* Liste des biens : valeurs reprises de new.diatimis.ch/nos-objets/.
   Couleurs et dimensions à ajuster ici. */
.dcg-properties {
	--dcg-accent: #c41e3a;
	/* Fond des libellés du filtre : il masque la bordure sous le texte. */
	--dcg-filter-label-bg: #fff;
	--dcg-card-height: 500px;
	--dcg-grid-gap: 15px;
	/* Marge de la section ; mettre 0 si le shortcode est déjà dans une section avec marges. */
	--dcg-list-padding: 120px 65px;
	box-sizing: border-box;
	color: #0e0b08;
	font-size: 16px;
	line-height: 1.45em;
	margin: 0 auto;
	max-width: none;
	padding: var(--dcg-list-padding);
}

.dcg-properties *,
.dcg-properties *::before,
.dcg-properties *::after {
	box-sizing: border-box;
}

/* Grille : 3 colonnes ; dans chaque groupe de 7 cartes, la 3e et la 5e
   occupent deux rangées (7 cartes = 3 × 3 cases). */
.dcg-properties__grid {
	display: grid;
	gap: var(--dcg-grid-gap);
	grid-auto-flow: row dense;
	grid-auto-rows: var(--dcg-card-height);
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dcg-card:nth-child(7n + 3),
.dcg-card:nth-child(7n + 5) {
	grid-row: span 2;
}

.dcg-card {
	background: #1a1414;
	overflow: hidden;
	position: relative;
}

.dcg-card__link {
	color: #fff;
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: space-between;
	padding: 30px;
	position: relative;
	text-decoration: none;
}

.dcg-card__link:hover,
.dcg-card__link:focus {
	color: #fff;
}

.dcg-card__link:focus-visible {
	outline: 3px solid var(--dcg-accent);
	outline-offset: -3px;
}

.dcg-card .dcg-card__image {
	height: 100%;
	inset: 0;
	max-width: none;
	object-fit: cover;
	object-position: center;
	position: absolute;
	transform: scale(1);
	transition: transform .5s ease;
	width: 100%;
	z-index: 0;
}

.dcg-card:hover .dcg-card__image {
	transform: scale(1.05);
}

/* Dégradé noir du bas vers le haut. */
.dcg-card__link::before {
	background: linear-gradient(0deg, #000 20%, rgba(0, 0, 0, 0) 100%);
	content: "";
	inset: 0;
	opacity: .9;
	position: absolute;
	z-index: 1;
}

.dcg-card--no-image .dcg-card__link::before {
	opacity: .4;
}

.dcg-card__badge,
.dcg-card__body {
	position: relative;
	z-index: 2;
}

.dcg-card__badge {
	align-self: flex-start;
	background: var(--dcg-accent);
	color: #fff;
	display: block;
	font-weight: 300;
	padding: 10px 20px;
	width: fit-content;
}

.dcg-card__body {
	display: flex;
	flex-direction: column;
	margin-top: auto;
	row-gap: 15px;
}

.dcg-card__title {
	display: block;
	font-size: 34px;
	font-weight: 200;
	line-height: 1em;
	margin-bottom: 21px;
	overflow-wrap: anywhere;
}

.dcg-card__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
}

.dcg-card__fact {
	align-items: center;
	column-gap: 8px;
	display: inline-flex;
}

.dcg-card__fact .dcg-icon {
	display: block;
	flex: none;
	height: 30px;
	width: auto;
	/* Rouge du site, appliqué aux icônes noires. */
	filter: invert(21%) sepia(68%) saturate(3254%) hue-rotate(334deg) brightness(81%) contrast(97%);
}

.dcg-card__footer {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-top: 31px;
}

.dcg-card__price {
	font-size: 28px;
	font-weight: 600;
}

.dcg-card__footer .dcg-icon--arrow {
	display: block;
	filter: brightness(0) invert(1);
	flex: none;
	height: 36px;
	width: auto;
}

/* Pagination : carrés gris, page courante rouge, alignée à droite. */
.dcg-pagination {
	align-items: center;
	display: flex;
	gap: 6px;
	justify-content: flex-end;
	margin-top: 2rem;
}

.dcg-pagination .page-numbers {
	align-items: center;
	background-color: #e5e5e5;
	color: #333;
	display: inline-flex;
	font-size: 14px;
	font-weight: 700;
	height: 40px;
	justify-content: center;
	text-decoration: none;
	transition: all .2s ease;
	width: 60px;
}

.dcg-pagination a.page-numbers:hover {
	background-color: #d0d0d0;
}

.dcg-pagination .page-numbers.current {
	background-color: #c81d32;
	color: #fff;
}

.dcg-pagination .page-numbers.dots {
	background: none;
	width: auto;
}

.dcg-properties__empty {
	margin: 0;
}

.dcg-property__address {
	color: var(--dcg-muted);
}

@media (max-width: 1366px) {
	.dcg-card__link {
		padding: 30px 25px;
	}
}

@media (max-width: 1024px) {
	.dcg-properties {
		--dcg-list-padding: 90px 45px;
	}

	.dcg-properties__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.dcg-card:nth-child(7n + 3),
	.dcg-card:nth-child(7n + 5) {
		grid-row: span 1;
	}

	.dcg-card__link {
		padding: 25px;
	}

	.dcg-card__title {
		font-size: 26px;
	}

	.dcg-card__price {
		font-size: 24px;
	}

	.dcg-card__facts {
		gap: 10px;
	}
}

@media (max-width: 767px) {
	.dcg-properties {
		--dcg-list-padding: 80px 30px;
	}

	.dcg-properties__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Derniers biens [diatimis_recent_properties] : une grande carte à gauche
   sur deux rangées, deux cartes empilées à droite. */
.dcg-recent {
	--dcg-list-padding: 0;
	--dcg-recent-row: 340px;
	--dcg-recent-gap: 4px;
}

.dcg-recent__grid {
	display: grid;
	gap: var(--dcg-recent-gap);
	grid-auto-rows: var(--dcg-recent-row);
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
}

/* Annule la mosaïque de la liste (3e et 5e cartes sur deux rangées). */
.dcg-recent .dcg-card:nth-child(n) {
	grid-row: span 1;
}

.dcg-recent .dcg-card:first-child {
	grid-row: span 2;
}

.dcg-recent .dcg-card__badge {
	font-size: 12px;
	letter-spacing: .05em;
	padding: 8px 16px;
	text-transform: uppercase;
}

.dcg-recent .dcg-card__body {
	row-gap: 12px;
}

.dcg-recent .dcg-card__title {
	font-size: 26px;
	font-weight: 400;
	margin-bottom: 0;
}

.dcg-recent .dcg-card:first-child .dcg-card__title {
	font-size: 34px;
}

.dcg-recent__location {
	font-size: 15px;
	font-weight: 300;
	opacity: .85;
}

.dcg-recent .dcg-card__fact {
	font-size: 14px;
}

.dcg-recent .dcg-card__fact .dcg-icon {
	height: 22px;
}

.dcg-recent .dcg-card__price {
	font-size: 22px;
}

.dcg-recent .dcg-card:first-child .dcg-card__price {
	font-size: 28px;
}

@media (max-width: 1024px) {
	.dcg-recent {
		--dcg-recent-row: 300px;
	}

	.dcg-recent .dcg-card:first-child .dcg-card__title {
		font-size: 28px;
	}
}

@media (max-width: 767px) {
	.dcg-recent {
		--dcg-recent-row: 380px;
	}

	.dcg-recent__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.dcg-recent .dcg-card:first-child {
		grid-row: span 1;
	}

	.dcg-recent .dcg-card__title,
	.dcg-recent .dcg-card:first-child .dcg-card__title {
		font-size: 24px;
	}
}

/* Formulaire de demande (fiche d'un bien). */
.dcg-inquiry__trap {
	height: 1px;
	left: -9999px;
	overflow: hidden;
	position: absolute;
	width: 1px;
}

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

.dcg-inquiry__status.is-error {
	color: var(--dcg-error);
}

.dcg-inquiry__status.is-success {
	color: var(--dcg-success);
}

/* Fiche d'un bien : valeurs reprises du site new.diatimis.ch (Hello Elementor,
   conteneur 1284 px, Montserrat). Couleurs et dimensions à ajuster ici. */
.dcg-single {
	--dcg-accent: #c41e3a;
	--dcg-dark: #0e0b08;
	--dcg-page-bg: #f9f9f9;
	--dcg-text: #0e0b08;
	--dcg-link: #c36;
	--dcg-line: hsla(0, 0%, 50%, .502);
	--dcg-container: 1284px;
	--dcg-gutter: 65px;
	--dcg-gallery-height: 700px;
	--dcg-section-space: 120px;
	/* Hauteur d'un en-tête de thème transparent posé sur le bandeau (ex. 91.2px). */
	--dcg-header-overlap: 0px;
	--dcg-error: #b3261e;
	--dcg-success: #1e6e34;
	background: var(--dcg-page-bg);
	color: var(--dcg-text);
	font-size: 16px;
	line-height: 1.45em;
}

.dcg-single *,
.dcg-single *::before,
.dcg-single *::after {
	box-sizing: border-box;
}

.dcg-single p {
	margin: 0 0 .9rem;
}

/* Titres de la fiche : les règles sont préfixées par .dcg-single pour passer
   devant les titres globaux d'Elementor (.elementor-kit-N h1…h6). */
body .dcg-single h1,
body .dcg-single h2,
body .dcg-single h3,
body .dcg-single h4,
body .dcg-single h5,
body .dcg-single h6 {
	font-family: inherit;
	letter-spacing: normal;
	text-transform: none;
}

/* En-tête Elementor : fond noir sur la fiche d'un bien uniquement. */
body.single-property .elementor-location-header {
	background-color: #000;
}

/* Contenu de la fiche au niveau 0 : les z-index internes (flèches, listes)
   restent sous l'en-tête et ses menus déroulants. */
.dcg-single {
	position: relative;
	z-index: 0;
}

/* Bandeau sombre : hauteur donnée par les marges intérieures,
   identiques en haut et en bas. */
.dcg-hero {
	--dcg-hero-padding: 150px;
	align-items: center;
	background: var(--dcg-dark);
	color: #fff;
	display: flex;
	flex-direction: column;
	gap: 20px;
	justify-content: center;
	margin-top: calc(-1 * var(--dcg-header-overlap));
	padding: calc(var(--dcg-header-overlap) + var(--dcg-hero-padding)) var(--dcg-gutter) var(--dcg-hero-padding);
	text-align: center;
}

.dcg-single .dcg-hero__title {
	color: inherit;
	font-size: 80px;
	font-weight: 100;
	line-height: 1;
	margin: 0;
	max-width: 90%;
}

.dcg-hero__breadcrumb {
	color: #fff;
	max-width: 50%;
}

.dcg-hero__breadcrumb a {
	color: var(--dcg-accent);
	text-decoration: none;
}

.dcg-hero__breadcrumb a:hover {
	text-decoration: underline;
}

/* Galerie : grande photo (50 %) puis colonnes de deux (25 %), défilement horizontal. */
.dcg-gallery {
	position: relative;
}

.dcg-gallery__track {
	display: flex;
	gap: 0;
	height: var(--dcg-gallery-height);
	overflow-x: auto;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.dcg-gallery__track::-webkit-scrollbar {
	display: none;
}

.dcg-gallery__col {
	display: grid;
	flex: 0 0 25%;
	grid-template-rows: 1fr 1fr;
	scroll-snap-align: start;
}

.dcg-gallery__col--main {
	flex-basis: 50%;
	grid-template-rows: 1fr;
}

.dcg-gallery--single .dcg-gallery__col--main {
	flex-basis: 100%;
}

.dcg-gallery__col .dcg-gallery__item:only-child {
	grid-row: span 2;
}

/* Les boutons de la fiche sont préfixés par .dcg-single : plus prioritaires
   que les styles globaux des boutons d'Elementor (.elementor-kit-N button). */
.dcg-single .dcg-gallery__item,
.dcg-single .dcg-gallery__item:hover,
.dcg-single .dcg-gallery__item:focus,
.dcg-single .dcg-gallery__item:active {
	background: #222;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	cursor: pointer;
	display: block;
	height: 100%;
	margin: 0;
	min-height: 0;
	overflow: hidden;
	padding: 0;
	transition: none;
	width: 100%;
}

.dcg-gallery__item img {
	display: block;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center;
	width: 100%;
}

.dcg-single .dcg-gallery__nav,
.dcg-single .dcg-gallery__nav:hover,
.dcg-single .dcg-gallery__nav:focus,
.dcg-single .dcg-gallery__nav:active {
	align-items: center;
	background: #fff;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: var(--dcg-text);
	cursor: pointer;
	display: flex;
	height: auto;
	justify-content: center;
	margin: 0;
	min-height: 0;
	padding: 30px 15px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: auto;
	z-index: 2;
}

.dcg-single .dcg-gallery__nav[hidden] {
	display: none;
}

.dcg-gallery__nav .dcg-chevron {
	display: block;
	height: 30px;
	width: 18px;
}

.dcg-gallery__nav--prev {
	left: 0;
}

.dcg-gallery__nav--next {
	right: 0;
}

.dcg-gallery__nav--next .dcg-chevron,
.dcg-pager__link--next .dcg-chevron {
	transform: scaleX(-1);
}

/* Visionneuse. */
.dcg-lightbox {
	background: transparent;
	border: 0;
	height: 100%;
	max-height: none;
	max-width: none;
	padding: 0;
	width: 100%;
}

.dcg-lightbox::backdrop {
	background: rgba(0, 0, 0, .9);
}

.dcg-lightbox[open] {
	align-items: center;
	display: flex;
	justify-content: center;
}

.dcg-lightbox__image {
	max-height: 90vh;
	max-width: 85vw;
}

.dcg-single .dcg-lightbox button,
.dcg-single .dcg-lightbox button:hover,
.dcg-single .dcg-lightbox button:focus,
.dcg-single .dcg-lightbox button:active {
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: #fff;
	cursor: pointer;
	font-family: inherit;
	font-size: 3rem;
	font-weight: 400;
	height: auto;
	line-height: 1;
	margin: 0;
	padding: 1rem;
	position: absolute;
	text-transform: none;
	width: auto;
}

.dcg-lightbox__close {
	right: 0;
	top: 0;
}

.dcg-lightbox__prev {
	left: 0;
}

.dcg-lightbox__next {
	right: 0;
}

/* Contenu 70 % et sommaire 30 %, 50 px d'écart, conteneur de 1284 px. */
.dcg-layout {
	align-items: flex-start;
	display: flex;
	gap: 50px;
	margin: 0 auto;
	max-width: calc(var(--dcg-container) + 2 * var(--dcg-gutter));
	padding: var(--dcg-section-space) var(--dcg-gutter);
}

.dcg-single .dcg-property {
	display: flex;
	flex-direction: column;
	margin: 0;
	max-width: none;
	padding: 0;
	row-gap: 35px;
	width: 70%;
}

.dcg-property section,
.dcg-property__head {
	scroll-margin-top: 140px;
}

/* Présentation. */
.dcg-property__head {
	display: grid;
	margin-bottom: -11px;
	padding-top: 15px;
}

/* .dcg-single : plus prioritaire que les titres globaux d'Elementor (.elementor-kit-N h2). */
.dcg-single .dcg-property__title {
	color: var(--dcg-text);
	font-size: 34px;
	font-weight: 500;
	line-height: 1em;
	margin: 0 0 10px;
	padding-right: 35px;
}

.dcg-single .dcg-property__address {
	color: var(--dcg-text);
}

.dcg-single .dcg-property__kind {
	color: var(--dcg-accent);
	font-weight: 600;
	margin-bottom: 0;
}

.dcg-property__pricing {
	align-items: flex-end;
	display: flex;
	flex-direction: column;
	row-gap: 10px;
}

.dcg-single .dcg-property__pricing p {
	margin: 0;
}

.dcg-property__price {
	font-size: 28px;
	font-weight: 600;
	line-height: 1.2;
}

.dcg-property__status {
	color: var(--dcg-accent);
	font-weight: 500;
	text-transform: uppercase;
}

.dcg-single .dcg-section-title {
	color: var(--dcg-accent);
	font-size: 40px;
	font-weight: 300;
	line-height: 1.2;
	margin: 0 0 20px;
}

/* Tableaux (style du thème Hello). */
.dcg-table {
	background: transparent;
	border-collapse: collapse;
	border-spacing: 0;
	font-size: .9em;
	margin: 0 0 15px;
	width: 100%;
}

.dcg-table th,
.dcg-table td {
	border: 1px solid var(--dcg-line);
	line-height: 1.5;
	padding: 15px;
	text-align: left;
	vertical-align: top;
}

.dcg-table th {
	font-weight: 700;
	width: 35%;
}

.dcg-table td {
	font-weight: 400;
	overflow-wrap: anywhere;
}

.dcg-table tr:nth-child(odd) > th,
.dcg-table tr:nth-child(odd) > td {
	background-color: hsla(0, 0%, 50%, .071);
}

.dcg-table tr:hover > th,
.dcg-table tr:hover > td {
	background-color: hsla(0, 0%, 50%, .102);
}

/* Description. */
.dcg-richtext > :last-child {
	margin-bottom: 0;
}

.dcg-single .dcg-richtext h1,
.dcg-single .dcg-richtext h2,
.dcg-single .dcg-richtext h3 {
	color: var(--dcg-text);
	font-size: 26px;
	font-weight: 500;
	line-height: 1.2;
	margin: .5rem 0 1rem;
}

.dcg-single .dcg-richtext h4,
.dcg-single .dcg-richtext h5,
.dcg-single .dcg-richtext h6 {
	color: var(--dcg-text);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.2;
	margin: .5rem 0 1rem;
}

.dcg-richtext a,
.dcg-checklist a {
	color: var(--dcg-link);
	text-decoration: none;
}

.dcg-richtext a:hover,
.dcg-checklist a:hover {
	text-decoration: underline;
}

/* Listes à coches rouges. */
.dcg-richtext ul,
.dcg-checklist {
	list-style: none;
	margin: 0 0 15px;
	padding: 0;
}

.dcg-richtext li,
.dcg-checklist li {
	padding-left: 28px;
	position: relative;
}

.dcg-richtext li::before,
.dcg-checklist li::before {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 15'%3E%3Cpath d='M1 8.5 6 13.5 17 .8' fill='none' stroke='%23c41e3a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat left center / contain;
	content: "";
	height: 15px;
	left: 0;
	position: absolute;
	top: 2px;
	width: 20px;
}

.dcg-map {
	border: 0;
	display: block;
	height: 500px;
	width: 100%;
}

/* Sommaire rouge, collant au défilement (80 px sous le haut de l'écran). */
.dcg-summary {
	background: var(--dcg-accent);
	color: #fff;
	display: flex;
	flex-direction: column;
	padding: 35px 30px;
	position: sticky;
	row-gap: 25px;
	top: 150px;
	width: 30%;
}

.dcg-single .dcg-summary__title {
	color: #fff;
	font-size: 40px;
	font-weight: 300;
	line-height: 1.2;
	margin: 0;
}

.dcg-summary__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dcg-summary__list li {
	margin: 0 0 10px;
	padding: 0 0 10px;
	position: relative;
}

.dcg-summary__list li:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
}

.dcg-summary__list li:not(:last-child)::after {
	background: #fff;
	bottom: 0;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	width: 100%;
}

.dcg-summary__list a {
	color: #fff;
	text-decoration: none;
}

.dcg-summary__list a:hover,
.dcg-summary__list a:focus-visible {
	text-decoration: underline;
}

/* Formulaire de contact : style « material » du site. */
.dcg-single .dcg-inquiry {
	margin: 0;
	max-width: none;
}

.dcg-inquiry__gender {
	align-items: center;
	display: flex;
	margin: 0 0 47px !important;
}

.dcg-gender {
	align-items: center;
	cursor: pointer;
	display: inline-flex;
	gap: 10px;
}

.dcg-gender input {
	height: 1px;
	opacity: 0;
	position: absolute;
	width: 1px;
}

/* Deux demi-pastilles qui forment une pilule. */
.dcg-gender__bullet {
	align-items: center;
	background: #efefef;
	border: 1px solid var(--dcg-accent);
	display: inline-flex;
	height: 20px;
	justify-content: center;
	width: 20px;
}

.dcg-gender--female .dcg-gender__bullet {
	border-radius: 999px 0 0 999px;
	border-right: 0;
}

.dcg-gender--male .dcg-gender__bullet {
	border-left: 0;
	border-radius: 0 999px 999px 0;
}

.dcg-gender input:checked + .dcg-gender__bullet::before {
	background: var(--dcg-accent);
	border-radius: 50%;
	content: "";
	height: 12px;
	width: 12px;
}

.dcg-gender input:focus-visible + .dcg-gender__bullet {
	outline: 2px solid var(--dcg-accent);
	outline-offset: 2px;
}

.dcg-inquiry__grid {
	display: grid;
	gap: 50px 30px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dcg-single .dcg-inquiry__grid p {
	margin: 0;
}

.dcg-inquiry__wide {
	grid-column: 1 / -1;
	margin-top: -20px !important;
}

.dcg-single .dcg-inquiry input:not([type="hidden"]):not([type="radio"]),
.dcg-single .dcg-inquiry select {
	background-color: transparent;
	border: 0;
	border-bottom: 1px solid #777;
	border-radius: 0;
	box-shadow: none;
	color: var(--dcg-text);
	display: block;
	font: inherit;
	height: auto;
	padding: 9px 0;
	width: 100%;
}

.dcg-single .dcg-inquiry select {
	-webkit-appearance: none;
	appearance: none;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='8'%3E%3Cpath d='M1.5 1.5l5 5 5-5' fill='none' stroke='%230e0b08' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 6px center;
	cursor: pointer;
	padding-right: 28px;
}

.dcg-inquiry__field--select {
	align-self: end;
	position: relative;
}

/* Le libellé « Pays » se place au-dessus : la ligne reste alignée sur « Localité ». */
.dcg-inquiry__field--select label {
	bottom: 100%;
	left: 0;
	margin-bottom: 6px;
	position: absolute;
}

.dcg-single .dcg-inquiry textarea {
	background: #fff;
	border: 1px solid #777;
	border-radius: 0;
	color: var(--dcg-text);
	display: block;
	font: inherit;
	height: 140px;
	min-height: 100px;
	padding: 25px 10px 10px;
	resize: vertical;
	width: 100%;
}

.dcg-single .dcg-inquiry ::placeholder {
	color: var(--dcg-text);
	opacity: 1;
}

.dcg-single .dcg-inquiry input:focus,
.dcg-single .dcg-inquiry select:focus,
.dcg-single .dcg-inquiry textarea:focus {
	border-color: var(--dcg-accent);
	outline: none;
}

.dcg-single .dcg-inquiry button[type="submit"],
.dcg-single .dcg-inquiry button[type="submit"]:focus,
.dcg-single .dcg-inquiry button[type="submit"]:active {
	background: var(--dcg-accent);
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: var(--dcg-page-bg);
	cursor: pointer;
	font-family: inherit;
	font-size: 14px;
	font-style: normal;
	font-weight: 700;
	height: auto;
	letter-spacing: normal;
	line-height: 1;
	margin: 30px 0 0;
	padding: 13px 14px;
	text-decoration: none;
	text-transform: uppercase;
	width: auto;
}

.dcg-single .dcg-inquiry button[type="submit"]:hover {
	background: var(--dcg-accent);
	color: var(--dcg-page-bg);
	filter: brightness(.88);
}

.dcg-single .dcg-inquiry button[type="submit"]:disabled {
	cursor: wait;
	opacity: .6;
}

/* Liste « Pays » personnalisée (JS) : survol des options en rouge. */
.dcg-single .dcg-inquiry .is-enhanced select {
	clip: rect(0, 0, 0, 0);
	height: 1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.dcg-inquiry .dcg-select__button {
	align-items: center;
	background: transparent;
	border: 0;
	border-bottom: 1px solid #777;
	border-radius: 0;
	box-shadow: none;
	color: var(--dcg-text);
	cursor: pointer;
	display: flex;
	font-family: inherit;
	font-size: inherit;
	font-style: normal;
	font-weight: inherit;
	height: auto;
	justify-content: space-between;
	letter-spacing: normal;
	line-height: inherit;
	margin: 0;
	min-height: 0;
	padding: 9px 6px 9px 0;
	text-align: left;
	text-decoration: none;
	text-shadow: none;
	text-transform: none;
	transition: none;
	width: 100%;
}

.dcg-select__button::after {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='8'%3E%3Cpath d='M1.5 1.5l5 5 5-5' fill='none' stroke='%230e0b08' stroke-width='2'/%3E%3C/svg%3E") no-repeat center;
	content: "";
	flex: none;
	height: 8px;
	margin-left: 10px;
	transition: transform .2s ease;
	width: 13px;
}

.is-open > .dcg-select__button::after {
	transform: rotate(180deg);
}

.dcg-inquiry .dcg-select__button:hover,
.dcg-inquiry .dcg-select__button:focus,
.dcg-inquiry .dcg-select__button:active {
	background: transparent;
	border: 0;
	border-bottom: 1px solid #777;
	box-shadow: none;
	color: var(--dcg-text);
}

.dcg-inquiry .dcg-select__button:focus-visible,
.dcg-inquiry .is-open > .dcg-select__button {
	border-bottom-color: var(--dcg-accent);
	outline: none;
}

.dcg-select__list {
	background: #fff;
	border: 1px solid #e2e2e2;
	box-shadow: 0 4px 12px rgba(0, 0, 0, .08);
	left: 0;
	list-style: none;
	margin: 0;
	max-height: 260px;
	outline: none;
	overflow-y: auto;
	padding: 0;
	position: absolute;
	right: 0;
	top: calc(100% + 1px);
	z-index: 100;
}

.dcg-select__list[hidden] {
	display: none;
}

.dcg-select__option {
	color: #333;
	cursor: pointer;
	margin: 0;
	padding: 12px 20px;
	transition: background .15s ease;
}

.dcg-select__option[aria-selected="true"] {
	color: var(--dcg-accent);
	font-weight: 600;
}

/* Survol (souris) et option active (clavier) : rouge du site. */
.dcg-select__option.is-active,
.dcg-select__option:hover {
	background-color: var(--dcg-accent);
	color: #fff;
}

/* Navigation vers les biens voisins. */
.dcg-pager {
	align-items: center;
	display: flex;
	gap: 2rem;
	justify-content: space-between;
	margin: 0 auto;
	max-width: calc(var(--dcg-container) + 2 * var(--dcg-gutter));
	padding: 0 var(--dcg-gutter) var(--dcg-section-space);
}

.dcg-pager__link {
	align-items: center;
	color: #000;
	display: inline-flex;
	font-size: 20px;
	font-weight: 500;
	gap: 12px;
	line-height: 1.2;
	text-decoration: none;
}

.dcg-pager__link:hover {
	color: var(--dcg-accent);
}

.dcg-pager__link--next {
	margin-left: auto;
	text-align: right;
}

.dcg-pager .dcg-chevron {
	color: var(--dcg-text);
	flex: none;
	height: 16px;
	width: 10px;
}

/* Paliers du site : 1366, 1024 et 767 px. */
@media (max-width: 1366px) {
	.dcg-single {
		--dcg-container: 1080px;
		--dcg-gallery-height: 500px;
		--dcg-section-space: 100px;
	}

	.dcg-single .dcg-hero__title {
		font-size: 65px;
		max-width: 65%;
	}

	.dcg-hero__breadcrumb {
		max-width: 60%;
	}

	.dcg-pager__link {
		font-size: 18px;
	}
}

@media (max-width: 1024px) {
	.dcg-single {
		--dcg-container: 1024px;
		--dcg-gutter: 45px;
		--dcg-section-space: 90px;
	}

	.dcg-single .dcg-hero__title {
		font-size: 55px;
	}

	/* Une photo à la fois, flèches rondes. */
	.dcg-gallery__track {
		height: auto;
	}

	.dcg-gallery__col {
		display: contents;
	}

	.dcg-single .dcg-gallery__item {
		aspect-ratio: 4 / 3;
		flex: 0 0 100%;
		height: auto;
		scroll-snap-align: start;
	}

	.dcg-single .dcg-gallery__nav,
	.dcg-single .dcg-gallery__nav:hover,
	.dcg-single .dcg-gallery__nav:focus,
	.dcg-single .dcg-gallery__nav:active {
		background: rgba(0, 0, 0, .65);
		border-radius: 50%;
		color: #fff;
		height: 42px;
		padding: 0;
		width: 42px;
	}

	.dcg-gallery__nav .dcg-chevron {
		height: 18px;
		width: 11px;
	}

	.dcg-gallery__nav--prev {
		left: 15px;
	}

	.dcg-gallery__nav--next {
		right: 15px;
	}

	.dcg-layout {
		flex-direction: column;
		gap: 40px;
	}

	.dcg-single .dcg-property,
	.dcg-summary {
		width: 100%;
	}

	.dcg-summary {
		order: -1;
		position: static;
	}

	.dcg-single .dcg-section-title,
	.dcg-single .dcg-summary__title {
		font-size: 34px;
		line-height: 1em;
	}

	.dcg-single .dcg-property__title {
		font-weight: 400;
		padding: 0;
	}
}

@media (max-width: 767px) {
	.dcg-single {
		--dcg-gutter: 30px;
		--dcg-section-space: 80px;
	}

	.dcg-hero {
		--dcg-hero-padding: 80px;
	}

	.dcg-single .dcg-hero__title {
		font-size: 45px;
		max-width: 100%;
	}

	.dcg-hero__breadcrumb {
		max-width: 100%;
	}

	.dcg-property__pricing {
		align-items: flex-start;
		margin-top: 1rem;
	}

	.dcg-map {
		height: 380px;
	}

	.dcg-inquiry__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.dcg-pager {
		align-items: flex-start;
		flex-direction: column;
	}

	.dcg-pager__link--next {
		margin-left: 0;
	}
}

/* Filtre de recherche : 65 % de la largeur, aligné à droite (valeurs du site). */
.dcg-filter {
	align-items: center;
	display: flex;
	/* Une seule ligne : les champs se partagent la place, le bouton garde sa taille. */
	flex-wrap: nowrap;
	gap: 15px;
	justify-content: space-between;
	margin: 0 0 35px auto;
	width: 65%;
}

.dcg-filter__field {
	border: 1px solid #e2e2e2;
	cursor: pointer;
	flex: 1 1 0;
	min-width: 0;
	padding: 15px 25px;
	position: relative;
	user-select: none;
}

.dcg-filter__label {
	background: var(--dcg-filter-label-bg, #fff);
	display: block;
	font-weight: 600;
	left: 10px;
	line-height: 1.45em;
	padding: 0 15px;
	position: absolute;
	top: -13px;
	white-space: nowrap;
}

/* <select> natif : repli sans JavaScript. */
.dcg-filter .dcg-filter__select {
	box-shadow: none;
	height: auto;
	min-height: 0;
	-webkit-appearance: none;
	appearance: none;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='5'%3E%3Cpath d='M0 0h10L5 5z' fill='%23666'/%3E%3C/svg%3E") no-repeat right center;
	border: 0;
	border-radius: 0;
	color: inherit;
	cursor: pointer;
	display: block;
	font: inherit;
	line-height: 1.45em;
	margin: 0;
	padding: 0 20px 0 0;
	width: 100%;
}

.dcg-filter__select:focus-visible {
	outline: 2px solid var(--dcg-accent);
	outline-offset: 4px;
}

.dcg-filter .dcg-filter__submit {
	align-self: stretch;
	background: var(--dcg-accent);
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: #fff;
	cursor: pointer;
	flex: none;
	font-family: inherit;
	font-size: 14px;
	font-style: normal;
	font-weight: 700;
	height: auto;
	letter-spacing: .08em;
	line-height: 1.2;
	margin: 0;
	padding: 18px 36px;
	text-decoration: none;
	text-shadow: none;
	text-transform: uppercase;
	transition: background-color .2s ease;
	white-space: nowrap;
	width: auto;
}

.dcg-filter .dcg-filter__submit:hover,
.dcg-filter .dcg-filter__submit:focus,
.dcg-filter .dcg-filter__submit:active {
	background-color: #a81527;
	border: 0;
	color: #fff;
}

/* Liste personnalisée (JS) : permet de colorer le survol des options. */
.dcg-filter .dcg-filter__field.is-enhanced .dcg-filter__select {
	clip: rect(0, 0, 0, 0);
	height: 1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

/* Préfixe .dcg-filter : plus prioritaire que les styles globaux des
   boutons d'Elementor (.elementor-kit-N button, .elementor-kit-N button:hover). */
.dcg-filter .dcg-filter__button {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: inherit;
	cursor: pointer;
	display: flex;
	font-family: inherit;
	font-size: inherit;
	font-style: normal;
	font-weight: inherit;
	height: auto;
	justify-content: space-between;
	letter-spacing: normal;
	line-height: 1.45em;
	margin: 0;
	min-height: 0;
	padding: 0;
	text-align: left;
	text-decoration: none;
	text-shadow: none;
	text-transform: none;
	transition: none;
	width: 100%;
	word-spacing: normal;
}

.dcg-filter__button::after {
	border-left: 5px solid transparent;
	border-right: 5px solid transparent;
	border-top: 5px solid #666;
	content: "";
	flex: none;
	margin-left: 10px;
	transition: transform .2s ease;
}

.dcg-filter__field.is-open .dcg-filter__button::after {
	transform: rotate(180deg);
}

.dcg-filter .dcg-filter__button:hover,
.dcg-filter .dcg-filter__button:focus,
.dcg-filter .dcg-filter__button:active {
	background: transparent;
	border: 0;
	box-shadow: none;
	color: inherit;
}

.dcg-filter .dcg-filter__button:focus-visible {
	outline: 2px solid var(--dcg-accent);
	outline-offset: 4px;
}

/* Toute la case ouvre la liste, comme sur le site. */
.dcg-filter__field.is-enhanced .dcg-filter__button::before {
	content: "";
	inset: 0;
	position: absolute;
}

.dcg-filter__list {
	background: #fff;
	border: 1px solid #e2e2e2;
	border-top: none;
	box-shadow: 0 4px 12px rgba(0, 0, 0, .08);
	left: -1px;
	list-style: none;
	margin: 0;
	max-height: 220px;
	outline: none;
	overflow-y: auto;
	padding: 0;
	position: absolute;
	right: -1px;
	top: calc(100% + 1px);
	z-index: 100;
}

.dcg-filter__list[hidden] {
	display: none;
}

.dcg-filter__option {
	color: #333;
	cursor: pointer;
	margin: 0;
	padding: 15px 25px;
	transition: background .15s ease;
}

.dcg-filter__option[aria-selected="true"] {
	background-color: var(--dcg-accent);
	color: #fff;
	font-weight: 600;
}

/* Survol (souris) et option active (clavier) : couleur du site. */
.dcg-filter__option.is-active,
.dcg-filter__option:hover {
	background-color: var(--dcg-accent);
	color: #fff;
}

@media (max-width: 1366px) {
	.dcg-filter {
		width: 100%;
	}
}

@media (max-width: 768px) {
	.dcg-filter {
		align-items: stretch;
		flex-direction: column;
		gap: 30px;
	}

	.dcg-filter__field {
		flex: none;
		min-width: 0;
	}

	.dcg-filter .dcg-filter__submit {
		width: 100%;
	}
}
