/*
Theme Name: Child theme
Template: hello-elementor
*/
/* ==== Polices ==== */
@font-face {
	font-family: 'Lato';
	src: url('fonts/lato-300.woff2') format('woff2');
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Lato';
	src: url('fonts/lato-400.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Lato';
	src: url('fonts/lato-700.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Merriweather';
	src: url('fonts/merriweather-italique.woff2') format('woff2');
	font-weight: 300 900;
	font-style: italic;
	font-display: swap;
}

/* ==== En-tête : transparent sur le héros, beige au défilement et sur les pages sans héros ==== */
[data-elementor-type="header"] {
	position: absolute;
	inset: 0 0 auto;
	z-index: 100;
}
.elementor-editor-active [data-elementor-type="header"] {
	position: relative;
}
.elementor-editor-active .entete {
	background-color: var(--e-global-color-primary);
	transform: none !important;
}
.entete {
	transition: background-color 0.3s ease;
}
.entete::before {
	content: "";
	position: absolute;
	left: 0;
	top: calc(clamp(1.25rem, 0.7354rem + 2.0955vw, 2.9375rem) + clamp(0.625rem, 0.4320rem + 0.7858vw, 1.375rem));
	width: calc(var(--pad-x) - clamp(1rem, 0.5rem + 1vw, 2rem));
	border-top: 1px solid #fff;
}
.entete.elementor-sticky--effects,
body:not(:has(.heros)) .entete {
	background-color: var(--e-global-color-primary);
}
body:not(:has(.heros)) .site-main,
body:not(:has(.heros)) main#content {
	padding-top: var(--entete-h);
}
@media (max-width: 1024px) {
	.entete::before {
		display: none;
	}
}
.entete .elementor-nav-menu--main .elementor-item {
	white-space: nowrap;
}
.entete .elementor-nav-menu--main .elementor-item::before {
	top: -1px;
}

/* ==== Pied de page : filet à gauche du logo, liens ==== */
.pied-haut {
	position: relative;
}
.pied-haut::after {
	content: "";
	position: absolute;
	left: auto;
	right: calc(100% + clamp(0.5rem, 0.2rem + 1vw, 1.7rem));
	top: clamp(1rem, 0.6rem + 1.4vw, 1.9375rem);
	width: 100vw;
	border-top: 1px solid #fff;
}
@media (max-width: 1024px) {
	.pied-haut::after {
		display: none;
	}
}
.texte-pied a,
.texte-pied a:hover {
	color: inherit;
}
.texte-pied p {
	margin-bottom: 10px;
}
.majuscules .elementor-heading-title {
	text-transform: uppercase;
}

/* ==== Grilles à filets verticaux entre les colonnes (classe grille-filets, g4 pour quatre colonnes) ==== */
.grille-filets {
	--ecart-col: clamp(1.5rem, 1.2105rem + 1.1788vw, 2.625rem);
}
.grille-filets.g4 {
	--ecart-col: clamp(1.5rem, 1.1129rem + 1.5717vw, 3rem);
}
.grille-filets > .e-con,
.grille-filets .elementor-loop-container > .e-loop-item {
	position: relative;
}
.grille-filets > .e-con::before,
.grille-filets .elementor-loop-container > .e-loop-item::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: calc(var(--ecart-col) / -2);
	border-left: 1px solid var(--e-global-color-primary);
	pointer-events: none;
}
.grille-filets:not(.g4) > .e-con:nth-of-type(3n + 1)::before,
.grille-filets:not(.g4) .elementor-loop-container > .e-loop-item:nth-of-type(3n + 1)::before,
.grille-filets.g4 > .e-con:nth-of-type(4n + 1)::before,
.grille-filets.g4 .elementor-loop-container > .e-loop-item:nth-of-type(4n + 1)::before {
	display: none;
}
@media (max-width: 1024px) {
	.grille-filets > .e-con::before,
	.grille-filets .elementor-loop-container > .e-loop-item::before {
		display: block !important;
	}
	.grille-filets > .e-con:nth-of-type(2n + 1)::before,
	.grille-filets .elementor-loop-container > .e-loop-item:nth-of-type(2n + 1)::before {
		display: none !important;
	}
}
@media (max-width: 767px) {
	.grille-filets > .e-con::before,
	.grille-filets .elementor-loop-container > .e-loop-item::before {
		display: none !important;
	}
}

