/**
 * LUXIMMO vitrine — PAGE CONTACT
 * Chargé via theme.addCustomCSS sur la page concernée.
 */

/* ========== PAGE CONTACT ========== */

.luximmo-contact-page > section > .container,
.luximmo-contact-page > section > .container-fluid {
	width: 100%;
	max-width: none;
	padding-left: clamp(16px, 6vw, 100px) !important;
	padding-right: clamp(16px, 6vw, 100px) !important;
}

/* --- Bannière contact (réf. luximmo.pro ~275px + fond sous header) --- */
/* --- Typographie contact (réf. luximmo.pro — Montserrat 25.2px titres, 14.4px corps) --- */
.luximmo-contact-page {
	--luximmo-contact-hero-band: 17.1875rem; /* 275px */
	--luximmo-contact-hero-header-pull: 9.5rem; /* 152px — fond remonté sous le header */
	--lux-contact-heading-size: 1.575rem; /* 25.2px */
	--lux-contact-body-size: 0.9rem; /* 14.4px */
	--lux-contact-teal: #1d4b51;
	--lux-contact-teal-alt: #1d4851;
	--lux-contact-label: rgba(0, 0, 0, 0.698); /* #000000B2 */
}
.luximmo-contact-page .luximmo-contact-form-block,
.luximmo-contact-page .luximmo-contact-form,
.luximmo-contact-page .luximmo-contact-aside {
	font-family: "Montserrat", Arial, sans-serif;
}
.luximmo-contact-page .luximmo-contact-hero {
	position: relative;
	height: var(--luximmo-contact-hero-band);
	min-height: var(--luximmo-contact-hero-band);
	max-height: var(--luximmo-contact-hero-band);
	overflow: hidden;
	display: flex;
	align-items: stretch;
	justify-content: center;
	background-color: var(--luximmo-teal-dark);
}
.luximmo-contact-page .luximmo-contact-hero-media,
.luximmo-contact-page .luximmo-contact-hero-overlay {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(-1 * var(--luximmo-contact-hero-header-pull));
	height: calc(100% + var(--luximmo-contact-hero-header-pull));
	pointer-events: none;
}
.luximmo-contact-page .luximmo-contact-hero-media {
	z-index: 0;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}
