/* Cielo Booking Bar */
.cbb,
.cbb *,
.cbb *::before,
.cbb *::after { box-sizing: border-box; }

.cbb {
	--cbb-gold: #a18955;
	--cbb-gold-dark: #8a7446;
	--cbb-ink: #222323;
	--cbb-muted: #7c7566;
	--cbb-line: #e6dcc4;
	--cbb-paper: #fffdf8;
	--cbb-sand: #f4ecda;
	position: relative;
	display: flex;
	align-items: stretch;
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
	padding: 0;
	background: var(--cbb-paper);
	border: 1px solid rgba(161, 137, 85, .35);
	border-radius: 2px;
	box-shadow: 0 18px 50px -18px rgba(34, 35, 35, .45), 0 2px 6px rgba(34, 35, 35, .08);
	font-family: Jost, "Helvetica Neue", Arial, sans-serif;
	color: var(--cbb-ink);
	text-align: left;
	line-height: 1.2;
}

.cbb .cbb-dates { position: relative; display: flex; flex: 2 1 0; min-width: 0; }
.cbb .cbb-guests { position: relative; display: flex; flex: 1.15 1 0; min-width: 0; }

.cbb button.cbb-field {
	all: unset;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 6px;
	flex: 1 1 0;
	min-width: 0;
	min-height: 84px;
	padding: 16px 26px;
	cursor: pointer;
	transition: background-color .2s ease;
	-webkit-tap-highlight-color: transparent;
}
.cbb button.cbb-field:hover,
.cbb button.cbb-field.cbb-active { background: var(--cbb-sand); }
.cbb button.cbb-field:focus-visible,
.cbb button.cbb-submit:focus-visible,
.cbb button.cbb-step:focus-visible,
.cbb button.cbb-done:focus-visible { outline: 2px solid var(--cbb-gold); outline-offset: -2px; }