/* ==== Filet prolongé jusqu'au bord gauche de l'écran (classe filet-gauche) ==== */
.filet-gauche {
	position: relative;
}
.filet-gauche::after {
	content: "";
	position: absolute;
	right: 100%;
	bottom: -1px;
	width: var(--pad-x);
	border-top: 1px solid var(--e-global-color-primary);
}

/* ==== Bande beige sur toute la largeur, derrière la grande photo (charter, Aura Yacht) ==== */
.bande-pleine {
	box-shadow: 0 0 0 100vmax var(--e-global-color-secondary);
	clip-path: inset(0 -100vmax);
}
.a-bande .elementor-widget-image {
	position: relative;
	z-index: 1;
}
@media (max-width: 767px) {
	.bande-pleine {
		box-shadow: none;
		clip-path: none;
	}
}

/* ==== Ovales qui débordent de leur bande (SXM et Carnaval) ==== */
@media (min-width: 1025px) {
	.e-con > .deborde-bas {
		--debord: min(6.927vw, 133px);
		align-self: flex-end;
		translate: 0 calc(var(--pad-y) + var(--debord));
	}
	.e-con > .deborde-haut {
		--debord: min(11.771vw, 226px);
		align-self: flex-start;
		translate: 0 calc(-1 * (var(--pad-y) + var(--debord)));
	}
	.e-con > .deborde-bas.deborde-court {
		--debord: min(3.49vw, 67px);
	}
	.e-con > .deborde-haut.deborde-court {
		--debord: min(4.167vw, 80px);
	}
}
@media (min-width: 1025px) and (max-width: 1599px) {
	.e-con > .deborde-court {
		align-self: center;
		translate: none;
	}
}

/* ==== Équipements inclus : icônes à hauteur fixe, largeur libre ==== */
.inclus .elementor-icon svg {
	width: auto;
	height: 36px;
}

/* ==== Carte villa : zoom léger de la photo au survol ==== */
.carte-villa > .e-con:first-child {
	transition: filter 0.3s ease;
}
.carte-villa:hover > .e-con:first-child {
	filter: brightness(1.08);
}