.luximmo-contact-page .luximmo-contact-hero-overlay {
	z-index: 1;
	background: rgba(30, 73, 81, 0.58);
}
.luximmo-contact-page .luximmo-contact-hero-inner {
	position: relative;
	z-index: 2;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: center;
	width: 100%;
	min-height: 100%;
	padding: 4.75rem 1.25rem 1.1rem;
	text-align: center;
}
.luximmo-contact-page .luximmo-contact-hero-copy {
	width: 100%;
	max-width: none;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	font-family: "Montserrat", Arial, sans-serif;
}
.luximmo-contact-page .luximmo-contact-hero h1 {
	margin: 0;
	font-family: inherit;
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1.2;
	color: #fff;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
	width: fit-content;
	max-width: 100%;
	margin-inline: auto;
	text-align: center;
	white-space: nowrap;
	word-break: normal;
	overflow-wrap: normal;
}
.luximmo-contact-page .luximmo-contact-hero p {
	margin: 0.35rem 0 0;
	font-family: inherit;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.5;
	color: #fff;
	width: fit-content;
	max-width: 100%;
	margin-inline: auto;
	text-align: center;
}
@media (max-width: 991.98px) {
	.luximmo-contact-page {
		--luximmo-contact-hero-band: 15.5rem;
		--luximmo-contact-hero-header-pull: 5.5rem;
	}
	.luximmo-contact-page .luximmo-contact-hero-inner {
		padding: 4rem 1rem 0.85rem;
	}
	.luximmo-contact-page .luximmo-contact-hero h1 {
		font-size: clamp(1.35rem, 4.5vw, 2.5rem);
		white-space: normal;
		width: auto;
	}
	.luximmo-contact-page .luximmo-contact-hero p {
		font-size: clamp(1.05rem, 3vw, 1.4rem);
		width: auto;
	}
}
/* --- Bloc formulaire + coordonnées (réf. luximmo.pro : flex 50/50, padding 40px, max 1280px) --- */
.luximmo-contact-page .luximmo-contact-form-block {
	position: relative;
	z-index: 2;
	background: #fff;
	padding: 0;
}
.luximmo-contact-page .luximmo-contact-body {
	width: 100%;
	max-width: 80rem;
	margin-left: auto;
	margin-right: auto;
	padding-left: 0;
	padding-right: 0;
}
.luximmo-contact-page .luximmo-contact-main-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: center;
	width: 100%;
	padding-top: 5rem;
	padding-bottom: 5rem;
	box-sizing: border-box;
}
.luximmo-contact-page .luximmo-contact-form,
.luximmo-contact-page .luximmo-contact-aside {
	box-sizing: border-box;
	flex: 1 1 100%;
	width: 100%;
	min-width: 0;
	padding: 0 1.25rem 2.5rem;
}
@media (min-width: 993px) {
	.luximmo-contact-page .luximmo-contact-form,
	.luximmo-contact-page .luximmo-contact-aside {
		flex: 6 1 0%;
		width: 50%;
		max-width: 50%;
		min-width: 0;
		align-self: flex-start;
		padding: 0 2.5rem 0;
	}
}
@media (max-width: 992.98px) {
	.luximmo-contact-page .luximmo-contact-main-row {
		padding-top: 2.5rem;
		padding-bottom: 2.5rem;
	}
	.luximmo-contact-page .luximmo-contact-form h2,
	.luximmo-contact-page .luximmo-contact-aside h2 {
		white-space: normal;
		width: auto;
	}
}
.luximmo-contact-page .luximmo-contact-form h2,
.luximmo-contact-page .luximmo-contact-aside h2 {
	font-family: "Montserrat", Arial, sans-serif;
	font-size: var(--lux-contact-heading-size);
	line-height: 1.2;
	font-weight: 700;
	color: var(--lux-contact-teal);
	margin: 0 0 0.75rem;
	padding: 0;
	word-break: normal;
	overflow-wrap: normal;
}
.luximmo-contact-page .luximmo-contact-form h2 {
	white-space: nowrap;
	width: fit-content;
	max-width: 100%;
}
.luximmo-contact-page .luximmo-contact-aside h2 {
	white-space: nowrap;
	width: fit-content;
	max-width: 100%;
	margin-inline: auto;
}
.luximmo-contact-page .luximmo-contact-form h2 strong {
	font-weight: 700;
}
.luximmo-contact-page .luximmo-contact-form h2 span {
	font-weight: 400;
	color: var(--lux-contact-teal);
}
.luximmo-contact-page .luximmo-contact-aside h2 {
	color: var(--lux-contact-teal-alt);
}
.luximmo-contact-page .luximmo-contact-form .lead-small {
	font-family: "Montserrat", Arial, sans-serif;
	font-size: var(--lux-contact-body-size);
	line-height: 1.5;
	color: var(--lux-contact-teal-alt);
	max-width: 36rem;
	margin-bottom: 1.5rem !important;
}
.luximmo-contact-page .luximmo-contact-form-block .lux-float-field {
	position: relative;
}
.luximmo-contact-page .luximmo-contact-form-block .lux-float-field .form-control,
.luximmo-contact-page .luximmo-contact-form-block .form-select {
	border-radius: 999px;
	border: 1px solid #c5cad0;
	background: #fff;
	min-height: 2.55rem;
	font-family: "Montserrat", Arial, sans-serif;
	font-size: var(--lux-contact-body-size);
	padding: 0.92rem 1rem 0.3rem;
	transition:
		border-color 0.25s ease,
		box-shadow 0.25s ease;
}
.luximmo-contact-page .luximmo-contact-form-block .form-select {
	padding: 0.35rem 2.25rem 0.3rem 1rem;
}
.luximmo-contact-page .luximmo-contact-form-block .lux-float-field-textarea textarea.form-control {
	border-radius: 1.25rem;
	min-height: 7.5rem;
	height: auto;
	font-family: "Montserrat", Arial, sans-serif;
	font-size: var(--lux-contact-body-size);
	padding: 1.35rem 1rem 0.65rem;
	resize: vertical;
}
.luximmo-contact-page .luximmo-contact-form-block .lux-float-field-textarea .form-label {
	top: 0.85rem;
}
.luximmo-contact-page .luximmo-contact-form-block .lux-float-field-textarea .form-control:focus + .form-label,
.luximmo-contact-page .luximmo-contact-form-block .lux-float-field-textarea .form-control:not(:placeholder-shown) + .form-label,
.luximmo-contact-page .luximmo-contact-form-block .lux-float-field-textarea:focus-within .form-label {
	top: 0.35rem;
}
.luximmo-contact-page .luximmo-contact-form-block .lux-float-field .form-label {
	position: absolute;
	top: 0.8rem;
	left: 1rem;
	right: 1rem;
	margin: 0;
	padding: 0 0.25rem;
	font-family: "Montserrat", Arial, sans-serif;
	font-size: var(--lux-contact-body-size);
	line-height: 1;
	font-weight: 400;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	color: var(--lux-contact-label);
	background: #fff;
	transform: translateY(0);
	transform-origin: left center;
	pointer-events: none;
	transition:
		transform 0.25s ease,
		color 0.25s ease,
		top 0.25s ease,
		font-size 0.25s ease;
}
.luximmo-contact-page .luximmo-contact-form-block .lux-float-field .form-control:focus + .form-label,
.luximmo-contact-page .luximmo-contact-form-block .lux-float-field .form-control:not(:placeholder-shown) + .form-label,
.luximmo-contact-page .luximmo-contact-form-block .lux-float-field .form-control:-webkit-autofill + .form-label,
.luximmo-contact-page .luximmo-contact-form-block .lux-float-field:focus-within .form-label {
	top: 0.24rem;
	font-size: 0.75rem;
	transform: translateY(0) scale(0.86);
	color: var(--lux-contact-teal);
}

