/*
 * Caux'Nect Réservation 2.2 — interface du parcours.
 *
 * Tout est volontairement limité à .cnr-v2 et .cnr-native-checkout afin que
 * le thème WordPress (Avada compris) ne puisse pas casser la grille du tunnel.
 */
.cnr-v2,
.cnr-native-checkout {
	--cnr2-ink: var(--cnr-text, #23332f);
	--cnr2-muted: var(--cnr-text-muted, #737c78);
	--cnr2-line: var(--cnr-border, #dedbd4);
	--cnr2-paper: var(--cnr-surface, #fff);
	--cnr2-wash: var(--cnr-background, #f6f2eb);
	--cnr2-brand: var(--cnr-primary, #233d34);
	--cnr2-accent: var(--cnr-accent, #bd8d70);
	--cnr2-heading: var(--cnr-heading-font, Georgia, "Times New Roman", serif);
	--cnr2-body: var(--cnr-body-font, Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
	--cnr2-radius: clamp(12px, var(--cnr-radius, 18px), 28px);
	--cnr2-shadow: var(--cnr-shadow, 0 22px 60px rgba(30, 38, 35, .10));
	box-sizing: border-box;
	color: var(--cnr2-ink);
	font-family: var(--cnr2-body);
	font-size: 16px;
	line-height: 1.5;
}

.cnr-v2 *,
.cnr-v2 *::before,
.cnr-v2 *::after,
.cnr-native-checkout *,
.cnr-native-checkout *::before,
.cnr-native-checkout *::after {
	box-sizing: border-box;
}

.cnr-v2 {
	position: relative;
	width: min(calc(100% - 40px), var(--cnr-content-max, 1760px));
	max-width: 1760px;
	margin: 36px auto 80px;
	padding: 0;
	isolation: isolate;
}

.cnr-v2 button,
.cnr-v2 input,
.cnr-v2 select,
.cnr-v2 textarea,
.cnr-native-checkout button,
.cnr-native-checkout input,
.cnr-native-checkout select,
.cnr-native-checkout textarea {
	font: inherit;
}

.cnr-v2 button {
	color: inherit;
}

.cnr-v2 [hidden],
.cnr-native-checkout [hidden] {
	display: none !important;
}

.cnr2-modal--portaled[hidden] {
	display: none !important;
}

.cnr2-modal--portaled {
	box-sizing: border-box;
	color: var(--cnr2-ink);
	font: 400 16px/1.5 var(--cnr2-body);
	-webkit-font-smoothing: antialiased;
}

.cnr2-modal--portaled *,
.cnr2-modal--portaled *::before,
.cnr2-modal--portaled *::after {
	box-sizing: border-box;
}

.cnr2-modal--portaled :where(button, input, select, textarea) {
	color: inherit;
	font: inherit;
}

.cnr2-preview-notice,
.cnr2-notice {
	margin: 0 0 18px;
	padding: 13px 16px;
	border: 1px solid color-mix(in srgb, var(--cnr2-accent) 48%, var(--cnr2-line));
	border-radius: 10px;
	background: color-mix(in srgb, var(--cnr2-accent) 9%, white);
	font-size: 14px;
}

.cnr2-notice.is-error {
	border-color: color-mix(in srgb, var(--cnr-error, #a53d3d) 40%, white);
	color: var(--cnr-error, #8c2d2d);
}

.cnr2-live {
	position: absolute;
	overflow: hidden;
	width: 1px;
	height: 1px;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.cnr2-toast {
	position: fixed;
	z-index: 100001;
	right: 24px;
	bottom: 24px;
	max-width: min(420px, calc(100vw - 32px));
	padding: 15px 18px;
	border: 1px solid var(--cnr2-line);
	border-radius: 12px;
	background: var(--cnr2-paper);
	box-shadow: 0 20px 55px rgba(20, 27, 24, .18);
	font-weight: 600;
}

.cnr2-toast.is-error { border-left: 4px solid var(--cnr-error, #a53d3d); }
.cnr2-toast.is-warning { border-left: 4px solid var(--cnr-warning, #b77b24); }

/* Stepper */
.cnr2-steps {
	display: flex;
	align-items: center;
	gap: 15px;
	margin: 0 0 24px;
	padding: 0 6px;
}

.cnr2-steps > span:not(.is-current):not(.is-done) {
	flex: 0 1 74px;
	height: 1px;
	background: color-mix(in srgb, var(--cnr2-accent) 55%, var(--cnr2-line));
}

.cnr2-steps button,
.cnr2-steps > span.is-current,
.cnr2-steps > span.is-done {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 0;
	border: 0;
	background: none;
	font-weight: 500;
	white-space: nowrap;
}

.cnr2-steps button:not(:disabled) { cursor: pointer; }
.cnr2-steps button:disabled { opacity: .55; }

.cnr2-steps i {
	display: grid;
	flex: 0 0 30px;
	width: 30px;
	height: 30px;
	place-items: center;
	border: 1px solid currentColor;
	border-radius: 50%;
	font-family: var(--cnr2-body);
	font-size: 14px;
	font-style: normal;
}

.cnr2-steps .is-current {
	color: var(--cnr2-brand);
	font-weight: 700;
}

.cnr2-steps .is-current i {
	border-color: var(--cnr2-brand);
	background: var(--cnr2-brand);
	color: #fff;
}

.cnr2-steps .is-done i {
	border-color: var(--cnr2-accent);
	background: color-mix(in srgb, var(--cnr2-accent) 12%, white);
	color: var(--cnr2-accent);
}

/* Recherche ancrée */
.cnr2-search-wrap {
	position: relative;
	z-index: 30;
	margin-bottom: 28px;
}

.cnr2-search {
	display: grid;
	grid-template-columns: 1fr 1fr 1.08fr minmax(210px, .72fr);
	align-items: stretch;
	min-height: 94px;
	padding: 12px;
	border: 1px solid var(--cnr2-line);
	border-radius: var(--cnr2-radius);
	background: var(--cnr2-paper);
	box-shadow: 0 10px 38px rgba(35, 45, 41, .07);
}

.cnr2-search-field {
	min-width: 0;
	padding: 8px 28px;
	border-right: 1px solid var(--cnr2-line);
}

.cnr2-search-field label {
	display: block;
	margin-bottom: 7px;
	color: var(--cnr2-muted);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .03em;
}

.cnr2-search-field > button {
	display: flex;
	width: 100%;
	min-height: 42px;
	align-items: center;
	gap: 13px;
	padding: 0;
	border: 0;
	background: transparent;
	text-align: left;
	cursor: pointer;
}

.cnr2-search-field > button > svg:first-child {
	flex: 0 0 25px;
	width: 25px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.5;
}

.cnr2-search-field > button > span {
	overflow: hidden;
	font-size: clamp(15px, 1.1vw, 18px);
	font-weight: 600;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cnr2-chevron {
	width: 18px;
	margin-left: auto;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.6;
}

.cnr2-primary,
.cnr2-outline {
	display: inline-flex;
	min-height: 52px;
	align-items: center;
	justify-content: center;
	padding: 13px 24px;
	border-radius: var(--cnr-button-radius, 9px);
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	transition: transform .18s ease, background .18s ease, color .18s ease, opacity .18s ease;
}

.cnr2-primary {
	border: 1px solid var(--cnr2-brand);
	background: var(--cnr2-brand);
	color: #fff !important;
}

.cnr2-primary:hover:not(:disabled) { transform: translateY(-1px); }
.cnr2-primary:disabled { cursor: not-allowed; opacity: .42; }

.cnr2-outline {
	border: 1px solid color-mix(in srgb, var(--cnr2-accent) 75%, var(--cnr2-line));
	background: transparent;
	color: color-mix(in srgb, var(--cnr2-accent) 78%, var(--cnr2-ink));
}

.cnr2-outline:hover:not(:disabled) {
	background: var(--cnr2-accent);
	color: #fff;
}

.cnr2-outline:disabled { cursor: default; opacity: .5; }

.cnr2-search-submit {
	min-height: 68px;
	align-self: center;
	margin-left: 14px;
}

.cnr2-search-panel {
	position: absolute;
	z-index: 50;
	top: calc(100% - 2px);
	left: 0;
	display: grid;
	width: min(1120px, 100%);
	grid-template-columns: minmax(0, 1fr) 310px;
	border: 1px solid var(--cnr2-line);
	border-radius: 0 0 var(--cnr2-radius) var(--cnr2-radius);
	background: var(--cnr2-paper);
	box-shadow: 0 25px 65px rgba(23, 31, 28, .16);
}

.cnr2-calendar {
	padding: 24px 28px 20px;
	border-right: 1px solid var(--cnr2-line);
}

.cnr2-panel-toolbar {
	display: none;
}

.cnr2-calendar header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 8px;
}

.cnr2-calendar header p {
	margin: 0 15px;
	color: var(--cnr2-muted);
	font-size: 13px;
	text-align: center;
}

.cnr2-calendar header button,
.cnr2-panel-close {
	display: grid;
	width: 40px;
	height: 40px;
	place-items: center;
	border: 1px solid var(--cnr2-line);
	border-radius: 50%;
	background: #fff;
	cursor: pointer;
}

.cnr2-months {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 34px;
}

.cnr2-month h3 {
	margin: 8px 0 16px;
	font-family: var(--cnr2-body);
	font-size: 17px;
	text-align: center;
	text-transform: capitalize;
}

.cnr2-month-grid,
.cnr2-days,
.cnr2-weekdays {
	display: grid;
	grid-template-columns: repeat(7, minmax(28px, 1fr));
	gap: 5px;
	text-align: center;
}

.cnr2-month-grid > span,
.cnr2-weekdays > span {
	padding: 5px 0 8px;
	color: var(--cnr2-muted);
	font-size: 11px;
	text-transform: capitalize;
}

.cnr2-day {
	display: grid;
	width: 100%;
	min-height: 39px;
	place-items: center;
	border: 0;
	border-radius: 999px;
	background: transparent;
	font-size: 13px;
	cursor: pointer;
}

.cnr2-day:hover:not(:disabled) { background: var(--cnr-calendar-hover, #eee7dd); }
.cnr2-day:disabled { color: var(--cnr-calendar-disabled, #babebb); cursor: not-allowed; }
.cnr2-day.is-in-range,
.cnr2-day.is-range { border-radius: 0; background: var(--cnr-calendar-range, #eee4dc); }
.cnr2-day.is-start,
.cnr2-day.is-end,
.cnr2-day.is-selected {
	border-radius: 999px;
	background: var(--cnr-calendar-selected, var(--cnr2-accent));
	color: #fff;
	font-weight: 700;
}

.cnr2-calendar footer {
	display: flex;
	gap: 24px;
	margin-top: 20px;
	padding-top: 15px;
	border-top: 1px solid var(--cnr2-line);
	color: var(--cnr2-muted);
	font-size: 12px;
}

.cnr2-calendar footer span { display: inline-flex; align-items: center; gap: 8px; }
.cnr2-calendar footer i { width: 13px; height: 13px; border: 1px solid var(--cnr2-line); border-radius: 50%; }
.cnr2-calendar footer .is-selected { border-color: var(--cnr2-accent); background: var(--cnr2-accent); }

.cnr2-guests {
	overflow: auto;
	max-height: min(660px, 76vh);
	padding: 25px;
}

.cnr2-guest-room,
.cnr2-room-slot {
	padding: 0 0 18px;
	margin-bottom: 18px;
	border-bottom: 1px solid var(--cnr2-line);
}

.cnr2-guest-room > header,
.cnr2-room-slot > header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 14px;
}

.cnr2-guest-room > header strong,
.cnr2-room-slot > header strong { font-size: 13px; text-transform: uppercase; letter-spacing: .08em; }
.cnr2-guest-room > header button,
.cnr2-room-slot > header button { border: 0; background: none; color: var(--cnr2-accent); font-size: 12px; cursor: pointer; }

.cnr2-guest-row,
.cnr2-stepper {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	margin: 12px 0;
}

.cnr2-guest-row span strong,
.cnr2-stepper > span strong { display: block; font-size: 15px; }
.cnr2-guest-row span small,
.cnr2-stepper > span small { display: block; color: var(--cnr2-muted); }

.cnr2-counter,
.cnr2-stepper > div {
	display: grid;
	grid-template-columns: 34px 30px 34px;
	align-items: center;
	text-align: center;
}

.cnr2-counter button,
.cnr2-stepper > div button {
	display: grid;
	width: 34px;
	height: 34px;
	place-items: center;
	border: 1px solid var(--cnr2-line);
	border-radius: 50%;
	background: #fff;
	cursor: pointer;
}

.cnr2-counter button:disabled,
.cnr2-stepper > div button:disabled { opacity: .35; cursor: not-allowed; }
.cnr2-text-action { padding: 0; border: 0; border-bottom: 1px solid currentColor; background: none; color: var(--cnr2-accent) !important; cursor: pointer; }
.cnr2-guests > .cnr2-primary { width: 100%; margin-top: 22px; }
.cnr2-panel-close { position: absolute; top: 12px; right: 12px; display: none; }

/* Structure générale */
.cnr2-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(340px, var(--cnr-desktop-cart, 410px));
	gap: clamp(24px, 2.4vw, 44px);
	align-items: start;
}

.cnr2-main { min-width: 0; }
.cnr2-results-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin: 24px 0 18px; }
.cnr2-kicker { margin: 0 0 10px; color: var(--cnr2-accent); font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.cnr2-results-head h1,
.cnr2-section-heading h1,
.cnr2-payment-main h1 {
	margin: 0;
	font-family: var(--cnr2-heading);
	font-size: clamp(32px, 3.2vw, 52px);
	font-weight: 500;
	letter-spacing: -.025em;
	line-height: 1.08;
}

.cnr2-results-head > div > p:last-child,
.cnr2-section-heading > div > p:last-child { margin: 8px 0 0; color: var(--cnr2-muted); }
.cnr2-sort { display: grid; gap: 5px; min-width: 190px; }
.cnr2-sort span { color: var(--cnr2-muted); font-size: 12px; font-weight: 700; }
.cnr2-sort select,
.cnr2-room-action select {
	width: 100%;
	min-height: 46px;
	padding: 0 38px 0 14px;
	border: 1px solid var(--cnr2-line);
	border-radius: 10px;
	background-color: #fff;
	color: var(--cnr2-ink);
}

.cnr2-filterbar {
	display: flex;
	overflow: hidden;
	align-items: center;
	gap: 10px;
	margin-bottom: 16px;
}

.cnr2-filterbar button,
.cnr2-filterbar [data-cnr2-filter-chips] button {
	min-height: 42px;
	padding: 9px 15px;
	border: 1px solid var(--cnr2-line);
	border-radius: 8px;
	background: var(--cnr2-paper);
	white-space: nowrap;
	cursor: pointer;
}

.cnr2-filter-main { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; }
.cnr2-filter-main svg { width: 19px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.cnr2-filterbar [data-cnr2-filter-chips] { display: flex; gap: 10px; overflow: auto; scrollbar-width: none; }

.cnr2-results { display: grid; gap: 14px; }
.cnr2-empty,
.cnr2-no-options {
	display: grid;
	min-height: 280px;
	place-items: center;
	padding: 40px;
	border: 1px dashed var(--cnr2-line);
	border-radius: var(--cnr2-radius);
	background: color-mix(in srgb, var(--cnr2-paper) 78%, transparent);
	color: var(--cnr2-muted);
	text-align: center;
}

.cnr2-empty svg { width: 52px; fill: none; stroke: var(--cnr2-accent); stroke-width: 1.5; }

/* Une liste réelle, jamais les cartes étroites observées dans la 1.2 */
.cnr2-room-card {
	display: grid;
	overflow: hidden;
	grid-template-columns: minmax(250px, 34%) minmax(260px, 1fr) minmax(190px, 220px);
	min-height: 245px;
	border: 1px solid var(--cnr2-line);
	border-radius: 10px;
	background: var(--cnr2-paper);
	transition: border-color .18s ease, box-shadow .18s ease;
}

.cnr2-room-card > * {
	min-width: 0;
}

.cnr2-room-card:hover { border-color: color-mix(in srgb, var(--cnr2-accent) 48%, var(--cnr2-line)); box-shadow: 0 14px 40px rgba(27, 36, 32, .07); }
.cnr2-room-card.is-selected { border-color: var(--cnr2-accent); }
.cnr2-room-media { position: relative; overflow: hidden; width: 100%; min-width: 0; max-width: none; min-height: 245px; padding: 0; border: 0; background: #e9e7e2; cursor: pointer; }
.cnr2-room-media img,
.cnr2-detail-gallery img,
.cnr2-service-image img,
.cnr2-summary-rooms img,
.cnr2-payment-room img { width: 100%; height: 100%; object-fit: cover; }
.cnr2-room-media > span { position: absolute; left: 13px; bottom: 13px; padding: 5px 9px; border-radius: 4px; background: rgba(20, 25, 23, .75); color: #fff; font-size: 11px; }
.cnr2-image-fallback { display: grid; width: 100%; height: 100%; min-height: 150px; place-items: center; background: #ece9e2; }
.cnr2-image-fallback svg { width: 46px; fill: none; stroke: var(--cnr2-accent); stroke-width: 1.2; }

.cnr2-room-copy {
	min-width: 0;
	padding: 25px 28px;
}

.cnr2-room-copy h2 {
	overflow-wrap: anywhere;
	margin: 0 0 8px;
	font-family: var(--cnr2-heading);
	font-size: clamp(26px, 2vw, 34px);
	font-weight: 500;
	hyphens: none;
	line-height: 1.12;
	word-break: normal;
}

.cnr2-room-copy ul,
.cnr2-detail-head ul {
	display: flex;
	flex-wrap: wrap;
	gap: 7px 18px;
	margin: 0 0 12px;
	padding: 0;
	color: var(--cnr2-muted);
	font-size: 12px;
	list-style: none;
}

.cnr2-room-copy > p:not(.cnr2-kicker) { display: -webkit-box; overflow: hidden; margin: 0 0 12px; color: var(--cnr2-muted); -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.cnr2-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.cnr2-tags span { padding: 4px 8px; border-radius: 3px; background: var(--cnr2-wash); color: var(--cnr2-muted); font-size: 11px; }

.cnr2-room-action {
	display: flex;
	min-width: 0;
	flex-direction: column;
	justify-content: center;
	padding: 23px 22px;
	border-left: 1px solid var(--cnr2-line);
	text-align: right;
}

.cnr2-room-action > small,
.cnr2-room-action > span { color: var(--cnr2-muted); font-size: 11px; }
.cnr2-room-action > strong {
	overflow: hidden;
	max-width: 100%;
	margin: 0 0 2px;
	font-family: var(--cnr2-heading);
	font-size: clamp(27px, 2.2vw, 38px);
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	line-height: 1.05;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.cnr2-room-action label { display: grid; gap: 5px; margin: 14px 0 10px; color: var(--cnr2-muted); font-size: 11px; text-align: left; }
.cnr2-room-action select { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cnr2-room-action .cnr2-outline {
	width: 100%;
	min-width: 0;
	min-height: 48px;
	padding-inline: 12px;
	hyphens: none;
	line-height: 1.25;
	overflow-wrap: normal;
	word-break: normal;
}

/* Récapitulatif */
.cnr2-summary,
.cnr2-payment-summary {
	position: sticky;
	top: 32px;
	overflow: hidden;
	border: 1px solid var(--cnr2-line);
	border-radius: var(--cnr2-radius);
	background: var(--cnr2-paper);
	box-shadow: var(--cnr2-shadow);
}

.cnr2-summary { padding: 0 26px 24px; }
.cnr2-summary > header,
.cnr2-payment-summary > .cnr2-kicker + h2 { text-align: center; }
.cnr2-summary > header { position: relative; padding: 27px 0 22px; border-bottom: 1px solid var(--cnr2-line); }
.cnr2-summary > header h2,
.cnr2-payment-summary h2 { margin: 0; font-family: var(--cnr2-heading); font-size: clamp(28px, 2.4vw, 38px); font-weight: 500; }
.cnr2-summary-close { display: none; }
.cnr2-summary-body { min-height: 0; }
.cnr2-summary-footer { display: block; }

.cnr2-summary-dates {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	gap: 10px;
	padding: 22px 4px;
	border-bottom: 1px solid var(--cnr2-line);
}

.cnr2-summary-dates div:last-of-type { text-align: right; }
.cnr2-summary-dates small { display: block; color: var(--cnr2-muted); font-size: 11px; }
.cnr2-summary-dates strong { font-size: 14px; }
.cnr2-summary-dates > p { grid-column: 1 / -1; margin: 5px 0 0; color: var(--cnr2-muted); font-size: 12px; }

.cnr2-summary-rooms article {
	display: grid;
	grid-template-columns: 70px minmax(0, 1fr) 34px;
	gap: 12px;
	align-items: center;
	padding: 20px 0;
	border-bottom: 1px solid var(--cnr2-line);
}

.cnr2-summary-rooms article > img,
.cnr2-summary-rooms article > .cnr2-image-fallback { width: 70px; height: 62px; min-height: 0; border-radius: 7px; object-fit: cover; }
.cnr2-summary-rooms article div { min-width: 0; }
.cnr2-summary-rooms small,
.cnr2-summary-rooms span { display: block; overflow: hidden; color: var(--cnr2-muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.cnr2-summary-rooms strong { display: block; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.cnr2-summary-rooms article div button { padding: 3px 0; border: 0; border-bottom: 1px solid currentColor; background: none; color: var(--cnr2-accent); font-size: 11px; cursor: pointer; }
.cnr2-summary-rooms article > button { display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid var(--cnr2-line); border-radius: 50%; background: #fff; cursor: pointer; }

.cnr2-summary-options,
.cnr2-summary-breakdown,
.cnr2-summary-total { padding: 18px 0; border-bottom: 1px solid var(--cnr2-line); }
.cnr2-summary-options header,
.cnr2-summary-options div,
.cnr2-summary-breakdown div,
.cnr2-summary-total { display: flex; justify-content: space-between; gap: 12px; }
.cnr2-summary-options header { margin-bottom: 9px; }
.cnr2-summary-options header button { border: 0; background: none; color: var(--cnr2-accent); text-decoration: underline; cursor: pointer; }
.cnr2-summary-options div { margin: 7px 0; font-size: 12px; }
.cnr2-summary-options small,
.cnr2-summary-breakdown span { color: var(--cnr2-muted); }
.cnr2-summary-breakdown div { margin: 7px 0; font-size: 13px; }
.cnr2-summary-breakdown p { margin: 8px 0 0; color: var(--cnr2-muted); font-size: 10px; }
.cnr2-coupon {
	padding: 10px 0;
	border-bottom: 1px solid var(--cnr2-line);
}
.cnr2-coupon > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 2px 0;
	color: var(--cnr2-accent);
	font-size: 12px;
	font-weight: 700;
	list-style: none;
	cursor: pointer;
}
.cnr2-coupon > summary::-webkit-details-marker { display: none; }
.cnr2-coupon > summary::after {
	content: "+";
	display: grid;
	width: 24px;
	height: 24px;
	flex: 0 0 24px;
	place-items: center;
	border: 1px solid var(--cnr2-line);
	border-radius: 50%;
	color: var(--cnr2-ink);
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
}
.cnr2-coupon[open] > summary::after { content: "−"; }
.cnr2-coupon-body { display: grid; gap: 7px; padding-top: 10px; }
.cnr2-coupon-body > label { color: var(--cnr2-muted); font-size: 11px; font-weight: 700; }
.cnr2-coupon-fields { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; }
.cnr2-coupon input {
	width: 100%;
	min-width: 0;
	min-height: 38px;
	padding: 7px 10px;
	border: 1px solid var(--cnr2-line);
	border-radius: 7px;
	background: var(--cnr2-paper);
	color: var(--cnr2-ink);
	font-size: 12px;
	-webkit-text-fill-color: var(--cnr2-ink);
}
.cnr2-coupon button {
	width: auto;
	min-width: 84px;
	min-height: 38px;
	padding: 7px 12px;
	border: 1px solid var(--cnr2-brand);
	border-radius: 7px;
	background: var(--cnr2-brand);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.1;
	cursor: pointer;
	appearance: none;
}
.cnr2-coupon button:disabled { opacity: .55; cursor: wait; }
.cnr2-coupon-body > p { min-height: 0; margin: 0; color: var(--cnr2-muted); font-size: 10px; }
.cnr2-coupon-body > p:empty { display: none; }
.cnr2-coupon-body > p.is-success { color: #247647; }
.cnr2-coupon-body > p.is-error { color: var(--cnr-error, #a53d3d); }
.cnr2-summary-total { align-items: center; border-bottom: 0; font-size: 17px; }
.cnr2-summary-total strong { font-family: var(--cnr2-heading); font-size: 27px; }
.cnr2-continue { width: 100%; }
.cnr2-secure { margin: 10px 0 0; color: var(--cnr2-muted); font-size: 10px; text-align: center; }
.cnr2-summary-backdrop {
	position: fixed;
	z-index: 2147483003;
	inset: 0;
	display: none;
	border: 0;
	background: rgba(17, 22, 20, .62);
	backdrop-filter: blur(4px);
	cursor: default;
}
.cnr2-summary-backdrop:not([hidden]) { display: block; }
.cnr2-summary-backdrop[hidden] { display: none !important; }

/* Options et coordonnées */
.cnr2-preparation { display: grid; gap: 20px; }
.cnr2-options-section,
.cnr2-customer {
	padding: clamp(22px, 2.4vw, 34px);
	border: 1px solid var(--cnr2-line);
	border-radius: 10px;
	background: var(--cnr2-paper);
}

.cnr2-section-heading { display: flex; justify-content: space-between; gap: 20px; align-items: start; margin-bottom: 22px; }
.cnr2-section-heading h1 { font-size: clamp(27px, 2.5vw, 40px); }
.cnr2-section-heading h1 em { color: var(--cnr2-muted); font-size: .55em; font-weight: 400; }
.cnr2-room-tabs { display: flex; gap: 8px; margin-bottom: 15px; }
.cnr2-room-tabs button { padding: 8px 13px; border: 1px solid var(--cnr2-line); border-radius: 999px; background: #fff; cursor: pointer; }
.cnr2-room-tabs button.is-current { border-color: var(--cnr2-brand); background: var(--cnr2-brand); color: #fff; }
.cnr2-options-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }

.cnr2-service-card {
	position: relative;
	display: grid;
	overflow: hidden;
	grid-template-columns: 118px minmax(0, 1fr);
	min-height: 168px;
	border: 1px solid var(--cnr2-line);
	border-radius: 10px;
	background: #fff;
}

.cnr2-service-card.is-selected { border-color: var(--cnr2-accent); box-shadow: inset 0 0 0 1px var(--cnr2-accent); }
.cnr2-service-image { min-height: 168px; background: #ece9e2; }
.cnr2-service-copy { min-width: 0; padding: 18px 48px 54px 16px; }
.cnr2-service-copy strong { display: block; font-size: 16px; line-height: 1.25; }
.cnr2-service-copy p { display: -webkit-box; overflow: hidden; margin: 6px 0; color: var(--cnr2-muted); font-size: 12px; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.cnr2-service-copy span { color: var(--cnr2-accent); font-size: 12px; font-weight: 700; }
.cnr2-service-add { position: absolute; top: 14px; right: 12px; display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid var(--cnr2-accent); border-radius: 50%; background: #fff; cursor: pointer; }
.cnr2-service-card.is-selected .cnr2-service-add { background: var(--cnr2-accent); color: #fff; }
.cnr2-service-quantity { position: absolute; right: 14px; bottom: 13px; display: grid; grid-template-columns: 30px 25px 30px; align-items: center; text-align: center; }
.cnr2-service-quantity button { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid var(--cnr2-line); border-radius: 50%; background: #fff; cursor: pointer; }
.cnr2-service-quantity button:disabled { opacity: .35; cursor: not-allowed; }

.cnr2-customer { display: grid; gap: 10px; }
.cnr2-accordion { overflow: hidden; border: 1px solid var(--cnr2-line); border-radius: 7px; }
.cnr2-accordion > button { display: grid; width: 100%; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 58px; padding: 12px 20px; border: 0; background: #fff; text-align: left; cursor: pointer; }
.cnr2-accordion > button > span { font-size: 21px; }
.cnr2-accordion > button i { font-style: normal; }
.cnr2-accordion > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; padding: 4px 20px 22px; }
.cnr2-customer-field { display: grid; gap: 6px; color: var(--cnr2-muted); font-size: 12px; }
.cnr2-customer-field input,
.cnr2-customer-field select,
.cnr2-customer-field textarea {
	width: 100%;
	min-height: 48px;
	padding: 10px 13px;
	border: 1px solid var(--cnr2-line);
	border-radius: 6px;
	background: #fff;
	color: var(--cnr2-ink);
}
.cnr2-customer-field textarea { min-height: 95px; resize: vertical; }
.cnr2-customer-field input[aria-invalid="true"],
.cnr2-customer-field select[aria-invalid="true"],
.cnr2-customer-field textarea[aria-invalid="true"] { border-color: var(--cnr-error, #a53d3d); }
.cnr2-customer-field.is-wide { grid-column: 1 / -1; }
.cnr2-customer-field.is-checkbox { display: flex; align-items: center; }
.cnr2-customer-field.is-checkbox input { width: 20px; min-height: 20px; }
.cnr2-empty-group { grid-column: 1 / -1; color: var(--cnr2-muted); }
.cnr2-data-note { margin: 10px 0 0; color: var(--cnr2-muted); font-size: 11px; text-align: center; }

/* Détail chambre */
.cnr2-modal {
	position: fixed;
	z-index: 100000;
	inset: 0;
	display: grid;
	padding: 28px;
	place-items: center;
}

.cnr2-modal-backdrop,
.cnr2-drawer-backdrop { position: fixed; z-index: -1; inset: 0; border: 0; background: rgba(22, 27, 25, .62); backdrop-filter: blur(3px); }
.cnr2-modal-panel {
	position: relative;
	overflow: auto;
	width: min(1120px, 100%);
	max-height: calc(100vh - 56px);
	padding: 20px;
	border-radius: 10px;
	outline: 0;
	background: var(--cnr2-paper);
	box-shadow: 0 36px 90px rgba(0, 0, 0, .3);
}
.cnr2-modal-close { position: absolute; z-index: 4; top: 13px; right: 13px; display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid var(--cnr2-line); border-radius: 50%; background: #fff; font-size: 23px; cursor: pointer; }
.cnr2-detail-gallery { display: grid; grid-template-columns: minmax(0, 3fr) minmax(150px, 1fr); gap: 10px; height: min(420px, 42vh); }
.cnr2-detail-gallery > div:first-child,
.cnr2-detail-gallery > div:first-child > * { height: 100%; }
.cnr2-detail-gallery > div:last-child {
	display: grid;
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
	grid-auto-rows: minmax(104px, 1fr);
	gap: 10px;
	padding-right: 3px;
	overscroll-behavior: contain;
	scrollbar-width: thin;
}
.cnr2-detail-gallery > div:last-child button { position: relative; overflow: hidden; min-height: 0; padding: 0; border: 0; border-radius: 5px; background: #eee; cursor: pointer; }
.cnr2-detail-gallery > div:last-child span { position: absolute; inset: auto 8px 8px; padding: 6px; background: rgba(20, 25, 23, .75); color: #fff; font-size: 11px; }
.cnr2-detail-head { display: flex; justify-content: space-between; gap: 30px; align-items: end; padding: 24px 0 14px; }
.cnr2-detail-head h2 { margin: 0 0 8px; font-family: var(--cnr2-heading); font-size: clamp(30px, 3vw, 43px); font-weight: 500; }
.cnr2-detail-head > div:last-child { min-width: 220px; text-align: right; }
.cnr2-detail-head > div:last-child small,
.cnr2-detail-head > div:last-child span { display: block; color: var(--cnr2-muted); font-size: 11px; }
.cnr2-detail-head > div:last-child strong { display: block; font-family: var(--cnr2-heading); font-size: 30px; }
.cnr2-detail-head .cnr2-outline { width: 100%; margin-top: 12px; }
.cnr2-detail-description { max-width: 790px; color: var(--cnr2-muted); }
.cnr2-detail-rates,
.cnr2-detail-equipment { padding: 18px 0 4px; border-top: 1px solid var(--cnr2-line); }
.cnr2-detail-rates h3,
.cnr2-detail-equipment h3 { font-family: var(--cnr2-heading); font-size: 21px; font-weight: 500; }
.cnr2-detail-rates button { display: flex; width: 100%; justify-content: space-between; gap: 20px; align-items: center; padding: 14px; border: 1px solid var(--cnr2-line); background: #fff; text-align: left; cursor: pointer; }
.cnr2-detail-rates button + button { border-top: 0; }
.cnr2-detail-rates button span { display: grid; }
.cnr2-detail-rates button small { color: var(--cnr2-muted); }
.cnr2-detail-equipment > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px 24px; color: var(--cnr2-muted); font-size: 13px; }
.cnr2-modal-loading { display: grid; min-height: 420px; place-items: center; }

.cnr2-replace { padding: 34px; }
.cnr2-replace h2 { font-family: var(--cnr2-heading); font-size: 34px; font-weight: 500; }
.cnr2-replace > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cnr2-replace > div > button { display: grid; grid-template-columns: 100px 1fr; gap: 15px; align-items: center; padding: 10px; border: 1px solid var(--cnr2-line); border-radius: 8px; background: #fff; text-align: left; cursor: pointer; }
.cnr2-replace img { width: 100px; height: 80px; border-radius: 6px; object-fit: cover; }
.cnr2-replace span { display: grid; }
.cnr2-replace i { color: var(--cnr2-accent); font-style: normal; }

/* Filtres */
.cnr2-filter-drawer {
	position: fixed;
	z-index: 100002;
	top: 0;
	right: 0;
	display: grid;
	width: min(430px, 100%);
	height: 100dvh;
	grid-template-rows: auto minmax(0, 1fr) auto;
	background: #fff;
	box-shadow: -20px 0 70px rgba(0, 0, 0, .2);
}
.cnr2-filter-drawer header,
.cnr2-filter-drawer footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px; border-bottom: 1px solid var(--cnr2-line); }
.cnr2-filter-drawer footer { border-top: 1px solid var(--cnr2-line); border-bottom: 0; }
.cnr2-filter-drawer header h2 { margin: 0; font-family: var(--cnr2-heading); font-size: 27px; font-weight: 500; }
.cnr2-filter-drawer header button { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid var(--cnr2-line); border-radius: 50%; background: #fff; cursor: pointer; }
.cnr2-filter-drawer > div { overflow: auto; padding: 20px; }
.cnr2-filter-group { padding: 15px 0; border-bottom: 1px solid var(--cnr2-line); }
.cnr2-filter-group strong { display: block; margin-bottom: 10px; }
.cnr2-filter-group label { display: flex; gap: 10px; margin: 8px 0; }
.cnr2-drawer-backdrop { z-index: 100001; }
.cnr2-mobile-summary { display: none; }
.cnr2-mobile-summary[hidden],
.cnr2-mobile-summary--disabled { display: none !important; }

/* Les options de l’atelier restent fonctionnelles dans le tunnel 2.0. */
.cnr-v2.cnr-no-progress .cnr2-steps { display: none; }
.cnr-v2.cnr-no-excerpt .cnr2-room-copy > p:not(.cnr2-kicker) { display: none; }
.cnr-v2.cnr-no-filters .cnr2-filterbar { display: none !important; }
.cnr-v2.cnr-services-as-list .cnr2-options-grid { grid-template-columns: 1fr; }
.cnr-v2.cnr-services-no-image .cnr2-service-card { grid-template-columns: minmax(0, 1fr); }
.cnr-v2.cnr-services-no-image .cnr2-service-image { display: none; }
.cnr-v2.cnr-no-tax-notice .cnr2-summary-breakdown p { display: none; }
.cnr-v2.cnr-no-mobile-cart .cnr2-mobile-summary { display: none !important; }

/* Étape paiement : seulement le paiement MotoPress, dans l'habillage Caux'Nect. */
.cnr-native-checkout {
	width: min(calc(100% - 40px), 1500px);
	margin: 36px auto 80px;
}
.cnr2-payment-steps { margin-bottom: 26px; }
.cnr2-payment-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 400px); gap: 36px; align-items: start; }
.cnr2-payment-main { min-width: 0; padding: clamp(24px, 3vw, 46px); border: 1px solid var(--cnr2-line); border-radius: var(--cnr2-radius); background: var(--cnr2-paper); }
.cnr2-payment-intro { color: var(--cnr2-muted); }
.cnr-native-checkout .mphb-reserve-rooms-details,
.cnr-native-checkout .mphb-booking-details,
.cnr-native-checkout .mphb-price-breakdown,
.cnr-native-checkout .mphb-checkout-section:not(.mphb-billing-fields-wrapper):not(.mphb-checkout-terms-wrapper),
.cnr-native-checkout .mphb-customer-details,
.cnr-native-checkout .mphb-checkout-terms-wrapper > br {
	display: none !important;
}
.cnr-native-checkout .mphb_sc_checkout-form,
.cnr-native-checkout form { margin: 28px 0 0; }
.cnr-native-checkout .mphb-billing-fields-wrapper,
.cnr-native-checkout .mphb-gateways-list,
.cnr-native-checkout .mphb-checkout-terms-wrapper { padding: 20px 0; border-top: 1px solid var(--cnr2-line); }
.cnr-native-checkout .mphb-gateways-list > li { margin: 10px 0; padding: 15px; border: 1px solid var(--cnr2-line); border-radius: 7px; list-style: none; }
.cnr-native-checkout input[type="text"],
.cnr-native-checkout input[type="email"],
.cnr-native-checkout select,
.cnr-native-checkout textarea { width: 100%; min-height: 48px; padding: 10px 13px; border: 1px solid var(--cnr2-line); border-radius: 6px; }
.cnr-native-checkout input[type="submit"],
.cnr-native-checkout button[type="submit"] { width: 100%; min-height: 54px; border: 1px solid var(--cnr2-brand); border-radius: var(--cnr-button-radius, 8px); background: var(--cnr2-brand); color: #fff; font-weight: 700; cursor: pointer; }
.cnr2-payment-summary { padding: 28px; }
.cnr2-payment-summary > .cnr2-kicker { text-align: center; }
.cnr2-payment-dates { display: grid; grid-template-columns: 1fr auto 1fr; gap: 10px; margin: 24px 0; padding: 20px 0; border-block: 1px solid var(--cnr2-line); }
.cnr2-payment-dates > div:last-child { text-align: right; }
.cnr2-payment-dates small,
.cnr2-payment-room small,
.cnr2-payment-room span { display: block; color: var(--cnr2-muted); font-size: 11px; }
.cnr2-payment-dates strong { display: block; font-size: 14px; }
.cnr2-payment-room { display: grid; grid-template-columns: 76px 1fr; gap: 12px; align-items: center; padding: 15px 0; border-bottom: 1px solid var(--cnr2-line); }
.cnr2-payment-room img { width: 76px; height: 64px; border-radius: 6px; }
.cnr2-payment-room strong { display: block; }
.cnr2-payment-total { display: flex; justify-content: space-between; gap: 12px; align-items: end; padding: 22px 0 5px; }
.cnr2-payment-total strong { font-family: var(--cnr2-heading); font-size: 27px; }

/* Le calendrier autonome est porté dans body afin d'échapper aux contextes Avada. */
@media (min-width: 769px) {
	.cnr-v2.cnr-no-sticky-cart .cnr2-summary { position: static; }
	.cnr-searchbar-shell { position: relative; }
	.cnr-searchbar-shell .cnr-searchbar-backdrop { display: none !important; }
	.cnr-searchbar-shell .cnr-searchbar-guests-panel {
		position: absolute !important;
		z-index: 10000;
		top: calc(100% + 10px) !important;
		right: 0 !important;
		left: auto !important;
		width: min(390px, 92vw) !important;
		max-height: min(620px, 74vh) !important;
		border-radius: 14px !important;
		box-shadow: 0 24px 65px rgba(23, 31, 28, .16) !important;
		transform: none !important;
	}
}

@media (max-width: 1280px) {
	.cnr-v2 { width: min(calc(100% - 28px), 1500px); }
	.cnr2-layout { grid-template-columns: minmax(0, 1fr) 350px; gap: 22px; }
	.cnr2-room-card { grid-template-columns: minmax(210px, 34%) minmax(220px, 1fr) 190px; }
	.cnr2-room-copy { padding: 22px; }
	.cnr2-options-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1040px) {
	.cnr2-steps { overflow-x: auto; padding-bottom: 5px; scrollbar-width: none; }
	.cnr2-search { grid-template-columns: 1fr 1fr; }
	.cnr2-search-field--guests { border-right: 1px solid var(--cnr2-line); border-top: 1px solid var(--cnr2-line); }
	.cnr2-search-submit { margin: 0; border-radius: 0 0 calc(var(--cnr2-radius) - 2px) 0; }
	.cnr2-search-panel { width: 100%; grid-template-columns: minmax(0, 1fr) 280px; }
	.cnr2-layout { display: block; }
	.cnr2-summary { position: static; margin-top: 24px; }
	.cnr2-room-card { grid-template-columns: minmax(230px, 34%) minmax(0, 1fr) 190px; }
	.cnr2-payment-layout { grid-template-columns: 1fr; }
	.cnr2-payment-summary { position: static; }
}

@media (max-width: 767px) {
	.cnr-v2,
	.cnr-native-checkout { width: calc(100% - 20px); margin: 16px auto 100px; font-size: 15px; }
	.cnr2-steps { gap: 8px; margin-bottom: 14px; }
	.cnr2-steps > span:not(.is-current):not(.is-done) { display: none; }
	.cnr2-steps button { flex: 1; justify-content: center; }
	.cnr2-steps button span,
	.cnr2-payment-steps b { display: none; }
	.cnr2-search { grid-template-columns: 1fr; padding: 0; }
	.cnr2-search-field { padding: 14px 18px; border-right: 0; border-bottom: 1px solid var(--cnr2-line); }
	.cnr2-search-field--guests { border-top: 0; border-right: 0; }
	.cnr2-search-submit { min-height: 58px; border-radius: 0 0 calc(var(--cnr2-radius) - 2px) calc(var(--cnr2-radius) - 2px); }
	.cnr2-search-panel {
		position: fixed;
		z-index: 100004;
		inset: auto 0 0;
		display: block;
		width: 100%;
		max-height: 92dvh;
		overflow: auto;
		border-radius: 18px 18px 0 0;
	}
	.cnr2-panel-toolbar {
		display: flex;
		justify-content: flex-end;
		padding: 10px 12px 0;
	}
	.cnr2-calendar { padding: 4px 16px 20px; border-right: 0; border-bottom: 1px solid var(--cnr2-line); }
	.cnr2-months { grid-template-columns: 1fr; }
	.cnr2-month + .cnr2-month { display: none; }
	.cnr2-calendar footer { flex-wrap: wrap; gap: 10px 18px; }
	.cnr2-guests { padding: 20px; }
	.cnr2-panel-close { position: static; display: grid; flex: 0 0 auto; }
	.cnr2-results-head { display: block; }
	.cnr2-sort { width: 100%; margin-top: 14px; }
	.cnr2-room-card { display: block; }
	.cnr2-room-media { display: block; width: 100%; min-height: 230px; aspect-ratio: 4 / 3; }
	.cnr2-room-copy { padding: 20px; }
	.cnr2-room-action { padding: 0 20px 20px; border-left: 0; text-align: left; }
	.cnr2-room-action > strong { font-size: 30px; }
	.cnr2-summary {
		position: fixed;
		z-index: 2147483004;
		inset: auto 0 0;
		display: none;
		width: 100%;
		max-height: min(88dvh, 760px);
		overflow: hidden;
		margin: 0;
		padding: 0;
		border-radius: 18px 18px 0 0;
		display: none !important;
	}
	.cnr2-summary.is-mobile-open {
		display: flex !important;
		flex-direction: column;
	}
	.cnr2-summary > header {
		display: flex;
		flex: 0 0 auto;
		align-items: center;
		justify-content: space-between;
		gap: 14px;
		padding: 18px 18px 14px;
		text-align: left;
	}
	.cnr2-summary > header > div {
		min-width: 0;
		text-align: left;
	}
	.cnr2-summary > header .cnr2-kicker { margin-bottom: 4px; }
	.cnr2-summary > header h2 {
		overflow: hidden;
		font-size: clamp(24px, 8vw, 34px);
		text-overflow: ellipsis;
		white-space: nowrap;
	}
	.cnr2-summary-close {
		display: grid;
		width: 42px;
		height: 42px;
		flex: 0 0 42px;
		place-items: center;
		border: 1px solid var(--cnr2-line);
		border-radius: 50%;
		background: var(--cnr2-paper);
		color: var(--cnr2-ink);
		font-size: 22px;
		line-height: 1;
		cursor: pointer;
	}
	.cnr2-summary-body {
		flex: 1 1 auto;
		overflow-x: hidden;
		overflow-y: auto;
		padding: 0 18px 12px;
		overscroll-behavior: contain;
		scrollbar-gutter: stable;
	}
	.cnr2-summary-footer {
		flex: 0 0 auto;
		padding: 10px 18px calc(14px + env(safe-area-inset-bottom));
		border-top: 1px solid var(--cnr2-line);
		background: var(--cnr2-paper);
		box-shadow: 0 -12px 30px rgba(19, 27, 24, .08);
	}
	.cnr2-summary-footer .cnr2-summary-total {
		padding: 0 0 9px;
		font-size: 15px;
	}
	.cnr2-summary-footer .cnr2-summary-total strong { font-size: 25px; }
	.cnr2-summary-footer .cnr2-continue { min-height: 48px; }
	.cnr2-summary-footer .cnr2-secure { margin-top: 7px; }
	.cnr2-mobile-summary {
		position: fixed;
		z-index: 2147483002;
		right: 10px;
		bottom: max(10px, env(safe-area-inset-bottom));
		left: 10px;
		display: flex;
		min-height: 68px;
		align-items: center;
		overflow: hidden;
		padding: 0;
		border: 0;
		border-radius: 12px;
		background: var(--cnr2-brand);
		box-shadow: 0 12px 35px rgba(15, 23, 20, .26);
		color: #fff;
		text-align: left;
	}
	.cnr2-mobile-summary__details,
	.cnr2-mobile-summary__continue {
		align-self: stretch;
		border: 0;
		background: transparent;
		color: #fff;
		-webkit-text-fill-color: #fff;
		cursor: pointer;
	}
	.cnr2-mobile-summary__details {
		display: flex;
		min-width: 0;
		flex: 1 1 auto;
		align-items: center;
		padding: 9px 14px;
		text-align: left;
	}
	.cnr2-mobile-summary__details span { display: grid; min-width: 0; }
	.cnr2-mobile-summary__details small { opacity: .78; }
	.cnr2-mobile-summary__details strong { font-size: 18px; line-height: 1.15; }
	.cnr2-mobile-summary__details em {
		overflow: hidden;
		margin-top: 2px;
		font-size: 10px;
		font-style: normal;
		opacity: .82;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
	.cnr2-mobile-summary__continue {
		display: grid;
		min-width: min(42vw, 180px);
		place-items: center;
		padding: 12px 16px;
		border-left: 1px solid rgba(255, 255, 255, .24);
		font-size: 16px;
		font-weight: 800;
		text-align: center;
	}
	.cnr2-mobile-summary__continue:disabled {
		opacity: .48;
		cursor: not-allowed;
	}
	.cnr2-options-section,
	.cnr2-customer { padding: 18px 14px; }
	.cnr2-section-heading { display: block; }
	.cnr2-section-heading > .cnr2-text-action { margin-top: 10px; }
	.cnr2-options-grid { grid-template-columns: 1fr; }
	.cnr2-service-card { grid-template-columns: 105px minmax(0, 1fr); }
	.cnr2-accordion > div { grid-template-columns: 1fr; padding-inline: 14px; }
	.cnr2-customer-field.is-wide { grid-column: auto; }
	.cnr2-modal { padding: 0; place-items: end center; }
	.cnr2-modal-panel { width: 100%; max-height: 94dvh; padding: 12px; border-radius: 18px 18px 0 0; }
	.cnr2-detail-gallery { grid-template-columns: 1fr; height: 280px; }
	.cnr2-detail-gallery > div:last-child { display: none; }
	.cnr2-detail-head { display: block; }
	.cnr2-detail-head > div:last-child { margin-top: 15px; text-align: left; }
	.cnr2-detail-equipment > div { grid-template-columns: 1fr; }
	.cnr2-replace { padding: 28px 10px; }
	.cnr2-replace > div { grid-template-columns: 1fr; }
	.cnr2-payment-main,
	.cnr2-payment-summary { padding: 22px 16px; }
	.cnr2-toast { right: 10px; bottom: 84px; left: 10px; }
}

@media (prefers-reduced-motion: reduce) {
	.cnr-v2 *,
	.cnr-native-checkout * { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/*
 * Passe de finition 2.2
 * - plein écran réel dans Avada ;
 * - surfaces contrastées pour tous les presets ;
 * - tiroir et fiche logement isolés des styles du thème.
 */
body.cnr-reservation-page,
body.cnr-reservation-page #main,
body.cnr-reservation-page #main > .fusion-row,
body.cnr-reservation-page #main #content,
body.cnr-reservation-page #main .post-content,
body.cnr-reservation-page #main .fusion-fullwidth,
body.cnr-reservation-page #main .fusion-builder-row {
	background-color: var(--cnr-reservation-page-background, #f7f5f2) !important;
}

body.cnr-reservation-page {
	overflow-x: hidden;
	overflow-x: clip;
}

.cnr-v2,
.cnr-native-checkout {
	width: 100vw !important;
	max-width: none !important;
	margin: 0 calc(50% - 50vw) !important;
	padding: clamp(22px, 2.3vw, 42px) clamp(14px, 2.4vw, 48px) clamp(62px, 6vw, 100px) !important;
	background: var(--cnr2-wash);
}

.cnr-v2 :where(
	.cnr2-sort select,
	.cnr2-room-action select,
	.cnr2-counter button,
	.cnr2-stepper > div button,
	.cnr2-summary-rooms article > button,
	.cnr2-room-tabs button,
	.cnr2-service-card,
	.cnr2-service-add,
	.cnr2-service-quantity button,
	.cnr2-accordion > button,
	.cnr2-customer-field input,
	.cnr2-customer-field select,
	.cnr2-customer-field textarea,
	.cnr2-detail-rates button,
	.cnr2-replace > div > button
) {
	background-color: var(--cnr2-paper);
	color: var(--cnr2-ink);
}

.cnr-v2 .cnr2-customer-field :where(input, select, textarea),
.cnr-native-checkout :where(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], select, textarea) {
	background: var(--cnr2-paper) !important;
	color: var(--cnr2-ink) !important;
	-webkit-text-fill-color: var(--cnr2-ink) !important;
	caret-color: var(--cnr2-accent);
	opacity: 1 !important;
}

.cnr-v2 .cnr2-customer-field :where(input, textarea)::placeholder,
.cnr-native-checkout :where(input, textarea)::placeholder {
	color: var(--cnr2-muted) !important;
	-webkit-text-fill-color: var(--cnr2-muted) !important;
	opacity: .78;
}

.cnr-v2 :where(select option),
.cnr-native-checkout select option {
	background: var(--cnr2-paper);
	color: var(--cnr2-ink);
}

html.cnr2-modal-open,
html.cnr2-drawer-open,
html.cnr2-summary-open,
html.cnr2-modal-open body,
html.cnr2-drawer-open body,
html.cnr2-summary-open body {
	overflow: hidden !important;
}

.cnr2-modal {
	z-index: 2147483000;
	overflow: hidden;
}

.cnr2-modal--portaled {
	z-index: 2147483005;
}

.cnr2-modal-backdrop {
	z-index: 0;
}

.cnr2-modal-panel {
	z-index: 1;
	display: flex;
	overflow: hidden;
	width: min(1180px, calc(100vw - 40px));
	height: min(900px, calc(100dvh - 40px));
	max-height: calc(100dvh - 40px);
	flex-direction: column;
	padding: 0;
	background: var(--cnr2-paper);
	color: var(--cnr2-ink);
}

.cnr2-modal-panel > [data-cnr2-modal-content] {
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.cnr2-modal-close {
	z-index: 6;
	top: 18px;
	right: 18px;
	width: 46px;
	height: 46px;
	background: var(--cnr2-paper);
	color: var(--cnr2-ink);
	box-shadow: 0 8px 24px rgb(0 0 0 / 12%);
}

.cnr2-detail {
	display: block;
	min-width: 0;
	background: var(--cnr2-paper);
	color: var(--cnr2-ink);
}

.cnr2-detail-gallery {
	height: clamp(300px, 48vh, 510px);
	padding: 18px 18px 0;
}

.cnr2-detail-gallery.has-single-image {
	grid-template-columns: 1fr;
}

.cnr2-detail-gallery.has-single-image > div:last-child {
	display: none;
}

.cnr2-detail-gallery > div:first-child {
	overflow: hidden;
	border-radius: 7px;
	background: var(--cnr2-wash);
}

.cnr2-detail-body {
	position: relative;
	z-index: 2;
	padding: 0 clamp(22px, 3vw, 42px) clamp(28px, 4vw, 48px);
	background: var(--cnr2-paper);
	color: var(--cnr2-ink);
}

.cnr2-detail-body :where(h2, h3, strong, b) {
	color: var(--cnr2-ink);
}

.cnr2-detail-description {
	overflow-wrap: anywhere;
}

.cnr2-filter-drawer {
	z-index: 2147483002;
	width: min(520px, 100%);
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--cnr2-accent) 7%, var(--cnr2-paper)), var(--cnr2-paper) 180px);
	color: var(--cnr2-ink);
}

.cnr2-drawer-backdrop {
	z-index: 2147483001;
}

.cnr2-filter-drawer header {
	align-items: flex-start;
	padding: 30px 30px 25px;
}

.cnr2-filter-drawer header .cnr2-kicker {
	margin-bottom: 7px;
}

.cnr2-filter-drawer header h2 {
	font-size: clamp(29px, 3vw, 40px);
	line-height: 1.05;
}

.cnr2-filter-drawer header button {
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	background: var(--cnr2-paper);
	color: var(--cnr2-ink);
}

.cnr2-filter-drawer > div {
	padding: 8px 30px 30px;
	overscroll-behavior: contain;
}

.cnr2-filter-group {
	padding: 24px 0;
}

.cnr2-filter-group > strong {
	margin-bottom: 13px;
	font-family: var(--cnr2-heading);
	font-size: 22px;
	font-weight: 600;
}

.cnr2-filter-group > div {
	display: grid;
	gap: 8px;
}

.cnr2-filter-group label {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr) auto;
	gap: 12px;
	align-items: center;
	min-height: 58px;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid var(--cnr2-line);
	border-radius: 9px;
	background: color-mix(in srgb, var(--cnr2-paper) 94%, var(--cnr2-wash));
	color: var(--cnr2-ink);
	cursor: pointer;
}

.cnr2-filter-group label:hover {
	border-color: color-mix(in srgb, var(--cnr2-accent) 58%, var(--cnr2-line));
}

.cnr2-filter-group input {
	width: 20px !important;
	height: 20px !important;
	min-width: 20px !important;
	margin: 0 !important;
	accent-color: var(--cnr2-brand);
}

.cnr2-filter-group label > span {
	display: grid;
	min-width: 0;
	gap: 2px;
}

.cnr2-filter-group label b {
	overflow-wrap: anywhere;
	color: var(--cnr2-ink);
	font-size: 14px;
	line-height: 1.25;
}

.cnr2-filter-group label small {
	color: var(--cnr2-muted);
	font-size: 11px;
	line-height: 1.25;
}

.cnr2-filter-group label > i {
	display: grid;
	min-width: 28px;
	height: 28px;
	place-items: center;
	border-radius: 999px;
	background: var(--cnr2-wash);
	color: var(--cnr2-muted);
	font-size: 11px;
	font-style: normal;
}

.cnr2-filter-drawer footer {
	padding: 18px 30px calc(18px + env(safe-area-inset-bottom));
	background: var(--cnr2-paper);
}

.cnr-preset--love-room {
	--cnr2-wash: var(--cnr-background, #160f15);
	--cnr2-paper: var(--cnr-surface, #241a22);
	--cnr2-ink: var(--cnr-text, #f9edf1);
	--cnr2-muted: var(--cnr-text-muted, #c7aeb7);
}

.cnr-preset--love-room :where(
	.cnr2-results-head h1,
	.cnr2-section-heading h1,
	.cnr2-room-copy h2,
	.cnr2-summary h2,
	.cnr2-payment-summary h2,
	.cnr2-detail-head h2,
	.cnr2-detail-rates h3,
	.cnr2-detail-equipment h3
) {
	color: var(--cnr2-accent) !important;
}

.cnr-preset--love-room .cnr2-primary {
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}

.cnr-preset--love-room :where(
	.cnr2-room-action select,
	.cnr2-customer-field input,
	.cnr2-customer-field select,
	.cnr2-customer-field textarea,
	.cnr2-coupon input,
	.cnr2-accordion > button
),
.cnr-native-checkout.cnr-preset--love-room :where(
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="number"],
	select,
	textarea
) {
	background: #fff !important;
	color: #171217 !important;
	-webkit-text-fill-color: #171217 !important;
	caret-color: #171217 !important;
}

.cnr-preset--love-room :where(.cnr2-room-action select option, .cnr2-customer-field select option),
.cnr-native-checkout.cnr-preset--love-room select option {
	background: #fff !important;
	color: #171217 !important;
}

@media (max-width: 767px) {
	.cnr-v2,
	.cnr-native-checkout {
		width: 100vw !important;
		margin: 0 calc(50% - 50vw) !important;
		padding: 14px 10px 100px !important;
	}

	.cnr2-modal-panel {
		width: 100%;
		height: 94dvh;
		max-height: 94dvh;
	}

	.cnr2-detail-gallery {
		height: auto;
		padding: 12px 12px 0;
	}

	.cnr2-detail-gallery > div:first-child {
		height: 260px;
	}

	.cnr2-detail-gallery > div:last-child {
		display: flex;
		overflow-x: auto;
		overflow-y: hidden;
		height: 76px;
		padding: 8px 0 0;
		scroll-snap-type: x proximity;
	}

	.cnr2-detail-gallery > div:last-child button {
		flex: 0 0 108px;
		scroll-snap-align: start;
	}

	.cnr2-detail-body {
		padding-inline: 18px;
	}

	.cnr2-filter-drawer footer {
		display: grid;
		grid-template-columns: 1fr;
	}

	.cnr2-filter-drawer footer .cnr2-primary {
		width: 100%;
	}

	.cnr2-mobile-summary,
	.cnr2-mobile-summary :where(button, span, small, strong, em) {
		color: #fff !important;
		-webkit-text-fill-color: #fff !important;
	}
}