/* ==== Fiche villa : puces d'équipements ==== */
.equipements {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.equipements li {
	display: inline-flex;
	align-items: center;
	gap: 17px;
	padding: 4px 10px;
	border: 1px solid color-mix(in srgb, var(--e-global-color-text) 50%, transparent);
	border-radius: 8px;
	color: var(--e-global-color-text);
	font-family: Lato, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.2;
	text-transform: uppercase;
}
.equipements svg {
	width: 33px;
	height: 33px;
	flex: none;
}
.equipements svg [stroke-width] {
	stroke-width: 1.2;
}

/* ==== Carrousels : flèches sous les photos ==== */
.elementor .elementor-element.carrousel-accueil .elementor-swiper-button,
.elementor .elementor-element.carrousel-villa .elementor-swiper-button {
	top: auto;
	bottom: calc(-1 * clamp(3.5rem, 3rem + 1.5vw, 4.25rem));
	transform: none;
}
.elementor .elementor-element.carrousel-accueil .elementor-swiper-button-prev {
	left: calc(50% - 45px);
}
.elementor .elementor-element.carrousel-accueil .elementor-swiper-button-next {
	right: calc(50% - 45px);
}
.elementor .elementor-element.carrousel-villa .elementor-swiper-button {
	bottom: calc(-1 * clamp(2.75rem, 2rem + 1.5vw, 3.5rem));
}
.elementor .elementor-element.carrousel-villa .elementor-swiper-button-prev {
	left: auto;
	right: calc(var(--pad-x) + 67px);
}
.elementor .elementor-element.carrousel-villa .elementor-swiper-button-next {
	right: var(--pad-x);
}
.carrousel-accueil .elementor-image-carousel-wrapper,
.carrousel-villa .elementor-image-carousel-wrapper {
	overflow: visible;
}
.carrousel-accueil .swiper-slide,
.carrousel-villa .swiper-slide {
	width: auto !important;
}
.carrousel-accueil .swiper-slide-image {
	height: min(32.4vw, 622px);
	width: auto;
}
.carrousel-villa .swiper-slide-image {
	height: min(31.15vw, 598px);
	width: auto;
}
@media (max-width: 767px) {
	.carrousel-accueil .swiper-slide-image,
	.carrousel-villa .swiper-slide-image {
		height: 300px;
	}
}

/* ==== Textes : liens soulignés, listes à puces, crédit photo ==== */
.texte-liens a {
	text-decoration: underline;
}
.liste-puces ul {
	margin: 8px 0 0;
	padding-left: 1.2em;
}
.liste-puces li::marker {
	color: inherit;
	font-weight: 400;
}
.credit-photo {
	font-size: 14px;
}
.credit-photo a {
	color: inherit;
}
a[href^="tel:"],
a[href^="https://wa.me/"] {
	white-space: nowrap;
}
.elementor a.lien-telephone {
	font-family: Merriweather, serif;
	font-style: italic;
	font-weight: 500;
	font-size: var(--e-global-typography-secondary-font-size);
	color: var(--e-global-color-primary);
	text-decoration: underline;
}

/* ==== Citation signée (Experience, Yann) ==== */
.signature {
	margin-left: 0.4em;
	font-family: Lato, sans-serif;
	font-style: normal;
	font-weight: 400;
	font-size: var(--e-global-typography-text-font-size);
	white-space: nowrap;
}

/* ==== Textes : pas de marge sous le dernier paragraphe d'un bloc ==== */
.elementor-widget-text-editor :is(p, ul, ol):last-child {
	margin-bottom: 0;
}

/* ==== Article de blog ==== */
.intro-article p:first-child {
	font-weight: 400;
}
.contenu-article h2 {
	font-family: Lato, sans-serif;
	font-style: normal;
	font-weight: 400;
	font-size: var(--e-global-typography-soustitre-font-size);
	line-height: 1.2;
	text-transform: uppercase;
	margin: 1.6em 0 0.4em;
}
.contenu-article h2:first-child {
	margin-top: 0;
}
.contenu-article p {
	margin-bottom: 10px;
}
.contenu-article a {
	text-decoration: underline;
}
.contenu-article figure {
	margin: 40px 0;
}
.contenu-article img {
	width: 100%;
	height: min(24.5vw, 470px);
	object-fit: cover;
}
.logos-article {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 40px;
}
.logos-article img {
	width: min(13vw, 250px);
	max-width: 100%;
	height: auto;
}
.logos-article .media-logo-aurora {
	width: min(25.8vw, 496px);
}
.logos-article .media-logo-manoir {
	width: min(12.2vw, 234px);
}
.logos-article .media-logo-sxm {
	width: min(12.8vw, 246px);
}
.logos-article .media-logo-rainbow {
	width: min(11.7vw, 225px);
}
.logos-article .media-logo-coco-beach {
	width: min(8.8vw, 169px);
}

/* ==== Formulaires : champs soulignés (contact), newsletter ==== */
.formulaire-ligne .elementor-field-textual {
	border-width: 0 0 1px;
	padding-left: 8px;
	padding-right: 8px;
}
.formulaire-ligne textarea.elementor-field-textual {
	field-sizing: content;
	max-height: 240px;
	resize: none;
}
.formulaire-newsletter .elementor-field-textual::placeholder {
	color: var(--e-global-color-text);
	text-transform: uppercase;
}

/* ==== Réservation Hostify : barre de recherche des héros ==== */
.recherche-aura {
	--champ-fond: rgba(255, 255, 255, 0.75);
	--champ-bord: #eedac2;
	--chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B3B3B' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
}
.recherche-aura .hfy-wrap,
.recherche-aura .hfy-search-form-wrap {
	background: none;
	padding: 0;
	margin: 0;
	box-shadow: none;
}
.recherche-aura .hfy-search-form-row {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 406px)) auto;
	justify-content: space-between;
	align-items: center;
	gap: 16px clamp(1rem, 0.3rem + 2.2vw, 2.75rem);
	margin: 0;
}
.recherche-aura .hfy-search-form-row > ._col {
	width: auto;
	max-width: none;
	flex: none;
	padding: 0;
	margin: 0;
}
.recherche-aura .col-bedrooms,
.recherche-aura .col-location,
.recherche-aura .col-keyword {
	display: none;
}
.recherche-aura .form-group,
.recherche-aura .input-group {
	margin: 0;
}
.recherche-aura .hfy-wrap input.form-control.input-theme1,
.recherche-aura .hfy-wrap .guests-count-num-wrap {
	height: 50px;
	width: 100%;
	padding: 0 48px 0 24px;
	border: 1px solid var(--champ-bord);
	border-radius: 0;
	background: var(--champ-fond) var(--chevron) no-repeat right 16px center / 18px;
	box-shadow: none;
	font-family: Lato, sans-serif;
	font-size: 16px;
	font-weight: 400;
	color: var(--e-global-color-text);
	text-transform: uppercase;
	cursor: pointer;
}
.recherche-aura input.form-control::placeholder {
	color: var(--e-global-color-text);
	opacity: 1;
}
.recherche-aura .col-guests input.guests {
	display: none;
}
.recherche-aura .hfy-wrap .col-guests .input-group.booking-search-input-container,
.barre-villa .hfy-wrap .row .col > .input-group:not(.guests-count-num-wrap) {
	height: auto;
	padding: 0;
	border: 0;
	background: none;
}
.recherche-aura .hfy-wrap .input-group.guests-count-num-wrap {
	position: relative;
	top: 0;
	margin: 0;
	border: 1px solid var(--champ-bord);
}
.recherche-aura .guests-count-num-wrap {
	display: flex;
	align-items: center;
}
.recherche-aura .guests-input-label {
	display: flex;
	gap: 12px;
	align-items: center;
	background: none;
	padding: 0;
}
.recherche-aura .guests-input-label::before {
	content: var(--txt-voyageurs, "Guests");
}
html[lang^="fr"] .recherche-aura {
	--txt-voyageurs: "Voyageurs";
}
.recherche-aura .ico-guest {
	background-image: none;
}
.recherche-aura .hfy-wrap .col-action .btn,
.recherche-aura .btn-dispo {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 50px;
	margin: 0;
	padding: 0 24px;
	border: 0;
	border-radius: 0;
	background: var(--e-global-color-primary);
	font-family: Lato, sans-serif;
	font-size: var(--e-global-typography-accent-font-size);
	font-weight: 400;
	line-height: 1.2;
	color: #fff;
	text-transform: uppercase;
	white-space: nowrap;
	transition: background-color 0.2s ease;
}
.recherche-aura .hfy-wrap .col-action .btn:hover,
.recherche-aura .btn-dispo:hover {
	background: var(--e-global-color-primaire_survol);
}
.recherche-aura .col-action .btn > span {
	display: none;
}
.recherche-aura .select-guests-dropdown {
	border-radius: 0;
	font-family: Lato, sans-serif;
	color: var(--e-global-color-text);
}
@media (max-width: 1024px) {
	.recherche-aura .hfy-search-form-row {
		grid-template-columns: 1fr 1fr;
	}
	.recherche-aura .col-action {
		grid-column: 1 / -1;
	}
	.recherche-aura .col-action .btn {
		width: 100%;
	}
}
@media (max-width: 767px) {
	.recherche-aura .hfy-search-form-row {
		grid-template-columns: 1fr;
	}
}
._col.col-guests {
    display: none !important;
}

