.cnr-shell {
	--cnr-primary: #111a35;
	--cnr-secondary: #252525;
	--cnr-accent: #aa6e55;
	--cnr-background: #f7f5f2;
	--cnr-surface: #fff;
	--cnr-text: #151821;
	--cnr-text-muted: #6c7079;
	--cnr-border: rgba(21, 24, 33, .16);
	--cnr-shadow: 0 24px 64px rgba(17, 26, 53, .13);
	--cnr-radius: 4px;
	--cnr-button-radius: 4px;
	--cnr-heading-font: "Cormorant Garamond", Georgia, serif;
	--cnr-body-font: Inter, system-ui, sans-serif;
	--cnr-success: #277a57;
	--cnr-warning: #ad6c1f;
	--cnr-error: #a52c36;
	--cnr-calendar-selected: #aa6e55;
	--cnr-calendar-range: rgba(170, 110, 85, .17);
	--cnr-calendar-today: #111a35;
	--cnr-calendar-disabled: #d9d6d1;
	--cnr-calendar-hover: rgba(170, 110, 85, .25);
	--cnr-content-max: 1600px;
	--cnr-card-min: 280px;
	--cnr-desktop-cart: 390px;
	--cnr-touch-target: 44px;
	--cnr-image-ratio: 4 / 3;
	--cnr-searchbar-surface: var(--cnr-surface);
	--cnr-searchbar-text: var(--cnr-text);
	--cnr-searchbar-muted: var(--cnr-text-muted);
	--cnr-searchbar-border: var(--cnr-border);
	--cnr-searchbar-button-background: var(--cnr-primary);
	--cnr-searchbar-button-text: #fff;
	--cnr-searchbar-radius: calc(var(--cnr-radius) + 6px);
	--cnr-searchbar-shadow: var(--cnr-shadow);
	--cnr-searchbar-max-width: var(--cnr-content-max);
	--cnr-gutter: clamp(1rem, 3vw, 3.5rem);
	--cnr-control: max(3rem, var(--cnr-touch-target));
	position: relative;
	display: block;
	width: 100%;
	max-width: var(--cnr-content-max);
	margin-inline: auto;
	padding: clamp(1rem, 2.5vw, 3rem) var(--cnr-gutter) calc(6.5rem + env(safe-area-inset-bottom));
	color: var(--cnr-text);
	background: var(--cnr-background);
	font: 400 1rem/1.55 var(--cnr-body-font);
	-webkit-font-smoothing: antialiased;
	box-sizing: border-box;
	container: cnr / inline-size;
	isolation: isolate;
}

.cnr-shell *,
.cnr-shell *::before,
.cnr-shell *::after {
	box-sizing: border-box;
}

.cnr-shell :where(h1, h2, h3, h4, p, ul, ol, figure) {
	margin-block-start: 0;
}

.cnr-shell :where(button, input, select, textarea) {
	color: inherit;
	font: inherit;
}

.cnr-shell :where(button, select) {
	cursor: pointer;
}

.cnr-shell :where(button:disabled, select:disabled, input:disabled) {
	cursor: not-allowed;
	opacity: .56;
}

.cnr-shell :where(button, a, input, select, textarea):focus-visible {
	outline: 3px solid color-mix(in srgb, var(--cnr-accent) 72%, #fff);
	outline-offset: 3px;
}

.cnr-shell [hidden] {
	display: none !important;
}

.cnr-portal-layer {
	container: cnr / inline-size;
	color: var(--cnr-text);
	font: 400 1rem/1.55 var(--cnr-body-font);
	-webkit-font-smoothing: antialiased;
	box-sizing: border-box;
}

.cnr-portal-layer *,
.cnr-portal-layer *::before,
.cnr-portal-layer *::after {
	box-sizing: border-box;
}

.cnr-portal-layer :where(button, input, select, textarea) {
	color: inherit;
	font: inherit;
}

.cnr-portal-layer :where(button, select) {
	cursor: pointer;
}

.cnr-portal-layer :where(button:disabled, select:disabled, input:disabled) {
	cursor: not-allowed;
	opacity: .56;
}

.cnr-portal-layer :where(button, a, input, select, textarea):focus-visible {
	outline: 3px solid color-mix(in srgb, var(--cnr-accent) 72%, #fff);
	outline-offset: 3px;
}

.cnr-hero {
	position: relative;
	max-width: 55rem;
	margin: 0 auto clamp(1.3rem, 3vw, 2.5rem);
	text-align: center;
}

.cnr-hero-image {
	display: none;
}

.cnr-has-hero-image .cnr-hero {
	display: grid;
	min-height: clamp(23rem, 55vw, 42rem);
	max-width: none;
	margin-inline: calc(-1 * var(--cnr-gutter));
	padding: clamp(4rem, 12vw, 9rem) var(--cnr-gutter);
	place-content: center;
	overflow: hidden;
	color: #fff;
	background: #20232b;
}

.cnr-has-hero-image .cnr-hero::after {
	position: absolute;
	z-index: 1;
	inset: 0;
	content: "";
	background:
		linear-gradient(180deg, rgba(8, 12, 22, .16), rgba(8, 12, 22, .62)),
		linear-gradient(90deg, rgba(8, 12, 22, .48), transparent 68%);
	pointer-events: none;
}

.cnr-has-hero-image .cnr-hero-image {
	position: absolute;
	z-index: 0;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cnr-has-hero-image .cnr-hero > :not(.cnr-hero-image) {
	position: relative;
	z-index: 2;
}

.cnr-has-hero-image .cnr-hero h1,
.cnr-has-hero-image .cnr-hero > p:not(.cnr-eyebrow) {
	color: #fff;
	text-shadow: 0 2px 28px rgba(0, 0, 0, .38);
}

.cnr-has-hero-image .cnr-eyebrow {
	color: color-mix(in srgb, var(--cnr-accent) 55%, #fff);
}

.cnr-hero h1,
.cnr-results-heading h2,
.cnr-cart-head h2,
.cnr-room-card h3,
.cnr-modal h2,
.cnr-modal h3,
.cnr-native-checkout h1,
.cnr-native-checkout h2,
.cnr-native-checkout h3 {
	margin-block-end: .45em;
	color: var(--cnr-text);
	font-family: var(--cnr-heading-font);
	font-weight: 500;
	line-height: 1.04;
	text-wrap: balance;
}

.cnr-hero h1 {
	font-size: clamp(2.2rem, 7vw, 5rem);
}

.cnr-hero > p:not(.cnr-eyebrow) {
	max-width: 43rem;
	margin-inline: auto;
	color: var(--cnr-text-muted);
	font-size: clamp(.94rem, 2vw, 1.12rem);
}

.cnr-eyebrow {
	margin-bottom: .55rem;
	color: var(--cnr-accent);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.cnr-preview-badge {
	display: inline-flex;
	margin-top: .8rem;
	padding: .45rem .8rem;
	color: #fff;
	background: var(--cnr-warning);
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 700;
}

.cnr-no-hero .cnr-hero,
.cnr-no-excerpt .cnr-room-excerpt,
.cnr-no-progress .cnr-steps {
	display: none;
}

.cnr-booking {
	display: grid;
	gap: clamp(1rem, 2.3vw, 2rem);
	min-width: 0;
}

.cnr-main {
	min-width: 0;
}

.cnr-search {
	position: relative;
	z-index: 12;
	display: grid;
	gap: .65rem;
	padding: .75rem;
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: calc(var(--cnr-radius) + 6px);
	box-shadow: 0 12px 40px rgba(20, 24, 35, .08);
}

.cnr-field {
	position: relative;
	min-width: 0;
	padding: .45rem .7rem;
	border: 1px solid var(--cnr-border);
	border-radius: var(--cnr-radius);
}

.cnr-field > label,
.cnr-rate-label,
.cnr-sort {
	display: block;
	color: var(--cnr-text-muted);
	font-size: .72rem;
	font-weight: 650;
	letter-spacing: .04em;
}

.cnr-date-trigger,
.cnr-guests-trigger {
	display: flex;
	align-items: center;
	gap: .65rem;
	width: 100%;
	min-height: 2.25rem;
	padding: 0;
	text-align: left;
	background: transparent;
	border: 0;
}

.cnr-date-trigger svg,
.cnr-guests-trigger svg,
.cnr-search-submit svg,
.cnr-secure svg {
	width: 1.35rem;
	height: 1.35rem;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.5;
	flex: 0 0 auto;
}

.cnr-guests-popover {
	position: absolute;
	z-index: 30;
	top: calc(100% + .8rem);
	right: -.5rem;
	left: -.5rem;
	min-width: min(28rem, calc(100vw - 2rem));
	max-height: min(32rem, 70vh);
	overflow: auto;
	padding: 1rem;
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: calc(var(--cnr-radius) + 5px);
	box-shadow: var(--cnr-shadow);
}

.cnr-guests-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--cnr-border);
}

.cnr-guests-actions .cnr-button {
	min-height: 2.65rem;
}

.cnr-room-slot + .cnr-room-slot {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--cnr-border);
}

.cnr-room-slot-head,
.cnr-stepper,
.cnr-calendar-head,
.cnr-calendar-nav,
.cnr-drawer-head,
.cnr-drawer-actions,
.cnr-cart-total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .8rem;
}

.cnr-room-slot-head {
	margin-bottom: .5rem;
}

.cnr-stepper {
	min-height: 3.1rem;
}

.cnr-stepper > div {
	display: flex;
	align-items: center;
	gap: .5rem;
}

.cnr-stepper button,
.cnr-icon-button {
	display: inline-grid;
	width: 2.65rem;
	height: 2.65rem;
	padding: 0;
	place-items: center;
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: 50%;
}

.cnr-stepper output {
	min-width: 1.5rem;
	text-align: center;
	font-variant-numeric: tabular-nums;
}

.cnr-link {
	padding: .2rem 0;
	color: var(--cnr-accent);
	background: transparent;
	border: 0;
	border-bottom: 1px solid currentColor;
	font-size: .86rem;
	text-underline-offset: .2em;
}

.cnr-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	min-height: var(--cnr-control);
	padding: .75rem clamp(1rem, 2vw, 1.55rem);
	border: 1px solid transparent;
	border-radius: var(--cnr-button-radius);
	font-weight: 650;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}