/* ---- Tel field (contact) : label au-dessus + placeholder intl-tel-input ---------- */
.luximmo-contact-page .luximmo-contact-form-block .lux-float-field--tel-plain .form-label--static {
	position: static;
	display: block;
	margin: 0 0 0.4rem 1rem;
	padding: 0;
	font-family: "Montserrat", Arial, sans-serif;
	font-size: var(--lux-contact-body-size);
	font-weight: 400;
	line-height: 1.2;
	color: var(--lux-contact-label);
	background: transparent;
	transform: none;
	pointer-events: none;
	white-space: normal;
	overflow: visible;
	text-overflow: clip;
	transition: none;
}
.luximmo-contact-page .luximmo-contact-form-block .lux-float-field--tel-plain:focus-within .form-label--static {
	top: auto;
	font-size: var(--lux-contact-body-size);
	transform: none;
	color: var(--lux-contact-teal);
}
.luximmo-contact-page .luximmo-contact-form-block .lux-float-field--tel-plain .iti {
	display: block;
	width: 100%;
}
.luximmo-contact-page .luximmo-contact-form-block .lux-float-field--tel-plain .iti input.form-control {
	width: 100%;
	min-height: 2.55rem;
	padding: 0.55rem 1rem 0.55rem 3.25rem !important;
	font-family: "Montserrat", Arial, sans-serif;
	font-size: var(--lux-contact-body-size);
}
.luximmo-contact-page .luximmo-contact-form-block .lux-float-field--tel-plain .iti input.form-control::placeholder {
	color: #9aa3ad;
	opacity: 1;
}
/* Match pill border-radius on the iti flag button */
.luximmo-contact-page .lux-float-field--tel .iti__selected-country {
	border-radius: 999px 0 0 999px;
}
/* Dropdown */
.luximmo-contact-page .lux-float-field--tel .iti__dropdown-content {
	z-index: 1055;
	border-radius: 0.45rem;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.18);
	min-width: 260px;
}
.luximmo-contact-page .lux-float-field--tel .iti__country {
	font-size: 0.87rem;
}
.luximmo-contact-page .lux-float-field--tel .iti__country.iti__highlight {
	background: rgba(30, 73, 81, 0.08);
}
.luximmo-contact-page .lux-float-field--tel .iti__search-input {
	width: calc(100% - 1rem);
	margin: 0.4rem 0.5rem;
	border-radius: 0.3rem;
	border: 1px solid #ccc;
	padding: 0.3rem 0.5rem;
	font-size: 0.85rem;
}
.luximmo-contact-page .luximmo-contact-form-block .form-check-input {
	appearance: none;
	-webkit-appearance: none;
	width: 1.25rem;
	height: 1.25rem;
	margin-top: 0.15rem;
	border: 1px solid #9da3ab;
	border-radius: 50%;
	background-color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.luximmo-contact-page .luximmo-contact-form-block .form-check-input::before {
	content: "✓";
	color: #daa328;
	font-size: 0.85rem;
	line-height: 1;
	opacity: 0;
}
.luximmo-contact-page .luximmo-contact-form-block .form-check-input:checked {
	background-color: #fff;
	border-color: #9da3ab;
}
.luximmo-contact-page .luximmo-contact-form-block .form-check-input:checked::before {
	opacity: 1;
}
.luximmo-contact-page .luximmo-contact-form-block .form-check {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	padding-left: 0;
	margin: 0;
}
.luximmo-contact-page .luximmo-contact-form-block .form-check-input {
	margin-left: 0;
	flex-shrink: 0;
}
.luximmo-contact-page .luximmo-contact-form-block .form-check-label {
	margin: 0;
	line-height: 1.5;
	font-family: "Montserrat", Arial, sans-serif;
	font-size: var(--lux-contact-body-size);
}
.luximmo-contact-page .luximmo-contact-form-block .form-control:focus,
.luximmo-contact-page .luximmo-contact-form-block .form-select:focus,
.luximmo-contact-page .luximmo-contact-form-block .form-check-input:focus {
	border-color: var(--luximmo-gold);
	box-shadow: none;
}
.luximmo-contact-page .luximmo-contact-form-block .luximmo-input {
	border-color: #c5cad0;
}
.luximmo-contact-page .luximmo-contact-form .form-check-label {
	font-size: var(--lux-contact-body-size);
	color: var(--lux-contact-teal);
}
.luximmo-contact-page .luximmo-contact-submit {
	padding-top: 1.5rem !important;
	padding-bottom: 0 !important;
}
.luximmo-contact-page .luximmo-contact-btn-envoyer {
	min-width: 6.5rem;
}
.luximmo-contact-page .luximmo-contact-form-block .luximmo-btn-gold {
	background: var(--luximmo-gold);
	border: 2px solid var(--luximmo-gold);
	color: #fff;
	font-family: "Montserrat", Arial, sans-serif;
	font-weight: 500;
	letter-spacing: 0.06em;
	padding: 0;
	border-radius: 999px;
	height: 2.5rem;
	min-width: 6.25rem;
	transition:
		background-color 0.25s ease,
		color 0.25s ease,
		border-color 0.25s ease;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.luximmo-contact-page .luximmo-contact-form-block .luximmo-btn-gold:hover,
.luximmo-contact-page .luximmo-contact-form-block .luximmo-btn-gold:focus {
	background: #fff;
	border-color: var(--luximmo-gold);
	color: var(--luximmo-gold);
	outline: none;
}
.luximmo-contact-page .luximmo-contact-form-block .btn-envoyer {
	background: var(--luximmo-gold);
	border: none;
	color: #fff;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 0.65rem 1.75rem;
	border-radius: 999px;
}
.luximmo-contact-page .luximmo-contact-form-block .btn-envoyer:hover {
	background: var(--luximmo-gold-hover);
	color: #fff;
}
.luximmo-contact-page .luximmo-contact-aside {
	padding-top: 0;
}
@media (min-width: 993px) {
	.luximmo-contact-page .luximmo-contact-aside h2 {
		margin-bottom: 1.5rem;
	}
}
.luximmo-contact-page .luximmo-contact-aside-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.85rem;
	margin-bottom: 2.5rem;
}
.luximmo-contact-page .luximmo-contact-aside-item:last-child {
	margin-bottom: 0;
}
.luximmo-contact-page .luximmo-contact-icon {
	flex-shrink: 0;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: var(--luximmo-gold);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
}
.luximmo-contact-page .luximmo-contact-icon svg {
	width: 1.5rem;
	height: 1.5rem;
}
.luximmo-contact-page .luximmo-contact-aside-link {
	color: var(--lux-contact-teal);
	text-decoration: none;
	font-family: "Montserrat", Arial, sans-serif;
	font-weight: 400;
	font-size: var(--lux-contact-heading-size);
	line-height: 1.2;
}
.luximmo-contact-page .luximmo-contact-aside-link:hover {
	color: var(--lux-contact-teal-alt);
}
.luximmo-contact-page .luximmo-contact-aside-link--address {
	font-size: var(--lux-contact-heading-size);
	line-height: 1.45;
}
/* --- USP « LUXIMMO, au service… » (réf. luximmo.pro/contact) --- */
.luximmo-contact-page .luximmo-contact-usp {
	background-color: #1d4851;
	color: #fff;
	padding: 3.75rem 5rem;
}
@media (max-width: 1024px) {
	.luximmo-contact-page .luximmo-contact-usp {
		padding-left: 2.5rem;
		padding-right: 2.5rem;
	}
}
@media (max-width: 680px) {
	.luximmo-contact-page .luximmo-contact-usp {
		padding-left: 1.25rem;
		padding-right: 1.25rem;
	}
}
.luximmo-contact-page .luximmo-contact-usp-inner {
	max-width: 80rem;
	margin-left: auto;
	margin-right: auto;
}
.luximmo-contact-page .luximmo-contact-usp-head {
	padding-bottom: 3.75rem;
}
.luximmo-contact-page .luximmo-contact-usp h2 {
	margin: 0;
	text-align: center;
	font-family: "Montserrat", Arial, sans-serif;
	font-size: 1.575rem;
	font-weight: 400;
	line-height: 1.2;
	color: #fff;
}
.luximmo-contact-page .luximmo-contact-usp h2 strong {
	font-weight: 700;
}
.luximmo-contact-page .luximmo-contact-usp-grid {
	display: grid;
	gap: 3.75rem;
	grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
}
@media (max-width: 420px) {
	.luximmo-contact-page .luximmo-contact-usp-grid {
		grid-template-columns: 1fr;
	}
}
.luximmo-contact-page .luximmo-contact-usp-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}
.luximmo-contact-page .luximmo-contact-usp-icon-wrap {
	display: flex;
	justify-content: center;
	min-width: 3rem;
	min-height: 3rem;
	margin-bottom: 0.85rem;
}
.luximmo-contact-page .luximmo-contact-usp-icon {
	box-sizing: content-box;
	width: 3rem;
	height: 3rem;
	padding: 1.03125rem;
	border-radius: 50%;
	background-color: #daa328;
	color: #1d4851;
	fill: #1d4851;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.luximmo-contact-page .luximmo-contact-usp-icon svg {
	display: block;
	width: 100%;
	height: 100%;
}
.luximmo-contact-page .luximmo-contact-usp-item p {
	margin: 0;
	font-family: "Montserrat", Arial, sans-serif;
	font-size: 1.08rem;
	font-weight: 400;
	line-height: 1.5;
	color: #fff;
}
.luximmo-contact-page .luximmo-contact-map {
	position: relative;
	height: min(22rem, 50vw);
	min-height: 16rem;
	background: #e5e7eb;
	overflow: hidden;
}
.luximmo-contact-page .luximmo-contact-map > [p-google_map] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