/* ==== Réservation Hostify : formulaire de la fiche villa ==== */
.barre-villa .hfy-listing-booking-form,
.barre-villa .booking-price-block,
.barre-villa .price-bar {
	background: none;
	border: 0;
	box-shadow: none;
	padding: 0;
	margin: 0;
}
.barre-villa .price-title:empty {
	display: none;
}
.barre-villa form.listing-price {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 406px)) auto;
	justify-content: space-between;
	align-items: start;
	gap: 16px clamp(1rem, 0.3rem + 2.2vw, 2.75rem);
}
.barre-villa form.listing-price > .row {
	display: contents;
}
.barre-villa form.listing-price .col,
.barre-villa form.listing-price .col-6 {
	width: auto;
	max-width: none;
	flex: none;
	padding: 0;
}
.barre-villa .discount-code-wrap,
:is(.barre-villa, .tarifs-villa) .prices,
.barre-villa .hfy-units-block-row {
	grid-column: 1 / -1;
}
body:has(.tarifs-villa) .barre-villa .discount-code-wrap,
.tarifs-villa .prices:not(:has(.prices-contenu > *)) {
	display: none;
}
.tarifs-villa .discount-code-wrap {
	margin-bottom: 16px;
	padding: 0 0 16px;
	border-bottom: 1px solid var(--e-global-color-primaire_survol);
}
:is(.barre-villa, .tarifs-villa) .discount-code-wrap label {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	font-family: Lato, sans-serif;
	font-size: 16px;
	color: var(--e-global-color-text);
}
:is(.barre-villa, .tarifs-villa) .discount-code-wrap input[type="checkbox"] {
	width: 16px;
	height: 16px;
}
.barre-villa .btn-dispo {
	grid-row: 1;
	grid-column: 4;
	background: var(--e-global-color-secondary);
	color: var(--e-global-color-text);
}
.barre-villa .btn-dispo:hover {
	background: var(--e-global-color-secondaire_survol);
}
:is(.barre-villa, .tarifs-villa) .prices:not(:has(*)),
.tarifs-deplaces .prices,
.barre-villa:has(.calentim-start:placeholder-shown) .reset-date-wrap {
	display: none;
}
:is(.barre-villa, .tarifs-villa) .prices {
	color: var(--e-global-color-text);
	font-family: Lato, sans-serif;
}
.barre-villa .reset-date-wrap {
	margin-top: 8px;
}
.barre-villa .reset-date {
	font-family: Lato, sans-serif;
	font-size: 14px;
	color: var(--e-global-color-text);
	text-decoration: underline;
	cursor: pointer;
}
@media (max-width: 1024px) {
	.barre-villa form.listing-price {
		grid-template-columns: 1fr 1fr;
	}
	.barre-villa .btn-dispo {
		grid-row: auto;
		grid-column: 1 / -1;
	}
}
@media (max-width: 767px) {
	.barre-villa form.listing-price {
		grid-template-columns: 1fr;
	}
}