.cnr-button:not(:disabled):active {
	transform: translateY(1px);
}

.cnr-button--primary {
	color: #fff;
	background: var(--cnr-primary);
	border-color: var(--cnr-primary);
}

.cnr-button--primary:not(:disabled):hover {
	background: color-mix(in srgb, var(--cnr-primary) 82%, #fff);
}

.cnr-button--secondary {
	color: var(--cnr-primary);
	background: var(--cnr-surface);
	border-color: var(--cnr-border);
}

.cnr-button--outline {
	color: var(--cnr-accent);
	background: transparent;
	border-color: var(--cnr-accent);
}

.cnr-search-submit {
	width: 100%;
}

.cnr-searchbar-shell {
	max-width: var(--cnr-searchbar-max-width);
	overflow: visible;
	padding: 0;
	color: var(--cnr-searchbar-text);
	background: transparent;
}

.cnr-searchbar {
	position: relative;
	display: grid;
	gap: .55rem;
	width: 100%;
	padding: clamp(.55rem, 1.2vw, .75rem);
	background: var(--cnr-searchbar-surface);
	border: 1px solid var(--cnr-searchbar-border);
	border-radius: var(--cnr-searchbar-radius);
	box-shadow: var(--cnr-searchbar-shadow);
}

.cnr-searchbar-field {
	position: relative;
	display: grid;
	min-width: 0;
	gap: .1rem;
	padding: .52rem .75rem;
	color: var(--cnr-searchbar-text);
	background: var(--cnr-searchbar-surface);
	background: color-mix(in srgb, var(--cnr-searchbar-surface) 96%, var(--cnr-searchbar-text));
	border: 1px solid var(--cnr-searchbar-border);
	border-radius: max(2px, calc(var(--cnr-searchbar-radius) - 4px));
}

.cnr-searchbar-field > span {
	display: block;
	overflow: hidden;
	color: var(--cnr-searchbar-muted);
	font-size: .69rem;
	font-weight: 700;
	letter-spacing: .055em;
	line-height: 1.35;
	text-overflow: ellipsis;
	text-transform: uppercase;
	white-space: nowrap;
}

.cnr-searchbar-date-trigger,
.cnr-searchbar-field--guests > button {
	display: flex;
	align-items: center;
	gap: .65rem;
	min-width: 0;
	min-height: 2.4rem;
	margin: 0;
	font-weight: 600;
}

.cnr-searchbar-field :where(svg),
.cnr-searchbar-submit svg {
	width: 1.35rem;
	height: 1.35rem;
	flex: 0 0 auto;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.5;
}

.cnr-searchbar-date-trigger {
	width: 100%;
	min-width: 0;
	min-height: 2.4rem;
	padding: 0;
	color: var(--cnr-searchbar-text);
	background: transparent;
	border: 0;
	text-align: left;
}

.cnr-searchbar-date-trigger strong {
	overflow: hidden;
	font-weight: 650;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cnr-searchbar-date-trigger:not(.has-value) strong {
	color: var(--cnr-searchbar-muted);
	font-weight: 550;
}

.cnr-searchbar-field--guests > button {
	width: 100%;
	padding: 0;
	text-align: left;
	background: transparent;
	border: 0;
}

.cnr-searchbar-field--guests strong {
	overflow: hidden;
	flex: 1 1 auto;
	font-weight: 650;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cnr-searchbar-field--guests > button > i {
	margin-left: auto;
	color: var(--cnr-searchbar-muted);
	font-size: 1.15rem;
	font-style: normal;
	line-height: 1;
	transition: transform .18s ease;
}

.cnr-searchbar-field--guests > button[aria-expanded="true"] > i {
	transform: rotate(180deg);
}

.cnr-searchbar-guests-panel {
	position: absolute;
	z-index: 105;
	top: calc(100% + .8rem);
	right: 0;
	width: min(25rem, calc(100vw - 2rem));
	max-height: min(34rem, 72vh);
	overflow: auto;
	padding: clamp(1rem, 3vw, 1.35rem);
	color: var(--cnr-searchbar-text);
	background: var(--cnr-searchbar-surface);
	border: 1px solid var(--cnr-searchbar-border);
	border-radius: var(--cnr-searchbar-radius);
	box-shadow: var(--cnr-searchbar-shadow);
}

.cnr-searchbar-room + .cnr-searchbar-room {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--cnr-searchbar-border);
}

.cnr-searchbar-room header,
.cnr-searchbar-room > div,
.cnr-searchbar-counter {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .8rem;
}

.cnr-searchbar-room header {
	margin-bottom: .45rem;
}

.cnr-searchbar-room > div {
	min-height: 3.5rem;
}

.cnr-searchbar-room > div > span {
	display: grid;
}

.cnr-searchbar-room small {
	color: var(--cnr-searchbar-muted);
	font-size: .72rem;
}

.cnr-searchbar-counter {
	flex: 0 0 auto;
	gap: .45rem;
}

.cnr-searchbar-counter button {
	display: inline-grid;
	width: 2.45rem;
	height: 2.45rem;
	padding: 0;
	color: var(--cnr-searchbar-text);
	background: var(--cnr-searchbar-surface);
	border: 1px solid var(--cnr-searchbar-border);
	border-radius: 50%;
	font-size: 1.1rem;
	place-items: center;
}

.cnr-searchbar-counter output {
	min-width: 1.4rem;
	text-align: center;
	font-variant-numeric: tabular-nums;
}

.cnr-searchbar-guests-panel > .cnr-link {
	margin-top: .75rem;
	color: var(--cnr-searchbar-button-background);
}

.cnr-searchbar-guests-panel > .cnr-button {
	width: 100%;
	margin-top: 1rem;
	color: var(--cnr-searchbar-button-text);
	background: var(--cnr-searchbar-button-background);
	border-color: var(--cnr-searchbar-button-background);
}

.cnr-searchbar-submit {
	width: 100%;
	min-height: 3.55rem;
	color: var(--cnr-searchbar-button-text);
	background: var(--cnr-searchbar-button-background);
	border-color: var(--cnr-searchbar-button-background);
	border-radius: max(2px, calc(var(--cnr-searchbar-radius) - 4px));
	font-size: .82rem;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.cnr-searchbar-submit:not(:disabled):hover,
.cnr-searchbar-guests-panel > .cnr-button:not(:disabled):hover {
	color: var(--cnr-searchbar-button-text);
	background: color-mix(in srgb, var(--cnr-searchbar-button-background) 84%, #fff);
	border-color: color-mix(in srgb, var(--cnr-searchbar-button-background) 84%, #fff);
}

.cnr-searchbar-backdrop {
	position: fixed;
	z-index: 95;
	inset: 0;
	width: 100%;
	height: 100%;
	padding: 0;
	background: rgb(9 13 25 / 48%);
	border: 0;
	backdrop-filter: blur(2px);
}

.cnr-searchbar-backdrop--portaled {
	z-index: 2147483002;
}

.cnr-searchbar-guests-backdrop--portaled {
	z-index: 2147483002;
}

.cnr-searchbar-guests-panel--portaled {
	z-index: 2147483003;
	margin: 0;
	overscroll-behavior: contain;
	transform: none;
}

.cnr-searchbar-guests-panel--portaled .cnr-searchbar-room > div {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem;
}

.cnr-searchbar-guests-panel--portaled .cnr-searchbar-counter {
	display: grid;
	grid-template-columns: 2.35rem 1.4rem 2.35rem;
	align-items: center;
	justify-content: end;
	gap: .4rem;
	width: auto;
}

.cnr-searchbar-guests-panel--portaled .cnr-searchbar-counter button {
	float: none !important;
	display: inline-grid !important;
	width: 2.35rem !important;
	min-width: 2.35rem !important;
	max-width: 2.35rem !important;
	height: 2.35rem !important;
	min-height: 2.35rem !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1 !important;
	place-items: center;
}

.cnr-searchbar-guests-panel--portaled .cnr-searchbar-counter output {
	display: block;
	min-width: 1.4rem;
	margin: 0;
	text-align: center;
}

.cnr-searchbar-calendar {
	position: absolute;
	z-index: 105;
	top: calc(100% + .85rem);
	left: 50%;
	width: min(54rem, calc(100% - 2rem));
	max-height: min(42rem, 78vh);
	overflow: auto;
	padding: clamp(1rem, 2.4vw, 1.6rem);
	transform: translateX(-50%);
	color: var(--cnr-searchbar-text);
	background: var(--cnr-searchbar-surface);
	border: 1px solid var(--cnr-searchbar-border);
	border-radius: var(--cnr-searchbar-radius);
	box-shadow: 0 28px 80px rgb(9 13 25 / 26%);
}

.cnr-searchbar-calendar--portaled {
	z-index: 2147483003;
	margin: 0;
	transform: none;
}

.cnr-searchbar-calendar--portaled[hidden],
.cnr-searchbar-backdrop--portaled[hidden],
.cnr-searchbar-guests-panel--portaled[hidden],
.cnr-searchbar-guests-backdrop--portaled[hidden],
.cnr-room-calendar-dialog--portaled[hidden] {
	display: none !important;
}

.cnr-searchbar-calendar--portaled .cnr-months {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
}

.cnr-searchbar-calendar--portaled :where(.cnr-day, .cnr-day-spacer) {
	height: 2.55rem;
	min-height: 2.55rem;
	aspect-ratio: auto;
}

.cnr-searchbar-calendar .cnr-calendar-head p {
	color: var(--cnr-searchbar-muted);
}

.cnr-searchbar-calendar .cnr-calendar-nav {
	margin-block: .6rem 1rem;
}

.cnr-searchbar-calendar .cnr-months {
	gap: clamp(1rem, 3vw, 2rem);
}

.cnr-searchbar-calendar .cnr-calendar-legend {
	color: var(--cnr-searchbar-muted);
	border-color: var(--cnr-searchbar-border);
}

.cnr-day-spacer {
	display: block;
	aspect-ratio: 1;
	min-height: 2.35rem;
}

.cnr-searchbar-no-icons .cnr-searchbar :where(svg) {
	display: none;
}

.cnr-searchbar-style--floating .cnr-searchbar {
	box-shadow: var(--cnr-searchbar-shadow);
}

.cnr-searchbar-style--bordered .cnr-searchbar {
	border-width: 2px;
	box-shadow: 0 10px 30px color-mix(in srgb, var(--cnr-searchbar-text) 8%, transparent);
}

.cnr-searchbar-style--minimal .cnr-searchbar {
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
}

.cnr-searchbar-style--minimal .cnr-searchbar-field {
	background: var(--cnr-searchbar-surface);
	box-shadow: 0 8px 24px color-mix(in srgb, var(--cnr-searchbar-text) 7%, transparent);
}

.cnr-calendar {
	position: relative;
	z-index: 10;
	margin-top: .7rem;
	padding: clamp(.8rem, 2vw, 1.5rem);
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: calc(var(--cnr-radius) + 6px);
	box-shadow: var(--cnr-shadow);
}

.cnr-calendar-head p {
	margin: 0;
	color: var(--cnr-text-muted);
	font-size: .9rem;
}

.cnr-calendar-nav {
	margin-block: .4rem;
	pointer-events: none;
}

.cnr-calendar-nav button {
	pointer-events: auto;
}

.cnr-months {
	display: grid;
	gap: 1.5rem;
}

.cnr-month h3 {
	margin: -2.8rem 3rem 1rem;
	font: 600 1rem/1.2 var(--cnr-body-font);
	text-align: center;
	text-transform: capitalize;
}

.cnr-weekdays,
.cnr-days {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: clamp(.15rem, 1vw, .35rem);
}

.cnr-weekdays {
	margin-bottom: .3rem;
	color: var(--cnr-text-muted);
	font-size: .7rem;
	text-align: center;
	text-transform: capitalize;
}

.cnr-day {
	position: relative;
	display: grid;
	aspect-ratio: 1;
	min-width: 0;
	min-height: 2.35rem;
	padding: 0;
	place-items: center;
	background: transparent;
	border: 1px solid transparent;
	border-radius: 50%;
	font-size: clamp(.74rem, 2.5vw, .9rem);
	font-variant-numeric: tabular-nums;
}

.cnr-day:not(:disabled):hover {
	background: var(--cnr-calendar-hover);
}

.cnr-day.is-range {
	background: var(--cnr-calendar-range);
	border-radius: 0;
}

.cnr-day.is-selected {
	color: #fff;
	background: var(--cnr-calendar-selected);
	border-color: var(--cnr-calendar-selected);
}

.cnr-day.is-today:not(.is-selected)::after {
	position: absolute;
	right: 30%;
	bottom: .2rem;
	left: 30%;
	height: 2px;
	background: var(--cnr-calendar-today);
	content: "";
}

.cnr-day.is-disabled {
	color: color-mix(in srgb, var(--cnr-text-muted) 55%, transparent);
	text-decoration: line-through;
}

.cnr-calendar-legend {
	display: flex;
	flex-wrap: wrap;
	gap: .7rem 1rem;
	margin-top: 1rem;
	padding-top: .8rem;
	color: var(--cnr-text-muted);
	border-top: 1px solid var(--cnr-border);
	font-size: .72rem;
}

.cnr-calendar-legend span {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
}

.cnr-calendar-legend i {
	width: .8rem;
	height: .8rem;
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: 50%;
}

.cnr-calendar-legend i.is-selected { background: var(--cnr-calendar-selected); }
.cnr-calendar-legend i.is-disabled { background: var(--cnr-calendar-disabled); }

.cnr-toolbar {
	display: grid;
	gap: .8rem;
	margin-block: clamp(1.2rem, 3vw, 2.5rem) 1rem;
}

.cnr-filter-chips {
	display: flex;
	gap: .5rem;
	overflow-x: auto;
	padding: .2rem .1rem .55rem;
	scrollbar-width: thin;
}

.cnr-filter-chips button {
	min-height: 2.6rem;
	padding: .55rem .85rem;
	white-space: nowrap;
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: 999px;
}

.cnr-filter-chips button.is-active {
	color: #fff;
	background: var(--cnr-primary);
	border-color: var(--cnr-primary);
}

.cnr-filter-chips small {
	opacity: .7;
}

.cnr-toolbar-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: .7rem;
}

.cnr-sort select,
.cnr-rate-label select,
.cnr-native-checkout select,
.cnr-native-checkout input:not([type="checkbox"]):not([type="radio"]),
.cnr-native-checkout textarea {
	display: block;
	width: 100%;
	min-height: var(--cnr-control);
	margin-top: .25rem;
	padding: .65rem .8rem;
	color: var(--cnr-text);
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: var(--cnr-radius);
}

.cnr-results-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 1rem;
	margin-block: clamp(1.2rem, 3vw, 2.4rem) 1rem;
}

.cnr-results-heading h2 {
	margin-bottom: 0;
	font-size: clamp(2rem, 5vw, 3.3rem);
}

.cnr-room-card {
	display: grid;
	min-width: 0;
	overflow: clip;
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: calc(var(--cnr-radius) + 4px);
	box-shadow: 0 8px 30px rgba(21, 24, 33, .055);
}

.cnr-room-card + .cnr-room-card {
	margin-top: 1rem;
}

.cnr-card-layout--vertical [data-cnr-results] {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--cnr-card-min)), 1fr));
	gap: 1rem;
}