.cbb .cbb-label {
	display: block;
	font-family: Jost, "Helvetica Neue", Arial, sans-serif;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--cbb-gold);
}
.cbb .cbb-value {
	display: block;
	font-family: "Ibarra Real Nova", "Cormorant Garamond", Georgia, serif;
	font-size: 21px;
	font-weight: 400;
	letter-spacing: 0;
	color: var(--cbb-ink);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.cbb .cbb-value.cbb-empty { color: var(--cbb-muted); font-style: italic; }

.cbb .cbb-sep { flex: 0 0 1px; align-self: stretch; margin: 18px 0; background: var(--cbb-line); }

.cbb input.cbb-anchor {
	position: absolute !important;
	left: 0; bottom: 0;
	width: 1px !important; height: 1px !important;
	margin: 0 !important; padding: 0 !important; border: 0 !important;
	opacity: 0; pointer-events: none;
}

.cbb button.cbb-submit {
	all: unset;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	min-width: 230px;
	padding: 0 34px;
	background: var(--cbb-gold);
	color: #fff;
	font-family: Jost, "Helvetica Neue", Arial, sans-serif;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-align: center;
	cursor: pointer;
	transition: background-color .2s ease;
}
.cbb button.cbb-submit:hover { background: var(--cbb-gold-dark); color: #fff; }

/* Guests popover */
.cbb .cbb-pop {
	position: absolute;
	top: calc(100% + 10px);
	left: 0;
	z-index: 9999;
	width: 320px;
	max-width: calc(100vw - 32px);
	padding: 8px 22px 20px;
	background: var(--cbb-paper);
	border: 1px solid rgba(161, 137, 85, .35);
	box-shadow: 0 18px 50px -18px rgba(34, 35, 35, .45);
}
.cbb .cbb-pop[hidden] { display: none; }
.cbb .cbb-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 0;
	border-bottom: 1px solid var(--cbb-line);
}
.cbb .cbb-row-text strong {
	display: block;
	font-family: "Ibarra Real Nova", Georgia, serif;
	font-size: 19px;
	font-weight: 400;
	color: var(--cbb-ink);
}
.cbb .cbb-row-text small { display: block; margin-top: 3px; font-size: 13px; color: var(--cbb-muted); }
.cbb .cbb-stepper { display: flex; align-items: center; gap: 6px; }
.cbb button.cbb-step {
	all: unset;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px; height: 36px;
	border: 1px solid var(--cbb-gold);
	border-radius: 50%;
	color: var(--cbb-gold);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}
.cbb button.cbb-step:hover { background: var(--cbb-gold); color: #fff; }
.cbb button.cbb-step[disabled] { opacity: .3; cursor: default; background: transparent; color: var(--cbb-gold); }
.cbb .cbb-count {
	display: inline-block;
	min-width: 28px;
	text-align: center;
	font-family: "Ibarra Real Nova", Georgia, serif;
	font-size: 20px;
	color: var(--cbb-ink);
}
.cbb button.cbb-done {
	all: unset;
	box-sizing: border-box;
	display: block;
	width: 100%;
	margin-top: 18px;
	padding: 13px 16px;
	border: 1px solid var(--cbb-gold);
	color: var(--cbb-gold);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-align: center;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}
.cbb button.cbb-done:hover { background: var(--cbb-gold); color: #fff; }

/* Tablet and phone */
@media (max-width: 900px) {
	.cbb { flex-wrap: wrap; }
	.cbb .cbb-dates { flex: 1 1 100%; border-bottom: 1px solid var(--cbb-line); }
	.cbb .cbb-sep-guests { display: none; }
	.cbb .cbb-guests { flex: 1 1 0; }
	.cbb button.cbb-submit { min-width: 0; flex: 1 1 0; min-height: 72px; padding: 0 18px; }
	.cbb button.cbb-field { min-height: 72px; padding: 13px 18px; }
	.cbb .cbb-value { font-size: 19px; }
	.cbb .cbb-pop { left: 0; }
}
@media (max-width: 520px) {
	.cbb .cbb-guests { flex: 1 1 100%; border-bottom: 1px solid var(--cbb-line); }
	.cbb button.cbb-submit { flex: 1 1 100%; min-height: 58px; }
	.cbb .cbb-pop { width: 100%; }
}

/* Calendar (flatpickr) */
.flatpickr-calendar.cbb-cal {
	margin-top: 10px;
	padding: 10px 12px 14px;
	background: #fffdf8;
	border: 1px solid rgba(161, 137, 85, .35);
	border-radius: 2px;
	box-shadow: 0 18px 50px -18px rgba(34, 35, 35, .45);
	font-family: Jost, "Helvetica Neue", Arial, sans-serif;
	box-sizing: content-box;
}
.flatpickr-calendar.cbb-cal .flatpickr-current-month span.cur-month { font-weight: 400; margin-left: 0; }
.flatpickr-calendar.cbb-cal .flatpickr-current-month span.cur-month:hover { background: transparent; }
.flatpickr-calendar.cbb-cal::before,
.flatpickr-calendar.cbb-cal::after { display: none; }
.flatpickr-calendar.cbb-cal .flatpickr-months { align-items: center; padding: 6px 0 10px; }
.flatpickr-calendar.cbb-cal .flatpickr-current-month {
	font-family: "Ibarra Real Nova", Georgia, serif;
	font-size: 19px;
	font-weight: 400;
	color: #222323;
	padding-top: 6px;
}
.flatpickr-calendar.cbb-cal .flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-calendar.cbb-cal .flatpickr-current-month input.cur-year {
	font-family: inherit; font-weight: 400; color: #222323; background: transparent;
	border: 0; box-shadow: none; padding: 0 4px; height: auto; margin: 0; display: inline-block; width: auto; min-height: 0;
}
.flatpickr-calendar.cbb-cal .flatpickr-current-month input.cur-year { width: 5ch; }
.flatpickr-calendar.cbb-cal .flatpickr-current-month .numInputWrapper { width: 6ch; }
.flatpickr-calendar.cbb-cal .flatpickr-prev-month,
.flatpickr-calendar.cbb-cal .flatpickr-next-month { top: 12px; padding: 10px 14px; fill: #a18955; color: #a18955; }
.flatpickr-calendar.cbb-cal .flatpickr-prev-month:hover svg,
.flatpickr-calendar.cbb-cal .flatpickr-next-month:hover svg { fill: #222323; }
.flatpickr-calendar.cbb-cal span.flatpickr-weekday {
	font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: #a18955; background: transparent;
}
.flatpickr-calendar.cbb-cal .flatpickr-day {
	border-radius: 0; border-color: transparent; color: #222323; font-size: 15px; line-height: 38px; height: 39px;
}
.flatpickr-calendar.cbb-cal .flatpickr-day:hover,
.flatpickr-calendar.cbb-cal .flatpickr-day:focus { background: #f4ecda; border-color: #f4ecda; }
.flatpickr-calendar.cbb-cal .flatpickr-day.today { border-color: #a18955; }
.flatpickr-calendar.cbb-cal .flatpickr-day.inRange,
.flatpickr-calendar.cbb-cal .flatpickr-day.inRange:hover {
	background: #f4ecda; border-color: #f4ecda; box-shadow: -5px 0 0 #f4ecda, 5px 0 0 #f4ecda;
}
.flatpickr-calendar.cbb-cal .flatpickr-day.selected,
.flatpickr-calendar.cbb-cal .flatpickr-day.startRange,
.flatpickr-calendar.cbb-cal .flatpickr-day.endRange,
.flatpickr-calendar.cbb-cal .flatpickr-day.selected:hover,
.flatpickr-calendar.cbb-cal .flatpickr-day.startRange:hover,
.flatpickr-calendar.cbb-cal .flatpickr-day.endRange:hover {
	background: #a18955; border-color: #a18955; color: #fff; box-shadow: none;
}
.flatpickr-calendar.cbb-cal .flatpickr-day.flatpickr-disabled,
.flatpickr-calendar.cbb-cal .flatpickr-day.flatpickr-disabled:hover,
.flatpickr-calendar.cbb-cal .flatpickr-day.prevMonthDay,
.flatpickr-calendar.cbb-cal .flatpickr-day.nextMonthDay { color: rgba(34, 35, 35, .25); background: transparent; border-color: transparent; }
.flatpickr-calendar.cbb-cal .flatpickr-innerContainer { border: 0; }
.flatpickr-calendar.cbb-cal .flatpickr-days { border: 0; }
.flatpickr-calendar.cbb-cal.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) { box-shadow: 5px 0 0 #f4ecda; }
.flatpickr-calendar.cbb-cal .dayContainer + .dayContainer { box-shadow: -1px 0 0 #e6dcc4; }

/* Calendrier ouvert au-dessus de la barre : garder le meme ecart */
.flatpickr-calendar.cbb-cal.arrowBottom { margin-top: -36px; }

/* Mobile : la barre est posee sur la video / l'image du hero (home et page hebergements),
   et les textes du hero sont resserres au-dessus. */
@media (max-width: 767px) {
	body.home .elementor-element.elementor-element-365c399,
	body.page-id-3178 .elementor-element.elementor-element-8f0f31f {
		margin-top: -236px !important;
		margin-bottom: 64px !important;
		position: relative;
		z-index: 3;
	}
	body.home .elementor-element-08f5e47 > .elementor-container {
		box-sizing: border-box;
		padding-top: 150px;
		padding-bottom: 246px;
	}
	body.page-id-3178 .elementor-element-cf7d456 > .elementor-container {
		box-sizing: border-box;
		padding-bottom: 150px;
	}
	body.home .elementor-element.elementor-element-cbdc7c8 { margin-bottom: 10px !important; }
	body.home .elementor-element-cbdc7c8 > .elementor-widget-container { margin-top: 0 !important; }
	body.home .elementor-element.elementor-element-2affa1b { margin-bottom: 2px !important; }
	body.home .elementor-element-15d253c > .elementor-widget-container { margin-top: 0 !important; }
	body.home .elementor-element-15d253c h2,
	body.home .elementor-element-15d253c h2 * { line-height: 1.12 !important; }
	body.page-id-3178 .elementor-element.elementor-element-5b9ab83 { margin-bottom: 10px !important; }
}

/* Mobile : textes du hero stables au scroll et coupure de ligne propre. */
@media (max-width: 767px) {
	/* Le theme deplace et estompe ces textes pendant le scroll, ce qui les fait trembler sur telephone. */
	body.home .elementor-element-08f5e47 .elementor-widget > .elementor-widget-container,
	body.page-id-3178 .elementor-element-cf7d456 .elementor-widget > .elementor-widget-container {
		transform: none !important;
		opacity: 1 !important;
		transition: none !important;
	}
	/* Hauteur stable quand la barre d'adresse du navigateur se replie. */
	body.home .elementor-element-08f5e47 > .elementor-container,
	body.page-id-3178 .elementor-element-cf7d456 > .elementor-container {
		min-height: 100svh !important;
	}
	/* "A hotel experience," / "unlike the rest" : deux lignes equilibrees, jamais un mot seul. */
	body.home .elementor-element-15d253c h2 {
		font-size: clamp(27px, 8.6vw, 36px) !important;
		max-width: 9.2em;
		text-wrap: balance;
	}
	body.home .elementor-element-2affa1b h1 {
		font-size: clamp(23px, 7.2vw, 28px) !important;
		white-space: nowrap;
	}
}