/* ==== Réservation Hostify : calendrier et choix des voyageurs aux couleurs Aura ==== */
.calentim-container,
.calentim-container-mobile {
	font-family: Lato, sans-serif;
	color: var(--e-global-color-text);
}
:is(.calentim-container, .calentim-container-mobile) .calentim-input {
	border: 1px solid #eedac2 !important;
	border-radius: 0 !important;
	box-shadow: 0 12px 32px rgba(59, 59, 59, 0.14) !important;
	background: #fff !important;
}
:is(.calentim-container, .calentim-container-mobile) .calentim-calendars,
:is(.calentim-container, .calentim-container-mobile) .calentim-calendar,
:is(.calentim-container, .calentim-container-mobile) .calentim-header,
:is(.calentim-container, .calentim-container-mobile) .calentim-title,
:is(.calentim-container, .calentim-container-mobile) .calentim-dayofweek {
	background: #fff !important;
}
:is(.calentim-container, .calentim-container-mobile) .calentim-title {
	font-family: Merriweather, serif !important;
	font-style: italic;
	font-weight: 300 !important;
	font-size: 18px !important;
	color: var(--e-global-color-text) !important;
}
:is(.calentim-container, .calentim-container-mobile) .calentim-dayofweek {
	font-family: Lato, sans-serif !important;
	font-size: 11px !important;
	letter-spacing: 0.06em;
	color: var(--e-global-color-accent) !important;
}
:is(.calentim-container, .calentim-container-mobile) .calentim-prev,
:is(.calentim-container, .calentim-container-mobile) .calentim-next,
:is(.calentim-container, .calentim-container-mobile) .calentim-prev *,
:is(.calentim-container, .calentim-container-mobile) .calentim-next * {
	color: var(--e-global-color-text) !important;
}
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-day,
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-day span {
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--e-global-color-text) !important;
	font-family: Lato, sans-serif !important;
	font-size: 14px !important;
	text-decoration: none;
	box-shadow: none !important;
}
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-day:not(.calentim-disabled):not(.calentim-disabled-range):not(.calentim-selected):hover,
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-day.calentim-hovered:not(.calentim-selected) {
	background: var(--e-global-color-secondary) !important;
}
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-today:not(.calentim-selected) span,
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-today:not(.calentim-selected) {
	font-weight: 700 !important;
}
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-disabled,
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-disabled span,
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-day.calentim-disabled-range,
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-day.calentim-disabled-range span,
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-day.calentim-disabled-day,
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-day.calentim-disabled-day span {
	background: transparent !important;
	color: #c8bcad !important;
	text-decoration: line-through;
}
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-not-in-month,
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-not-in-month span {
	color: transparent !important;
	text-decoration: none;
}
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-day.calentim-selected,
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-day.calentim-selected span {
	background: var(--e-global-color-primaire_survol) !important;
	color: var(--e-global-color-text) !important;
	text-decoration: none;
}
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-day.calentim-start,
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-day.calentim-start span,
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-day.calentim-end,
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-day.calentim-end span {
	background: var(--e-global-color-primary) !important;
	color: #fff !important;
}
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-day.calentim-not-in-month.calentim-selected,
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-day.calentim-not-in-month.calentim-selected span {
	background: transparent !important;
	color: transparent !important;
}
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-disabled.calentim-selected:not(.calentim-not-in-month),
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-disabled.calentim-selected:not(.calentim-not-in-month) span {
	background: var(--e-global-color-primaire_survol) !important;
	color: var(--e-global-color-text) !important;
	text-decoration: none;
	border-radius: 0 !important;
}
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-disabled.calentim-start,
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-disabled.calentim-start span,
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-disabled.calentim-end,
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-calendars .calentim-calendar .calentim-days-container .calentim-disabled.calentim-end span {
	background: var(--e-global-color-primary) !important;
	color: #fff !important;
	text-decoration: none;
	border-radius: 0 !important;
}
:is(.calentim-container, .calentim-container-mobile) .calentim-header-start-day,
:is(.calentim-container, .calentim-container-mobile) .calentim-header-end-day {
	color: var(--e-global-color-primary) !important;
}
:is(.calentim-container, .calentim-container-mobile) .calentim-input :is(.calentim-cancel, .calentim-reset, .calentim-apply) {
	height: 44px;
	border: 1px solid var(--e-global-color-primary) !important;
	border-radius: 0 !important;
	background: #fff !important;
	color: var(--e-global-color-text) !important;
	font-family: Lato, sans-serif !important;
	font-size: 14px !important;
	text-transform: uppercase;
	box-shadow: none !important;
}
:is(.calentim-container, .calentim-container-mobile) .calentim-input .calentim-apply {
	background: var(--e-global-color-primary) !important;
	color: #fff !important;
}
.select-guests-wrap .select-guests-dropdown {
	border: 1px solid #eedac2;
	border-radius: 0;
	box-shadow: 0 12px 32px rgba(59, 59, 59, 0.14);
	font-family: Lato, sans-serif;
	color: var(--e-global-color-text);
}
.select-guests-wrap .select-guests-dropdown .context {
	font-size: 16px;
	font-weight: 400;
}
.select-guests-wrap .select-guests-dropdown .subcontext,
.select-guests-wrap .select-guests-dropdown .extra-description {
	font-size: 14px;
	color: var(--e-global-color-accent);
}
.select-guests-wrap .select-guests-dropdown .input-func-box input {
	border: 0;
	background: none;
	font-family: Lato, sans-serif;
	font-size: 16px;
	color: var(--e-global-color-text);
	text-align: center;
}
.select-guests-wrap .select-guests-dropdown .ctrl-dec,
.select-guests-wrap .select-guests-dropdown .ctrl-inc {
	filter: sepia(1) saturate(0.6) hue-rotate(-10deg);
}
.select-guests-wrap .select-guests-dropdown .btn-close-guests-box .btn {
	border: 0;
	border-radius: 0;
	background: var(--e-global-color-primary);
	color: #fff;
	font-family: Lato, sans-serif;
	font-size: 14px;
	text-transform: uppercase;
	padding: 10px 20px;
}
.select-guests-wrap .select-guests-dropdown .btn-close-guests-box .btn:hover {
	background: var(--e-global-color-primaire_survol);
}