.cnr-card-layout--vertical .cnr-room-card + .cnr-room-card {
	margin-top: 0;
}

.cnr-load-more {
	display: flex;
	justify-content: center;
	padding: 1.2rem 0;
}

.cnr-room-media {
	position: relative;
	min-height: 15rem;
	aspect-ratio: var(--cnr-image-ratio);
	overflow: hidden;
	background: color-mix(in srgb, var(--cnr-background) 82%, var(--cnr-primary));
}

.cnr-room-image,
.cnr-gallery-main,
.cnr-room-media > .cnr-image-fallback {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cnr-room-image {
	position: absolute;
	inset: 0;
}

.cnr-image-fallback {
	display: grid;
	min-height: 11rem;
	color: color-mix(in srgb, var(--cnr-primary) 46%, transparent);
	background: linear-gradient(145deg, var(--cnr-background), color-mix(in srgb, var(--cnr-background) 75%, var(--cnr-accent)));
	place-items: center;
}

.cnr-image-fallback svg {
	width: 4rem;
	height: 4rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1;
}

.cnr-photo-count {
	position: absolute;
	right: .7rem;
	bottom: .7rem;
	padding: .35rem .6rem;
	color: #fff;
	background: rgba(12, 14, 18, .76);
	border-radius: 4px;
	font-size: .72rem;
	backdrop-filter: blur(8px);
}

.cnr-room-body {
	display: grid;
	gap: 1rem;
	padding: clamp(1rem, 2.5vw, 1.55rem);
}

.cnr-room-card h3 {
	font-size: clamp(1.65rem, 4.5vw, 2.35rem);
}

.cnr-room-excerpt {
	color: var(--cnr-text-muted);
}

.cnr-room-facts {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem 1.1rem;
	padding: 0;
	color: var(--cnr-text-muted);
	font-size: .82rem;
	list-style: none;
}

.cnr-room-facts li + li::before {
	margin-right: 1.1rem;
	color: var(--cnr-border);
	content: "•";
}

.cnr-tags {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
	margin-bottom: 1rem;
}

.cnr-tags span {
	padding: .28rem .48rem;
	color: var(--cnr-text-muted);
	background: var(--cnr-background);
	border-radius: 3px;
	font-size: .7rem;
}

.cnr-room-action {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: center;
	padding-top: 1rem;
	border-top: 1px solid var(--cnr-border);
}

.cnr-room-action > small,
.cnr-room-action > span,
.cnr-modal-price > small,
.cnr-modal-price > span {
	color: var(--cnr-text-muted);
	font-size: .75rem;
}

.cnr-room-action > strong,
.cnr-modal-price > strong {
	font-size: clamp(1.5rem, 5vw, 2rem);
	font-variant-numeric: tabular-nums;
}

.cnr-rate-label {
	margin-block: .8rem;
}

.cnr-cart {
	min-width: 0;
	padding: 1rem;
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: calc(var(--cnr-radius) + 4px);
	box-shadow: 0 8px 30px rgba(21, 24, 33, .06);
}

.cnr-cart-head {
	padding: .5rem .5rem 1rem;
	text-align: center;
	border-bottom: 1px solid var(--cnr-border);
}

.cnr-cart-head h2 {
	margin: 0;
	font-size: clamp(1.7rem, 4vw, 2.2rem);
}

.cnr-cart-dates {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
	padding: 1rem .2rem;
	border-bottom: 1px solid var(--cnr-border);
}

.cnr-cart-dates div {
	display: grid;
}

.cnr-cart-dates span {
	color: var(--cnr-text-muted);
	font-size: .7rem;
}

.cnr-cart-dates strong {
	font-size: .82rem;
}

.cnr-cart-dates p {
	width: 100%;
	margin: .3rem 0 0;
	color: var(--cnr-text-muted);
	font-size: .75rem;
}

.cnr-cart-room {
	display: grid;
	grid-template-columns: 4.5rem minmax(0, 1fr) auto;
	gap: .7rem;
	align-items: start;
	padding-block: 1rem;
	border-bottom: 1px solid var(--cnr-border);
}

.cnr-cart-thumb,
.cnr-cart-room > .cnr-image-fallback {
	width: 4.5rem;
	height: 4.2rem;
	min-height: 0;
	object-fit: cover;
	border-radius: var(--cnr-radius);
}

.cnr-cart-room > div {
	display: grid;
	min-width: 0;
}

.cnr-cart-room small,
.cnr-cart-room span {
	color: var(--cnr-text-muted);
	font-size: .7rem;
}

.cnr-cart-room strong {
	overflow: hidden;
	font-size: .82rem;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cnr-cart-room .cnr-link {
	justify-self: start;
	margin-top: .3rem;
	font-size: .7rem;
}

.cnr-cart-room .cnr-icon-button {
	width: 2rem;
	height: 2rem;
}

.cnr-cart-total {
	padding-block: 1.1rem;
}

.cnr-cart-breakdown {
	display: grid;
	gap: .35rem;
	padding-block: 1rem;
	border-bottom: 1px solid var(--cnr-border);
}

.cnr-cart-breakdown > div {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	color: var(--cnr-text-muted);
	font-size: .78rem;
}

.cnr-cart-breakdown b {
	color: var(--cnr-text);
	font-variant-numeric: tabular-nums;
	text-align: right;
}

.cnr-cart-breakdown .cnr-cart-deposit {
	margin-top: .4rem;
	padding-top: .6rem;
	color: var(--cnr-accent);
	border-top: 1px dashed var(--cnr-border);
}

.cnr-cart-breakdown > p {
	margin: .4rem 0 0;
	color: var(--cnr-text-muted);
	font-size: .7rem;
}

.cnr-no-tax-notice .cnr-cart-breakdown > p {
	display: none;
}

.cnr-cart-total strong {
	font-size: 1.35rem;
	font-variant-numeric: tabular-nums;
}

.cnr-continue {
	width: 100%;
}

.cnr-secure {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .45rem;
	margin: .8rem 0 0;
	color: var(--cnr-text-muted);
	font-size: .7rem;
	text-align: center;
}

.cnr-secure svg {
	width: 1rem;
	height: 1rem;
}

.cnr-mobile-cart {
	position: fixed;
	z-index: 40;
	right: max(.65rem, env(safe-area-inset-right));
	bottom: max(.65rem, env(safe-area-inset-bottom));
	left: max(.65rem, env(safe-area-inset-left));
	display: flex;
	min-height: 4.4rem;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: .7rem 1rem;
	color: #fff;
	background: var(--cnr-primary);
	border: 0;
	border-radius: calc(var(--cnr-button-radius) + 5px);
	box-shadow: 0 14px 40px rgba(10, 15, 30, .32);
}

.cnr-mobile-cart span {
	display: grid;
	text-align: left;
}

.cnr-mobile-cart small {
	opacity: .72;
}

.cnr-mobile-cart strong {
	font-size: 1.1rem;
}

.cnr-mobile-cart b {
	padding-left: 1rem;
	border-left: 1px solid rgba(255, 255, 255, .3);
}

.cnr-empty {
	display: grid;
	min-height: 20rem;
	padding: clamp(2rem, 6vw, 5rem) 1.2rem;
	text-align: center;
	background: var(--cnr-surface);
	border: 1px dashed var(--cnr-border);
	border-radius: var(--cnr-radius);
	place-items: center;
	align-content: center;
}

.cnr-empty svg {
	width: 4rem;
	height: 4rem;
	margin-bottom: 1rem;
	fill: none;
	stroke: var(--cnr-accent);
	stroke-width: 1;
}

.cnr-empty p {
	max-width: 34rem;
	color: var(--cnr-text-muted);
}

.cnr-notice {
	padding: .85rem 1rem;
	border: 1px solid;
	border-radius: var(--cnr-radius);
}

.cnr-notice--error,
.cnr-empty--error {
	color: var(--cnr-error);
	background: color-mix(in srgb, var(--cnr-error) 7%, var(--cnr-surface));
	border-color: color-mix(in srgb, var(--cnr-error) 35%, transparent);
}

.cnr-toast {
	position: fixed;
	z-index: 120;
	right: 1rem;
	bottom: calc(5.8rem + env(safe-area-inset-bottom));
	max-width: min(27rem, calc(100vw - 2rem));
	padding: .8rem 1rem;
	color: #fff;
	background: var(--cnr-primary);
	border-radius: var(--cnr-radius);
	box-shadow: var(--cnr-shadow);
}

.cnr-toast--error { background: var(--cnr-error); }
.cnr-toast--warning { background: var(--cnr-warning); }

.cnr-live-region {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	clip-path: inset(50%);
}

.cnr-skeleton {
	pointer-events: none;
}

.cnr-skeleton-image,
.cnr-skeleton-body i,
.cnr-modal-loading i {
	display: block;
	background: linear-gradient(90deg, var(--cnr-background), color-mix(in srgb, var(--cnr-background) 65%, #fff), var(--cnr-background));
	background-size: 220% 100%;
	animation: cnr-shimmer 1.4s infinite linear;
}

.cnr-skeleton-image { min-height: 15rem; }
.cnr-skeleton-body { display: grid; gap: .8rem; padding: 1.2rem; }
.cnr-skeleton-body i { height: .8rem; border-radius: 999px; }
.cnr-skeleton-body i:nth-child(1) { width: 40%; height: 1.5rem; }
.cnr-skeleton-body i:nth-child(3) { width: 70%; }

@keyframes cnr-shimmer {
	to { background-position: -220% 0; }
}

.cnr-drawer-backdrop,
.cnr-modal-backdrop {
	position: fixed;
	z-index: 70;
	inset: 0;
	background: rgba(7, 10, 17, .55);
	backdrop-filter: blur(3px);
}

.cnr-filters-drawer {
	position: fixed;
	z-index: 80;
	right: 0;
	bottom: 0;
	left: 0;
	max-height: min(85vh, 50rem);
	overflow: auto;
	padding: 1rem max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
	background: var(--cnr-surface);
	border-radius: 1rem 1rem 0 0;
	box-shadow: var(--cnr-shadow);
}

.cnr-drawer-head {
	position: sticky;
	z-index: 2;
	top: -1rem;
	padding-block: 1rem;
	background: var(--cnr-surface);
}

.cnr-filter-group {
	margin: 0;
	padding: 1rem 0;
	border: 0;
	border-top: 1px solid var(--cnr-border);
}

.cnr-filter-group legend {
	padding: 0;
	font-family: var(--cnr-heading-font);
	font-size: 1.35rem;
	font-weight: 600;
}

.cnr-filter-group label {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: .65rem;
	align-items: center;
	min-height: 2.8rem;
}

.cnr-filter-group input {
	width: 1.2rem;
	height: 1.2rem;
	accent-color: var(--cnr-primary);
}

.cnr-drawer-actions {
	position: sticky;
	bottom: -1rem;
	margin: 1rem -1rem -1rem;
	padding: 1rem;
	background: var(--cnr-surface);
	border-top: 1px solid var(--cnr-border);
}

.cnr-modal {
	position: fixed;
	z-index: 100;
	inset: 0;
}

.cnr-modal-panel {
	position: fixed;
	z-index: 110;
	inset: 0;
	overflow: auto;
	padding-bottom: calc(1rem + env(safe-area-inset-bottom));
	background: var(--cnr-surface);
	overscroll-behavior: contain;
}

.cnr-modal-close {
	position: fixed;
	z-index: 115;
	top: max(.7rem, env(safe-area-inset-top));
	right: max(.7rem, env(safe-area-inset-right));
	display: grid;
	width: 2.8rem;
	height: 2.8rem;
	padding: 0;
	color: var(--cnr-text);
	background: rgba(255, 255, 255, .92);
	border: 1px solid var(--cnr-border);
	border-radius: 50%;
	box-shadow: 0 4px 15px rgba(0, 0, 0, .12);
	font-size: 1.7rem;
	place-items: center;
}

.cnr-gallery {
	background: var(--cnr-background);
}

.cnr-gallery [data-gallery-main] {
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.cnr-gallery-main {
	display: block;
}

.cnr-gallery-thumbs {
	display: flex;
	gap: .35rem;
	overflow-x: auto;
	padding: .45rem;
}

.cnr-gallery-thumbs button {
	width: 4.6rem;
	height: 3.6rem;
	flex: 0 0 auto;
	padding: 0;
	overflow: hidden;
	background: var(--cnr-background);
	border: 1px solid var(--cnr-border);
	border-radius: 3px;
}

.cnr-gallery-thumbs img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cnr-modal-copy,
.cnr-services {
	padding: clamp(1.1rem, 4vw, 2.3rem);
}

.cnr-modal-copy h2 {
	font-size: clamp(2rem, 8vw, 3.2rem);
}

.cnr-modal-price {
	display: grid;
	align-content: start;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--cnr-border);
}

.cnr-equipment-grid {
	display: grid;
	gap: .4rem;
	color: var(--cnr-text-muted);
	font-size: .85rem;
}

.cnr-services {
	background: var(--cnr-background);
	border-top: 1px solid var(--cnr-border);
}

.cnr-service-grid {
	display: grid;
	gap: .8rem;
}

.cnr-service-card {
	position: relative;
	display: grid;
	grid-template-columns: 6rem minmax(0, 1fr) auto;
	gap: .8rem;
	min-height: 7rem;
	padding: .55rem;
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: var(--cnr-radius);
	cursor: pointer;
}

.cnr-service-card.has-no-media {
	grid-template-columns: minmax(0, 1fr) auto;
}

.cnr-service-card.has-no-media .cnr-service-quantity {
	grid-column: 1;
}

.cnr-service-card.has-no-media > i {
	grid-column: 2;
}

.cnr-services-as-list .cnr-service-grid {
	grid-template-columns: 1fr !important;
}

.cnr-service-card:has(input:checked) {
	border-color: var(--cnr-accent);
	box-shadow: 0 0 0 1px var(--cnr-accent);
}

.cnr-service-media,
.cnr-service-media img,
.cnr-service-media .cnr-image-fallback {
	width: 6rem;
	height: 6rem;
	min-height: 0;
	object-fit: cover;
	border-radius: calc(var(--cnr-radius) - 1px);
}

.cnr-service-card p {
	display: -webkit-box;
	margin: .25rem 0;
	overflow: hidden;
	color: var(--cnr-text-muted);
	font-size: .75rem;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.cnr-service-card span {
	color: var(--cnr-accent);
	font-size: .78rem;
	font-weight: 700;
}

.cnr-service-card input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
}

.cnr-service-card > i {
	display: grid;
	width: 2.2rem;
	height: 2.2rem;
	align-self: center;
	border: 1px solid var(--cnr-accent);
	border-radius: 50%;
	font-style: normal;
	place-items: center;
}

.cnr-service-quantity {
	display: flex;
	grid-column: 2;
	gap: .4rem;
	align-items: center;
}

.cnr-service-quantity button {
	display: grid;
	width: 2rem;
	height: 2rem;
	padding: 0;
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: 50%;
	place-items: center;
}

.cnr-service-quantity output {
	min-width: 1.5rem;
	text-align: center;
}

.cnr-service-card > i {
	grid-column: 3;
	grid-row: 1 / span 2;
}

.cnr-modal-loading {
	display: grid;
	gap: 1rem;
	padding: 1rem;
}

.cnr-modal-loading i:first-child { min-height: 50vh; }
.cnr-modal-loading i:not(:first-child) { height: 1rem; border-radius: 999px; }

.cnr-rate-options {
	padding: clamp(1.1rem, 4vw, 2.3rem);
	border-top: 1px solid var(--cnr-border);
}

.cnr-rate-options > div {
	display: grid;
	gap: .75rem;
}

.cnr-rate-options article {
	display: grid;
	gap: 1rem;
	padding: 1rem;
	background: var(--cnr-background);
	border: 1px solid var(--cnr-border);
	border-radius: var(--cnr-radius);
}

.cnr-rate-options article > div {
	display: grid;
	align-content: start;
	gap: .3rem;
	min-width: 0;
}

.cnr-rate-options article > div:last-child {
	justify-items: start;
}

.cnr-rate-options p,
.cnr-rate-options small,
.cnr-rate-options span {
	margin: 0;
	color: var(--cnr-text-muted);
}

.cnr-rate-options b {
	font-size: 1.35rem;
	font-variant-numeric: tabular-nums;
}

.cnr-modal-open,
.cnr-drawer-open {
	overflow: hidden;
}

/* MotoPress remains the functional checkout; only its presentation is enhanced. */
.cnr-native-checkout {
	max-width: 1440px;
}

.cnr-steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: .3rem;
	margin-bottom: 1.2rem;
	overflow-x: auto;
}

.cnr-steps span {
	display: grid;
	min-width: 5.8rem;
	gap: .2rem;
	padding: .7rem;
	color: var(--cnr-text-muted);
	border-bottom: 2px solid var(--cnr-border);
	font-size: .74rem;
}

.cnr-steps span.is-current {
	color: var(--cnr-primary);
	border-color: var(--cnr-primary);
}

.cnr-steps span.is-done {
	color: var(--cnr-success);
	border-color: var(--cnr-success);
}

.cnr-native-checkout .mphb-checkout-form {
	display: grid;
	gap: 1rem;
}

.cnr-native-checkout :where(.mphb-room-details, .mphb-customer-details, .mphb-billing-fields, .mphb-price-breakdown, .mphb-total-price, .mphb-checkout-terms-wrapper, .mphb-gateways-list) {
	margin: 0 0 1rem;
	padding: clamp(1rem, 2vw, 1.5rem);
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: var(--cnr-radius);
}

.cnr-native-checkout :where(label) {
	display: block;
	margin-bottom: .25rem;
	font-size: .82rem;
	font-weight: 600;
}

.cnr-native-checkout :where(.mphb-required-fields-tip, .mphb-errors-wrapper, .mphb-error) {
	color: var(--cnr-error);
}

.cnr-native-checkout .mphb_sc_checkout-submit-wrapper button,
.cnr-native-checkout input[type="submit"],
.cnr-native-checkout button[type="submit"] {
	width: 100%;
	min-height: 3.3rem;
	padding: .8rem 1.2rem;
	color: #fff;
	background: var(--cnr-primary);
	border: 1px solid var(--cnr-primary);
	border-radius: var(--cnr-button-radius);
	font-weight: 700;
}

.cnr-native-checkout .mphb-gateways-list {
	display: grid;
	gap: .65rem;
	padding: 0;
	background: transparent;
	border: 0;
	list-style: none;
}

.cnr-native-checkout .mphb-gateway {
	padding: 1rem;
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: var(--cnr-radius);
}

.cnr-native-checkout .mphb_sc_checkout-services-list {
	display: grid;
	gap: .75rem;
	padding: 0;
	list-style: none;
}

.cnr-native-checkout .mphb_sc_checkout-services-list > li {
	display: grid;
	grid-template-columns: 5.5rem minmax(0, 1fr);
	gap: .35rem .8rem;
	align-items: center;
	padding: .6rem;
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: var(--cnr-radius);
}

.cnr-native-service-media {
	display: grid;
	grid-row: 1 / span 3;
	width: 5.5rem;
	height: 4.8rem;
	overflow: hidden;
	color: var(--cnr-accent);
	background: var(--cnr-background);
	border-radius: var(--cnr-radius);
	place-items: center;
}

.cnr-native-service-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cnr-native-confirmation .mphb_sc_booking_confirmation {
	display: grid;
	gap: 1rem;
}

.cnr-native-confirmation :where(.mphb-booking-details-section, .mphb-booking-details, .mphb-booking-reserved-rooms, .mphb-price-breakdown) {
	margin: 0;
	padding: clamp(1rem, 3vw, 1.6rem);
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: var(--cnr-radius);
	box-shadow: 0 8px 30px rgba(21, 24, 33, .055);
}

@container cnr (min-width: 600px) {
	.cnr-search {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

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

	.cnr-field--guests,
	.cnr-search-submit {
		grid-column: span 2;
	}

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

	.cnr-room-body {
		grid-template-columns: minmax(0, 1fr) minmax(12rem, 30%);
	}

	.cnr-room-action {
		padding: 0 0 0 1rem;
		border-top: 0;
		border-left: 1px solid var(--cnr-border);
	}

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

	.cnr-modal-copy {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(13rem, 28%);
		gap: 2rem;
	}

	.cnr-modal-price {
		margin: 0;
		padding: 0 0 0 1.5rem;
		border-top: 0;
		border-left: 1px solid var(--cnr-border);
	}

	.cnr-rate-options article {
		grid-template-columns: minmax(0, 1fr) minmax(13rem, 28%);
	}

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

@container cnr (min-width: 768px) {
	.cnr-search {
		grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(10rem, .72fr);
		align-items: stretch;
	}

	.cnr-field--guests,
	.cnr-search-submit {
		grid-column: auto;
	}

	.cnr-field {
		border: 0;
		border-right: 1px solid var(--cnr-border);
		border-radius: 0;
	}

	.cnr-guests-popover {
		right: 0;
		left: auto;
	}

	.cnr-toolbar {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: end;
	}

	.cnr-room-card {
		grid-template-columns: minmax(16rem, 36%) minmax(0, 1fr);
	}

	.cnr-card-layout--vertical .cnr-room-card {
		grid-template-columns: 1fr;
	}

	.cnr-room-media {
		min-height: 22rem;
	}

	.cnr-filters-drawer {
		top: 0;
		right: 0;
		bottom: 0;
		left: auto;
		width: min(28rem, 90vw);
		max-height: none;
		border-radius: 0;
	}

	.cnr-modal-panel {
		top: 3vh;
		right: max(3vw, env(safe-area-inset-right));
		bottom: 3vh;
		left: max(3vw, env(safe-area-inset-left));
		max-width: 1200px;
		margin-inline: auto;
		border-radius: calc(var(--cnr-radius) + 5px);
		box-shadow: var(--cnr-shadow);
	}

	.cnr-modal-close {
		position: absolute;
	}

	.cnr-gallery [data-gallery-main] {
		aspect-ratio: 16 / 8;
	}

	.cnr-native-checkout .mphb-checkout-form {
		grid-template-columns: minmax(0, 1fr) minmax(19rem, 33%);
		align-items: start;
	}
}

@container cnr (min-width: 1024px) {
	.cnr-shell {
		padding-bottom: 3rem;
	}

	.cnr-searchbar-shell {
		padding-bottom: 0;
	}

	.cnr-searchbar {
		grid-template-columns: minmax(11rem, 1fr) minmax(11rem, 1fr) minmax(15rem, 1.3fr) minmax(11rem, .72fr);
		align-items: stretch;
		gap: 0;
	}

	.cnr-searchbar-shell:not(.cnr-searchbar-style--minimal) .cnr-searchbar-field {
		padding-inline: clamp(.9rem, 1.6vw, 1.45rem);
		background: transparent;
		border: 0;
		border-right: 1px solid var(--cnr-searchbar-border);
		border-radius: 0;
	}

	.cnr-searchbar-style--minimal .cnr-searchbar {
		gap: .55rem;
	}

	.cnr-searchbar-submit {
		width: auto;
		margin-left: .65rem;
	}

	.cnr-booking {
		grid-template-columns: minmax(0, 1fr) minmax(21rem, var(--cnr-desktop-cart));
		align-items: start;
	}

	.cnr-cart {
		position: sticky;
		z-index: 5;
		top: 1.5rem;
		max-height: calc(100vh - 3rem);
		overflow: auto;
	}

	.cnr-no-sticky-cart .cnr-cart {
		position: static;
		max-height: none;
		overflow: visible;
	}

	.cnr-mobile-cart {
		display: none !important;
	}

	.cnr-service-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@container cnr (min-width: 1280px) {
	.cnr-room-card {
		grid-template-columns: minmax(20rem, 38%) minmax(0, 1fr);
	}

	.cnr-card-layout--vertical .cnr-room-card {
		grid-template-columns: 1fr;
	}

	.cnr-room-body {
		padding: 1.5rem 1.75rem;
	}

	.cnr-day {
		min-height: 2.7rem;
	}
}

@container cnr (min-width: 1600px) {
	.cnr-shell {
		--cnr-gutter: 4.5rem;
	}

	.cnr-booking {
		grid-template-columns: minmax(0, 1fr) var(--cnr-desktop-cart);
	}

	.cnr-room-media {
		min-height: 24rem;
	}
}

@container cnr (max-width: 599px) {
	.cnr-guests-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.cnr-guests-actions .cnr-button {
		width: 100%;
	}

	.cnr-searchbar-guests-panel {
		position: fixed;
		z-index: 105;
		top: auto;
		right: 0;
		bottom: 0;
		left: 0;
		width: auto;
		max-height: 86vh;
		padding: 1.15rem 1rem max(1.15rem, env(safe-area-inset-bottom));
		border-radius: 1rem 1rem 0 0;
	}

	.cnr-searchbar-calendar {
		position: fixed;
		z-index: 105;
		top: auto;
		right: 0;
		bottom: 0;
		left: 0;
		width: auto;
		max-height: 92vh;
		padding: 1rem 1rem max(1rem, env(safe-area-inset-bottom));
		transform: none;
		border-radius: 1rem 1rem 0 0;
	}

	.cnr-searchbar-calendar .cnr-calendar-head {
		align-items: start;
	}

	.cnr-searchbar-submit {
		min-height: max(3.55rem, var(--cnr-touch-target));
	}

	.cnr-month:nth-child(2) {
		display: none;
	}

	.cnr-mobile-two-months .cnr-month:nth-child(2) {
		display: block;
	}

	.cnr-results-heading {
		align-items: start;
		flex-direction: column;
	}

	.cnr-cart {
		position: fixed;
		z-index: 85;
		right: 0;
		bottom: 0;
		left: 0;
		max-height: 86vh;
		overflow: auto;
		padding-bottom: max(1rem, env(safe-area-inset-bottom));
		transform: translateY(105%);
		transition: transform .22s ease;
		border-radius: 1rem 1rem 0 0;
	}

	.cnr-cart.is-mobile-open {
		transform: none;
	}

	.cnr-no-mobile-cart .cnr-cart {
		position: static;
		max-height: none;
		overflow: visible;
		transform: none;
		border-radius: var(--cnr-radius);
	}

	.cnr-no-mobile-cart {
		padding-bottom: clamp(1rem, 2.5vw, 3rem);
	}

	.cnr-room-facts li + li::before {
		display: none;
	}
}

/* Finition pleine largeur et contraste des composants autonomes (2.2). */
.cnr-room-booking.cnr-shell,
.cnr-reassurance.cnr-shell,
.cnr-native-confirmation.cnr-shell {
	width: 100vw;
	max-width: none;
	margin-inline: calc(50% - 50vw);
	padding-inline: clamp(14px, 3vw, 56px);
}

.cnr-room-booking.cnr-shell {
	background: var(--cnr-room-background, transparent);
}

.cnr-room-booking-layout,
.cnr-reassurance-section {
	width: 100%;
	max-width: var(--cnr-content-max, 1600px);
}

.cnr-room-booking :where(input, select, textarea),
.cnr-native-checkout :where(input, select, textarea) {
	color: var(--cnr-text) !important;
	-webkit-text-fill-color: var(--cnr-text) !important;
	caret-color: var(--cnr-accent);
	opacity: 1 !important;
}

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

.cnr-preset--love-room .cnr-room-booking-panel :where(h2, h3),
.cnr-preset--love-room .cnr-reassurance-heading h2 {
	color: var(--cnr-accent);
}

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;
}

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

@media (max-width: 767px) {
	.cnr-room-booking.cnr-shell,
	.cnr-reassurance.cnr-shell,
	.cnr-native-confirmation.cnr-shell {
		padding-inline: 10px;
	}
}

html.cnr-searchbar-open {
	overflow: hidden;
}

html.cnr-searchbar-calendar-open {
	overflow: hidden;
}

html.cnr-searchbar-open .cnr-searchbar-shell,
html.cnr-searchbar-calendar-open .cnr-searchbar-shell {
	z-index: 99999;
}

.cnr-no-mobile-cart .cnr-mobile-cart {
	display: none !important;
}

.cnr-challenge {
	position: fixed;
	z-index: 120;
	inset: 0;
	display: grid;
	place-items: center;
	padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
	background: rgb(12 18 35 / 72%);
	backdrop-filter: blur(5px);
}

.cnr-challenge-panel {
	width: min(100%, 31rem);
	max-height: 100%;
	overflow: auto;
	padding: clamp(1.4rem, 5vw, 2.4rem);
	border: 1px solid var(--cnr-border);
	border-radius: var(--cnr-radius);
	background: var(--cnr-surface);
	box-shadow: var(--cnr-shadow);
	color: var(--cnr-text);
}

.cnr-challenge-panel h2 {
	margin: .35rem 0 .75rem;
	font-family: var(--cnr-heading-font);
	font-size: clamp(1.55rem, 5vw, 2.2rem);
}

.cnr-challenge-panel form {
	display: grid;
	gap: .65rem;
	margin-top: 1.25rem;
}

.cnr-challenge-panel input {
	width: 100%;
	min-height: var(--cnr-touch-target);
	padding: .75rem .9rem;
	border: 1px solid var(--cnr-border);
	border-radius: var(--cnr-button-radius);
	background: var(--cnr-background);
	color: var(--cnr-text);
	font: inherit;
}

.cnr-challenge-panel form > div {
	display: flex;
	flex-wrap: wrap;
	justify-content: end;
	gap: .75rem;
	margin-top: .5rem;
}

.cnr-months--single .cnr-month:nth-child(2) {
	display: none !important;
}

@media (max-height: 620px) and (orientation: landscape) {
	.cnr-modal-panel {
		inset: 0;
		border-radius: 0;
	}

	.cnr-calendar {
		max-height: 82vh;
		overflow: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cnr-shell *,
	.cnr-shell *::before,
	.cnr-shell *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}

@media (forced-colors: active) {
	.cnr-shell :where(button, input, select, textarea, .cnr-room-card, .cnr-cart, .cnr-calendar) {
		border: 1px solid ButtonText;
	}
}

/* Réservation directe d'un type d'hébergement */
.cnr-room-booking {
	padding-block: clamp(1rem, 3vw, 3.25rem);
	background:
		radial-gradient(circle at 100% 0, color-mix(in srgb, var(--cnr-accent) 9%, transparent), transparent 34rem),
		var(--cnr-background);
}

/*
 * Le formulaire de disponibilité seul doit respecter la largeur de son
 * conteneur Avada. Contrairement au shortcode logement complet, il ne force
 * ni pleine largeur de viewport, ni fond de page.
 */
.cnr-room-availability.cnr-shell {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding: 0;
	background: var(--cnr-availability-background, transparent);
}

.cnr-room-availability-panel {
	width: 100%;
	padding: clamp(1rem, 3cqi, 1.75rem);
	color: var(--cnr-text);
	background: transparent;
}

.cnr-room-availability .cnr-room-booking-form {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.cnr-room-availability .cnr-room-booking-form > h3 {
	margin: 0 0 .25rem;
	color: var(--cnr-text);
	font-family: var(--cnr-heading-font);
	font-size: clamp(1.55rem, 6cqi, 2.25rem);
	font-weight: 500;
	line-height: 1.12;
	text-wrap: balance;
}

.cnr-room-booking-layout {
	display: grid;
	gap: clamp(1.35rem, 4vw, 4rem);
	max-width: 1500px;
	margin-inline: auto;
}

.cnr-room-booking-gallery {
	min-width: 0;
}

.cnr-room-booking-main-image {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: color-mix(in srgb, var(--cnr-primary) 8%, var(--cnr-surface));
	border-radius: calc(var(--cnr-radius) + 5px);
	box-shadow: 0 24px 70px rgb(17 26 53 / 13%);
}

.cnr-room-booking-main-image > img,
.cnr-room-booking-main-image > .cnr-image-fallback {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cnr-room-booking-main-image > img {
	transition: opacity .18s ease, transform .45s ease;
}

.cnr-room-booking-main-image:hover > img {
	transform: scale(1.012);
}

.cnr-room-gallery-arrow {
	position: absolute;
	z-index: 2;
	top: 50%;
	display: grid;
	width: max(2.85rem, var(--cnr-touch-target));
	height: max(2.85rem, var(--cnr-touch-target));
	padding: 0;
	place-items: center;
	transform: translateY(-50%);
	color: var(--cnr-text);
	background: rgb(255 255 255 / 88%);
	border: 1px solid rgb(255 255 255 / 65%);
	border-radius: 50%;
	box-shadow: 0 10px 28px rgb(12 18 35 / 18%);
	backdrop-filter: blur(10px);
}

.cnr-room-gallery-arrow.is-previous {
	left: 1rem;
}

.cnr-room-gallery-arrow.is-next {
	right: 1rem;
}

.cnr-room-booking-thumbs {
	display: flex;
	gap: .65rem;
	margin-top: .8rem;
	padding: .15rem .1rem .35rem;
	overflow-x: auto;
	scrollbar-width: thin;
	scroll-snap-type: x proximity;
}

.cnr-room-booking-thumbs button {
	flex: 0 0 clamp(5.4rem, 11vw, 8.5rem);
	aspect-ratio: 4 / 3;
	padding: 0;
	overflow: hidden;
	scroll-snap-align: start;
	background: var(--cnr-surface);
	border: 2px solid transparent;
	border-radius: max(3px, calc(var(--cnr-radius) - 1px));
	opacity: .68;
	transition: opacity .18s ease, border-color .18s ease, transform .18s ease;
}

.cnr-room-booking-thumbs button:hover,
.cnr-room-booking-thumbs button.is-current {
	border-color: var(--cnr-accent);
	opacity: 1;
	transform: translateY(-2px);
}

.cnr-room-booking-thumbs img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cnr-room-booking-panel {
	align-self: start;
	padding: clamp(1.2rem, 3vw, 2.3rem);
	background: color-mix(in srgb, var(--cnr-surface) 96%, transparent);
	border: 1px solid var(--cnr-border);
	border-radius: calc(var(--cnr-radius) + 5px);
	box-shadow: var(--cnr-shadow);
	backdrop-filter: blur(16px);
}

.cnr-room-booking-panel h2,
.cnr-room-booking-panel h3,
.cnr-room-calendar-panel h2 {
	margin: .15rem 0 .6rem;
	color: var(--cnr-text);
	font-family: var(--cnr-heading-font);
	font-weight: 500;
	line-height: 1.05;
	text-wrap: balance;
}

.cnr-room-booking-panel h2 {
	font-size: clamp(2rem, 5vw, 3.8rem);
}

.cnr-room-booking-panel h3 {
	font-size: clamp(1.4rem, 2.5vw, 1.8rem);
}

.cnr-room-booking-panel .cnr-room-title {
	font-size: clamp(2rem, 5vw, 3.8rem);
}

.cnr-room-booking-subtitle,
.cnr-room-booking-description {
	color: var(--cnr-text-muted);
}

.cnr-room-booking-description {
	margin-block: 1rem 1.45rem;
}

.cnr-room-booking-form {
	display: grid;
	gap: 1rem;
	margin-top: clamp(1.25rem, 3vw, 2rem);
	padding-top: clamp(1.1rem, 2vw, 1.6rem);
	border-top: 1px solid var(--cnr-border);
}

.cnr-room-booking-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .8rem;
}

.cnr-room-booking-fields label,
.cnr-room-booking-offer label {
	display: grid;
	gap: .35rem;
	color: var(--cnr-text-muted);
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .035em;
}

.cnr-room-booking-fields input,
.cnr-room-date-trigger,
.cnr-room-booking-offer select {
	width: 100%;
	min-height: var(--cnr-control);
	padding: .72rem .8rem;
	color: var(--cnr-text);
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: var(--cnr-button-radius);
	font-size: .95rem;
	font-weight: 500;
	letter-spacing: 0;
}

.cnr-room-date-trigger {
	display: flex;
	align-items: center;
	gap: .65rem;
	text-align: left;
}

.cnr-room-date-trigger svg {
	width: 1.25rem;
	height: 1.25rem;
	flex: 0 0 auto;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.5;
}

.cnr-room-date-trigger strong {
	overflow: hidden;
	font-weight: 600;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cnr-room-calendar-button {
	justify-self: start;
	min-height: var(--cnr-touch-target);
	text-align: left;
}

.cnr-room-calendar-button span {
	margin-right: .45rem;
	font-size: 1.15rem;
}

.cnr-room-booking-status {
	min-height: 0;
	margin-top: 1rem;
	padding: 0;
	border-radius: var(--cnr-button-radius);
}

.cnr-room-booking-status:not(:empty) {
	padding: .8rem .9rem;
	background: color-mix(in srgb, var(--cnr-primary) 6%, var(--cnr-surface));
	border: 1px solid var(--cnr-border);
}

.cnr-room-booking-status.is-success {
	color: var(--cnr-success);
}

.cnr-room-booking-status.is-warning {
	color: var(--cnr-warning);
	background: color-mix(in srgb, var(--cnr-warning) 8%, var(--cnr-surface));
}

.cnr-room-booking-status.is-error {
	color: var(--cnr-error);
	background: color-mix(in srgb, var(--cnr-error) 7%, var(--cnr-surface));
}

.cnr-room-booking-offer {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1rem;
	margin-top: 1rem;
	padding: 1.1rem;
	background: color-mix(in srgb, var(--cnr-success) 7%, var(--cnr-surface));
	border: 1px solid color-mix(in srgb, var(--cnr-success) 25%, var(--cnr-border));
	border-radius: var(--cnr-radius);
}

.cnr-room-booking-offer > div {
	min-width: 0;
}

.cnr-room-booking-offer > .cnr-button {
	width: 100%;
	white-space: normal;
}

.cnr-room-booking-offer p {
	margin-bottom: .65rem;
}

.cnr-room-booking-price {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: .75rem;
	margin: .9rem 0 0 !important;
}

.cnr-room-booking-price small {
	color: var(--cnr-text-muted);
}

.cnr-room-booking-price strong {
	min-width: 0;
	font-family: var(--cnr-heading-font);
	font-size: clamp(1.55rem, 8cqi, 2.3rem);
	font-weight: 600;
	text-align: right;
	white-space: nowrap;
}

.cnr-room-calendar-dialog {
	position: fixed;
	z-index: 110;
	inset: 0;
	display: grid;
	padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
	place-items: center;
}

.cnr-room-calendar-dialog--portaled {
	z-index: 2147483004;
}

.cnr-room-calendar-backdrop {
	position: absolute;
	inset: 0;
	background: rgb(10 15 29 / 72%);
	backdrop-filter: blur(7px);
}

.cnr-room-calendar-panel {
	position: relative;
	z-index: 1;
	width: min(100%, 62rem);
	max-height: min(92vh, 55rem);
	overflow: auto;
	padding: clamp(1.1rem, 3vw, 2rem);
	color: var(--cnr-text);
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: calc(var(--cnr-radius) + 6px);
	box-shadow: 0 30px 100px rgb(5 10 25 / 35%);
}

.cnr-room-calendar-panel > header {
	display: flex;
	align-items: start;
	justify-content: space-between;
	gap: 1rem;
}

.cnr-room-calendar-panel > header h2 {
	font-size: clamp(1.7rem, 4vw, 2.7rem);
}

.cnr-room-calendar-panel > nav {
	position: relative;
	z-index: 3;
	display: flex;
	justify-content: end;
	gap: .5rem;
	margin: .6rem 0 1rem;
}

.cnr-room-calendar-panel > footer {
	display: flex;
	justify-content: end;
	margin-top: 1.2rem;
	padding-top: 1rem;
	border-top: 1px solid var(--cnr-border);
}

/* Avis, localisation, informations pratiques et contact */
.cnr-reassurance {
	padding-block: 0 clamp(2rem, 5vw, 5rem);
	background: var(--cnr-background);
}

.cnr-reassurance-section {
	max-width: 1500px;
	margin-inline: auto;
	padding-block: clamp(2.2rem, 5vw, 5rem);
	border-top: 1px solid var(--cnr-border);
	content-visibility: auto;
	contain-intrinsic-size: 1px 600px;
}

.cnr-reassurance-heading {
	max-width: 55rem;
	margin-bottom: clamp(1.25rem, 3vw, 2rem);
}

.cnr-reassurance-heading h2 {
	margin: .1rem 0 .35rem;
	color: var(--cnr-text);
	font-family: var(--cnr-heading-font);
	font-size: clamp(2rem, 5vw, 3.4rem);
	font-weight: 500;
	line-height: 1.05;
}

.cnr-reassurance-heading > p:last-child {
	color: var(--cnr-text-muted);
}

.cnr-reviews-widget {
	min-width: 0;
	overflow: hidden;
}

.cnr-reviews-widget :where(iframe, img) {
	max-width: 100%;
}

.cnr-map-frame {
	position: relative;
	min-height: clamp(23rem, 48vw, 40rem);
	overflow: hidden;
	background: color-mix(in srgb, var(--cnr-primary) 8%, var(--cnr-surface));
	border: 1px solid var(--cnr-border);
	border-radius: calc(var(--cnr-radius) + 4px);
	box-shadow: 0 16px 50px rgb(17 26 53 / 10%);
}

.cnr-map-frame iframe {
	display: block;
	width: 100%;
	height: clamp(23rem, 48vw, 40rem);
	border: 0;
}

.cnr-map-frame address {
	position: absolute;
	z-index: 2;
	top: clamp(.8rem, 2vw, 1.5rem);
	left: clamp(.8rem, 2vw, 1.5rem);
	display: grid;
	max-width: min(24rem, calc(100% - 1.6rem));
	gap: .35rem;
	padding: clamp(1rem, 2.5vw, 1.6rem);
	color: var(--cnr-text);
	background: rgb(255 255 255 / 93%);
	border: 1px solid rgb(255 255 255 / 70%);
	border-radius: var(--cnr-radius);
	box-shadow: 0 14px 40px rgb(17 26 53 / 15%);
	font-style: normal;
	backdrop-filter: blur(12px);
}

.cnr-map-frame address small {
	color: var(--cnr-text-muted);
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .13em;
}

.cnr-map-frame address strong {
	white-space: normal;
}

.cnr-map-action {
	display: flex;
	justify-content: end;
	margin-top: 1rem;
}

.cnr-practical dl {
	margin: 0;
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: var(--cnr-radius);
}

.cnr-practical dl > div {
	display: grid;
	grid-template-columns: minmax(11rem, 1fr) minmax(0, 1fr);
	gap: 1rem;
	padding: 1.1rem clamp(1rem, 3vw, 1.8rem);
}

.cnr-practical dl > div + div {
	border-top: 1px solid var(--cnr-border);
}

.cnr-practical dt {
	display: flex;
	align-items: center;
	gap: .75rem;
	font-weight: 750;
}

.cnr-practical dt span {
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	color: var(--cnr-accent);
	border: 1px solid var(--cnr-border);
	border-radius: 50%;
}

.cnr-practical dd {
	margin: 0;
	color: var(--cnr-text-muted);
}

.cnr-contact-grid {
	display: grid;
	gap: .85rem;
}

.cnr-contact-grid a {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	grid-template-rows: auto auto;
	column-gap: 1rem;
	padding: clamp(1rem, 2.5vw, 1.45rem);
	color: var(--cnr-text);
	text-decoration: none;
	background: var(--cnr-surface);
	border: 1px solid var(--cnr-border);
	border-radius: var(--cnr-radius);
	transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.cnr-contact-grid a:hover {
	border-color: var(--cnr-accent);
	box-shadow: 0 14px 35px rgb(17 26 53 / 9%);
	transform: translateY(-2px);
}

.cnr-contact-grid a > span {
	grid-row: 1 / 3;
	align-self: center;
	color: var(--cnr-accent);
	font-size: 1.55rem;
}

.cnr-contact-grid small {
	color: var(--cnr-text-muted);
}

.cnr-contact-grid strong {
	min-width: 0;
	overflow-wrap: anywhere;
}

@container cnr (min-width: 700px) {
	.cnr-contact-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cnr-contact-grid.is-single {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (min-width: 768px) {
	.cnr-searchbar-backdrop--portaled,
	.cnr-searchbar-guests-backdrop--portaled {
		display: none !important;
	}
}

@media (max-width: 767px) {
	.cnr-searchbar-guests-panel--portaled {
		position: fixed;
		inset: auto 0 0;
		width: auto;
		max-height: calc(100dvh - max(1rem, env(safe-area-inset-top)));
		padding: 1.15rem 1rem max(1.15rem, env(safe-area-inset-bottom));
		transform: none;
		border-radius: 1rem 1rem 0 0;
	}

	.cnr-searchbar-calendar--portaled {
		position: fixed;
		inset: auto 0 0;
		width: auto;
		max-height: calc(100dvh - max(1rem, env(safe-area-inset-top)));
		padding: 1rem 1rem max(1rem, env(safe-area-inset-bottom));
		transform: none;
		border-radius: 1rem 1rem 0 0;
	}

	.cnr-searchbar-calendar--portaled .cnr-month:nth-child(2) {
		display: none;
	}

	.cnr-searchbar-calendar--portaled .cnr-months {
		grid-template-columns: minmax(0, 1fr);
	}

	.cnr-searchbar-calendar--portaled :where(.cnr-day, .cnr-day-spacer) {
		height: 2.7rem;
		min-height: 2.7rem;
	}

	.cnr-room-calendar-dialog--portaled {
		padding: 0;
		align-items: end;
	}

	.cnr-room-calendar-dialog--portaled .cnr-room-calendar-panel {
		width: 100%;
		max-height: calc(100dvh - max(.5rem, env(safe-area-inset-top)));
		padding: 1rem;
		border-radius: 1rem 1rem 0 0;
	}
}

@container cnr (min-width: 960px) {
	.cnr-room-booking-layout {
		grid-template-columns: minmax(0, 1.65fr) minmax(22rem, .9fr);
		align-items: start;
	}

	.cnr-room-booking-panel {
		position: sticky;
		top: 1.5rem;
	}
}

@container cnr (max-width: 599px) {
	.cnr-room-booking {
		padding-inline: .8rem;
		padding-bottom: 1.25rem;
	}

	.cnr-room-booking-main-image {
		aspect-ratio: 4 / 3;
		border-radius: var(--cnr-radius);
	}

	.cnr-room-gallery-arrow {
		width: var(--cnr-touch-target);
		height: var(--cnr-touch-target);
	}

	.cnr-room-gallery-arrow.is-previous {
		left: .55rem;
	}

	.cnr-room-gallery-arrow.is-next {
		right: .55rem;
	}

	.cnr-room-booking-panel {
		padding: 1rem;
		border-radius: var(--cnr-radius);
	}

	.cnr-room-booking-fields {
		grid-template-columns: 1fr;
	}

	.cnr-room-booking-form > .cnr-button,
	.cnr-room-booking-offer > .cnr-button,
	.cnr-room-calendar-panel > footer .cnr-button,
	.cnr-map-action .cnr-button {
		width: 100%;
	}

	.cnr-room-calendar-dialog {
		padding: 0;
		align-items: end;
	}

	.cnr-room-calendar-panel {
		width: 100%;
		max-height: 94vh;
		padding: 1rem;
		border-radius: 1rem 1rem 0 0;
	}

	.cnr-reassurance {
		padding-inline: 1rem;
	}

	.cnr-reassurance-section {
		padding-block: 2.4rem;
	}

	.cnr-map-frame address {
		position: relative;
		top: auto;
		left: auto;
		max-width: none;
		margin: .75rem;
	}

	.cnr-map-frame {
		display: flex;
		min-height: 0;
		flex-direction: column;
	}

	.cnr-map-frame iframe {
		order: 2;
		height: 23rem;
	}

	.cnr-practical dl > div {
		grid-template-columns: 1fr;
		gap: .45rem;
	}
}