.barre-villa input.date-masquee {
	color: transparent !important;
}
.barre-villa .date-affichee {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	white-space: nowrap;
}

/* ==== Réservation Hostify : indicatif du téléphone ==== */
.iti .iti__selected-country {
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--e-global-color-text);
}
.iti .iti__selected-country:hover,
.iti .iti__selected-country:focus-visible {
	background: var(--e-global-color-secondary);
}

/* ==== Réservation Hostify : prix, réservation et messages ==== */
:is(.barre-villa, .tarifs-villa) .prices {
	max-width: 560px;
	margin-top: 8px;
	padding: 24px;
	background: rgba(255, 255, 255, 0.75);
	border: 1px solid #eedac2;
}
.tarifs-villa .prices {
	margin: -37px 0 40px;
}
@media (max-width: 767px) {
	.tarifs-villa .prices {
		margin-top: -10px;
	}
}
:is(.barre-villa, .tarifs-villa) .price-block-item {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 4px 0;
	font-size: 16px;
	font-weight: 300;
	color: var(--e-global-color-text);
}
:is(.barre-villa, .tarifs-villa) .price-block-total {
	margin-top: 8px;
	padding-top: 12px;
	border-top: 1px solid var(--e-global-color-primary);
	font-weight: 400;
}
:is(.barre-villa, .tarifs-villa) .prices .btn:not(.discount_code_check),
.hfy-wrap .btn-primary {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	margin-top: 16px;
	padding: 16px 24px;
	border: 0;
	border-radius: 0;
	background: var(--e-global-color-primary);
	color: #fff;
	font-family: Lato, sans-serif;
	font-size: 16px;
	font-weight: 400;
	text-transform: uppercase;
	box-shadow: none;
	transition: background-color 0.2s ease;
}
:is(.barre-villa, .tarifs-villa) .prices .btn:not(.discount_code_check):hover,
.hfy-wrap .btn-primary:hover {
	background: var(--e-global-color-primaire_survol);
	color: #fff;
}
:is(.barre-villa, .tarifs-villa) .prices .btn svg,
:is(.barre-villa, .tarifs-villa) .prices .btn svg * {
	fill: currentColor;
}
.barre-villa .hint-text {
	margin-top: 10px;
	font-size: 14px;
	color: var(--e-global-color-text);
}
:is(.barre-villa, .tarifs-villa) .prices .error,
:is(.barre-villa, .tarifs-villa) .prices .text-danger,
:is(.barre-villa, .tarifs-villa) .prices [class*="error"] {
	color: var(--e-global-color-text);
}
.barre-villa .reset-date-wrap .reset-date {
	display: inline;
	padding: 0;
	border: 0;
	background: none;
}
:is(.barre-villa, .tarifs-villa) .discount-code-wrap .input_wrap {
	max-width: 560px;
	margin-top: 8px;
}
:is(.barre-villa, .tarifs-villa) .discount-code-wrap .input_wrap:not([style*="none"]) {
	display: flex !important;
}
:is(.barre-villa, .tarifs-villa) .discount-code-wrap .input_wrap input[type="text"] {
	flex: 1 1 auto;
	height: 50px;
	padding: 0 16px;
	border: 1px solid #eedac2;
	border-right: 0;
	border-radius: 0;
	background: rgba(255, 255, 255, 0.75);
	font-family: Lato, sans-serif;
	font-size: var(--e-global-typography-text-font-size);
	color: var(--e-global-color-text);
}
:is(.barre-villa, .tarifs-villa) .discount-code-wrap .input_wrap input.btn.discount_code_check {
	flex: 0 0 auto;
	height: 50px;
	padding: 0 24px;
	border: 0;
	border-radius: 0;
	background: var(--e-global-color-primary);
	color: #fff;
	font-family: Lato, sans-serif;
	font-size: var(--e-global-typography-accent-font-size);
	text-transform: uppercase;
	cursor: pointer;
}
:is(.barre-villa, .tarifs-villa) .discount-code-wrap .input_wrap input.btn.discount_code_check:hover {
	background: var(--e-global-color-primaire_survol);
}
:is(.barre-villa, .tarifs-villa) .price-block-item > ._label {
	flex: 1 1 auto;
	width: auto;
	max-width: none;
	text-align: left;
}
:is(.barre-villa, .tarifs-villa) .price-block-item > ._value {
	flex: 0 0 auto;
	width: auto;
	max-width: none;
	text-align: right;
}
:is(.barre-villa, .tarifs-villa) .discount-code-wrap input[type="checkbox"] {
	appearance: none;
	display: grid;
	place-content: center;
	flex: 0 0 auto;
	margin: 0;
	padding: 0;
	border: 1px solid var(--e-global-color-primary);
	border-radius: 0;
	background: #fff;
	cursor: pointer;
}
:is(.barre-villa, .tarifs-villa) .discount-code-wrap input[type="checkbox"]::before {
	content: "";
	width: 9px;
	height: 5px;
	margin-top: -2px;
	border: solid #fff;
	border-width: 0 0 2px 2px;
	transform: rotate(-45deg);
	opacity: 0;
}
:is(.barre-villa, .tarifs-villa) .discount-code-wrap input[type="checkbox"]:checked {
	background: var(--e-global-color-primary);
}
:is(.barre-villa, .tarifs-villa) .discount-code-wrap input[type="checkbox"]:checked::before {
	opacity: 1;
}
:is(.barre-villa, .tarifs-villa) .discount-code-wrap input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 2px;
}

.heros-beige .recherche-aura .hfy-wrap .col-action .btn {
	background: var(--e-global-color-secondary);
	color: var(--e-global-color-text);
}
.heros-beige .recherche-aura .hfy-wrap .col-action .btn:hover {
	background: var(--e-global-color-secondaire_survol);
}
.contenu-hostify .alert,
.contenu-hostify .alert-info {
	border: 1px solid #eedac2;
	border-radius: 0;
	background: var(--e-global-color-fond);
	color: var(--e-global-color-text);
	font-family: Lato, sans-serif;
	font-size: 18px;
	text-align: center;
}

/* ==== Réservation Hostify : résultats de recherche comme la grille des villas ==== */
.contenu-hostify .hfy-wrap .container {
	max-width: none;
	width: 100%;
	padding: 0;
}
.contenu-hostify .hfy-wrap .listing-block {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(3rem, 2.2936rem + 2.8807vw, 8rem) clamp(1.5rem, 1.2105rem + 1.1788vw, 2.625rem);
	margin: 0;
}
.contenu-hostify .hfy-wrap .listing-block > div {
	width: auto;
	max-width: none;
	flex: none;
	padding: 0;
	margin: 0;
}
body .contenu-hostify .hfy-widget-wrap-listings .list-card,
body .contenu-hostify .hfy-widget-wrap-listings .list-card .img,
body .contenu-hostify .hfy-widget-wrap-listings .list-card img {
	border-radius: 0 !important;
	box-shadow: none;
}
body .contenu-hostify .hfy-widget-wrap-listings .list-card .img {
	position: relative;
	height: auto;
	overflow: hidden;
}
body .contenu-hostify .hfy-widget-wrap-listings .list-card img {
	width: 100%;
	height: min(21.25vw, 408px);
	object-fit: cover;
	transition: filter 0.3s ease;
}
body .contenu-hostify .hfy-widget-wrap-listings .list-card a:hover img {
	filter: brightness(1.08);
}
body .contenu-hostify .hfy-widget-wrap-listings .list-card .add-to-wish {
	display: none;
}
body .contenu-hostify .hfy-widget-wrap-listings .list-card .info {
	padding: 20px 0 0;
	text-align: center;
}
body .contenu-hostify .hfy-widget-wrap-listings .list-card .info .description {
	font-family: Merriweather, serif;
	font-style: italic;
	font-weight: 500;
	font-size: var(--e-global-typography-secondary-font-size);
	line-height: 1.25;
	color: var(--e-global-color-text);
	white-space: normal;
	text-wrap: balance;
}
body .contenu-hostify .hfy-widget-wrap-listings .list-card .title {
	margin-top: 12px;
	font-family: Lato, sans-serif;
	font-weight: 300;
	font-size: var(--e-global-typography-chapo-font-size);
	color: var(--e-global-color-primary);
}
body .contenu-hostify .hfy-widget-wrap-listings .list-card .title .prefix,
body .contenu-hostify .hfy-widget-wrap-listings .list-card .title .suffix {
	font-weight: 300;
	color: inherit;
}
@media (max-width: 1024px) {
	.contenu-hostify .hfy-wrap .listing-block {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	body .contenu-hostify .hfy-widget-wrap-listings .list-card img {
		height: 320px;
	}
}
@media (max-width: 767px) {
	.contenu-hostify .hfy-wrap .listing-block {
		grid-template-columns: 1fr;
	}
	body .contenu-hostify .hfy-widget-wrap-listings .list-card img {
		height: 260px;
	}
}

/* ==== Textes : un mot trop long passe à la ligne au lieu de déborder ==== */
.elementor-widget-text-editor {
	overflow-wrap: break-word;
}
