.acr-listings,
.acr-listings *,
.acr-search-wrap,
.acr-search-wrap *,
.acr-compact-calendar,
.acr-compact-calendar * {
	box-sizing: border-box;
}
.acr-listings,
.acr-search-wrap,
.acr-compact-calendar {
	--acr-listing-text: #203b3d;
	--acr-listing-muted: #71817d;
	--acr-listing-border: #dfe8e3;
	--acr-listing-primary: #176f78;
	--acr-listing-surface: #fff;
	color: var(--acr-listing-text);
	font: inherit;
}
.acr-listings {
	width: 100%;
	max-width: 1360px;
	margin-inline: auto;
}
.acr-listings-intro {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 1rem;
	margin: 0 0 1.25rem;
}
.acr-listings-intro h2 {
	margin: 0 0 .35rem;
	color: var(--acr-listing-text);
	font-size: clamp(1.55rem, 2.8vw, 2.2rem);
	font-weight: 650;
	letter-spacing: -.035em;
	line-height: 1.12;
	text-wrap: balance;
}
.acr-listings-intro p {
	max-width: 62ch;
	margin: 0;
	color: var(--acr-listing-muted);
	line-height: 1.55;
}
.acr-listings-kicker {
	margin-bottom: .25rem !important;
	color: var(--acr-listing-primary) !important;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
}
.acr-listings-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr));
	align-items: start;
	gap: 1.25rem 1rem;
}
.acr-listing-card {
	position: relative;
	min-width: 0;
	background: transparent;
	border-radius: 18px;
	transition: transform .2s ease;
}
.acr-listing-card:hover {
	z-index: 4;
	transform: translateY(-2px);
}
.acr-listing-photo {
	position: relative;
	overflow: hidden;
	width: 100%;
	aspect-ratio: 1.08 / 1;
	background: #e7ede9;
	border-radius: 17px;
}
.acr-listing-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .38s cubic-bezier(.2,.7,.25,1);
}
.acr-listing-card:hover .acr-listing-photo img {
	transform: scale(1.035);
}
.acr-listing-placeholder {
	display: grid;
	width: 100%;
	height: 100%;
	place-items: center;
	padding: 1rem;
	color: var(--acr-listing-muted);
	text-align: center;
}
.acr-favorite-badge {
	position: absolute;
	top: .7rem;
	left: .7rem;
	max-width: calc(100% - 3.7rem);
	padding: .42rem .68rem;
	color: #283532;
	background: rgba(255,255,255,.94);
	border: 1px solid rgba(255,255,255,.7);
	border-radius: 999px;
	box-shadow: 0 2px 8px rgba(19,39,35,.12);
	font-size: .68rem;
	font-weight: 650;
	line-height: 1.1;
}
.acr-save-room {
	position: absolute;
	top: .48rem;
	right: .56rem;
	display: grid;
	width: 2.45rem;
	height: 2.45rem;
	place-items: center;
	padding: 0;
	color: #fff;
	background: rgba(18,31,29,.26);
	border: 0;
	border-radius: 50%;
	text-shadow: 0 1px 3px rgba(0,0,0,.65);
	cursor: pointer;
	transition: transform .18s ease, background .18s ease;
}
.acr-save-room span { font-size: 1.6rem; line-height: 1; }
.acr-save-room:hover { transform: scale(1.08); background: rgba(18,31,29,.46); }
.acr-save-room[aria-pressed="true"] { color: #c34e49; background: #fff; text-shadow: none; }
.acr-listing-copy { padding: .58rem .2rem .15rem; }
.acr-listing-heading {
	display: flex;
	align-items: start;
	justify-content: space-between;
	gap: .5rem;
}
.acr-listing-heading h3 {
	margin: 0;
	color: var(--acr-listing-text);
	font-size: .98rem;
	font-weight: 600;
	line-height: 1.35;
	text-wrap: pretty;
}
.acr-listing-rating {
	flex: 0 0 auto;
	color: #273a35;
	font-size: .82rem;
	font-variant-numeric: tabular-nums;
}
.acr-listing-rating span { color: #b9783c; }
.acr-listing-reviews,
.acr-listing-meta {
	margin: .18rem 0 0;
	color: var(--acr-listing-muted);
	font-size: .82rem;
	line-height: 1.35;
}
.acr-listing-price {
	display: flex;
	flex-wrap: wrap;
	gap: .27rem;
	margin: .38rem 0 .55rem;
	font-size: .83rem;
	line-height: 1.35;
}
.acr-listing-price strong {
	color: var(--acr-listing-text);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}
.acr-listing-price span { color: var(--acr-listing-muted); }
.acr-book-actions { position: relative; }
.acr-book-now {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	min-height: 2.55rem;
	padding: .58rem .82rem;
	color: #fff;
	background: var(--acr-listing-primary);
	border: 1px solid var(--acr-listing-primary);
	border-radius: 8px;
	font: inherit;
	font-size: .84rem;
	font-weight: 650;
	cursor: pointer;
	transition: background .18s ease, transform .18s ease;
}
.acr-book-now:hover { background: #115960; transform: translateY(-1px); }
.acr-book-now:focus-visible,
.acr-save-room:focus-visible,
.acr-book-menu a:focus-visible,
.acr-search-panel :focus-visible,
.acr-compact-calendar button:focus-visible {
	outline: 3px solid rgba(23,111,120,.38);
	outline-offset: 2px;
}
.acr-book-menu {
	position: absolute;
	z-index: 6;
	top: calc(100% + .38rem);
	left: 0;
	display: grid;
	width: 100%;
	padding: .3rem;
	background: var(--acr-listing-surface);
	border: 1px solid var(--acr-listing-border);
	border-radius: 11px;
	box-shadow: 0 12px 30px rgba(22,57,50,.16);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-5px);
	transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.acr-book-actions:hover .acr-book-menu,
.acr-book-actions:focus-within .acr-book-menu,
.acr-listing-card.is-book-menu-open .acr-book-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.acr-book-menu a,
.acr-book-menu .is-unconfigured {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 2.45rem;
	padding: .52rem .65rem;
	color: var(--acr-listing-text);
	background: transparent;
	border-radius: 7px;
	font-size: .81rem;
	font-weight: 550;
	letter-spacing: .035em;
	text-transform: uppercase;
	text-decoration: none;
}
.acr-book-menu a:hover { color: var(--acr-listing-primary); background: #f1f7f4; }
.acr-book-menu .is-unconfigured { color: #98a29d; cursor: help; }
.acr-listings-empty {
	margin: 1rem 0;
	padding: 1rem 1.1rem;
	color: var(--acr-listing-muted);
	background: #f4f8f6;
	border-left: 3px solid #d99454;
	border-radius: 4px 10px 10px 4px;
}

.acr-search-wrap { width: 100%; }
.acr-search-panel {
	display: grid;
	grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr) auto;
	align-items: stretch;
	gap: 0;
	max-width: 940px;
	margin: 1.25rem auto 1.75rem;
	padding: .42rem;
	background: #fff;
	border: 1px solid #d7e1dc;
	border-radius: 999px;
	box-shadow: 0 5px 18px rgba(22,57,50,.09), 0 1px 3px rgba(22,57,50,.05);
	transition: box-shadow .2s ease, border-color .2s ease;
}
.acr-search-panel:focus-within {
	border-color: #b8cbc3;
	box-shadow: 0 8px 25px rgba(22,57,50,.13), 0 1px 3px rgba(22,57,50,.06);
}
.acr-search-panel .acr-search-segment {
	display: grid;
	align-content: center;
	gap: .18rem;
	min-width: 0;
	margin: 0;
	padding: .55rem 1.2rem;
	color: #3e514b;
	border-radius: 999px;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .015em;
	transition: background .18s ease, box-shadow .18s ease;
}
.acr-search-panel .acr-search-date + .acr-search-date,
.acr-search-panel .acr-search-who { border-left: 1px solid #e5ebe8; }
.acr-search-who {
	display: grid;
	align-content: center;
	min-width: 0;
	margin: 0;
	padding: .42rem 1.2rem .38rem;
	border: 0;
	border-radius: 999px;
	transition: background .18s ease, box-shadow .18s ease;
}
.acr-search-who legend {
	padding: 0;
	color: #3e514b;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .015em;
}
.acr-search-who-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
.acr-search-who-fields label { display: grid; grid-template-columns: auto minmax(1.6rem,auto); align-items: center; gap: .35rem; min-width: 0; margin: 0; color: var(--acr-listing-muted); font-size: .68rem; font-weight: 550; }
.acr-search-who-fields label span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acr-search-panel input {
	width: 100%;
	min-width: 0;
	padding: 0;
	color: var(--acr-listing-text);
	background: transparent;
	border: 0;
	font: inherit;
	font-size: .83rem;
	font-weight: 550;
}
.acr-search-panel input:focus { outline: 0; }
.acr-search-panel .acr-search-segment:focus-within,
.acr-search-panel .acr-search-who:focus-within { background: #f4f8f6; box-shadow: inset 0 0 0 1px #dce8e2; }
.acr-search-panel .acr-search-submit {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	min-width: 7.3rem;
	min-height: 3.35rem;
	margin: 0;
	padding: .55rem .9rem .55rem 1rem;
	color: #fff;
	background: var(--acr-listing-primary);
	border: 0;
	border-radius: 999px;
	font: inherit;
	font-size: .82rem;
	font-weight: 700;
	cursor: pointer;
	transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.acr-search-panel .acr-search-submit:hover { background: #115960; box-shadow: 0 3px 10px rgba(17,89,96,.2); transform: translateY(-1px); }
.acr-search-icon { display: grid; width: 1.7rem; height: 1.7rem; place-items: center; background: rgba(255,255,255,.15); border-radius: 50%; }
.acr-search-icon svg { display: block; width: .9rem; height: .9rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 2; }
.acr-results-intro { margin-bottom: .25rem; }
.acr-results-count { margin: -.35rem 0 1rem; color: var(--acr-listing-muted); font-size: .84rem; }
.acr-search-results .acr-listings-grid { margin-top: .4rem; }

.acr-compact-calendar {
	width: min(100%, 360px);
	padding: 1rem;
	background: #fff;
	border: 1px solid var(--acr-listing-border);
	border-radius: 13px;
	box-shadow: 0 6px 22px rgba(22,57,50,.07);
}
.acr-compact-heading { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-bottom: .8rem; }
.acr-compact-heading > div > p { margin: 0 0 .12rem; color: var(--acr-listing-primary); font-size: .64rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.acr-compact-heading h3 { margin: 0; color: var(--acr-listing-text); font-size: .94rem; line-height: 1.25; }
.acr-compact-heading nav { display: flex; align-items: center; gap: .28rem; color: var(--acr-listing-text); font-size: .72rem; white-space: nowrap; }
.acr-compact-heading nav button {
	width: 1.8rem;
	height: 1.8rem;
	padding: 0;
	color: var(--acr-listing-text);
	background: #f5f8f6;
	border: 1px solid var(--acr-listing-border);
	border-radius: 50%;
	font: inherit;
	font-size: 1.05rem;
	line-height: 1;
	cursor: pointer;
}
.acr-compact-heading nav button:hover { color: #fff; background: var(--acr-listing-primary); }
.acr-compact-weekdays,
.acr-compact-days { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: .22rem; }
.acr-compact-weekdays { margin-bottom: .3rem; color: #84918c; font-size: .64rem; font-weight: 650; text-align: center; }
.acr-calendar-day,
.acr-calendar-blank { display: grid; min-width: 0; min-height: 2rem; place-items: center; }
.acr-calendar-day {
	padding: 0;
	color: var(--acr-listing-text);
	background: #fff;
	border: 1px solid #e4ebe7;
	border-radius: 7px;
	font: inherit;
	font-size: .71rem;
	cursor: default;
}
.acr-calendar-day.is-open { background: #f1f7f4; border-color: #c9ded5; }
.acr-calendar-day.is-full { color: #a2aaa6; background: #edf0ee; border-color: transparent; }
.acr-calendar-day.is-blocked { color: #a27b73; background: #fff3ef; border-color: #f1d5ce; }
.acr-calendar-day:disabled { opacity: .72; }
.acr-calendar-key { display: flex; flex-wrap: wrap; gap: .55rem 1rem; margin-top: .8rem; color: var(--acr-listing-muted); font-size: .68rem; }
.acr-calendar-key span { display: inline-flex; align-items: center; gap: .35rem; }
.acr-calendar-key i { width: .62rem; height: .62rem; background: #f1f7f4; border: 1px solid #c9ded5; border-radius: 3px; }
.acr-calendar-key i.is-full { background: #edf0ee; border-color: transparent; }
.acr-calendar-key i.is-blocked { background: #fff3ef; border-color: #f1d5ce; }
.acr-calendar-loading,
.acr-calendar-error { grid-column: 1 / -1; margin: .5rem 0; color: var(--acr-listing-muted); font-size: .78rem; }
.acr-calendar-error { color: #a8423a; }
.acr-calendar-error { padding: .7rem; background: #fff3ef; border-radius: 7px; }

@media (max-width: 760px) {
	.acr-search-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .18rem; padding: .5rem; border-radius: 20px; }
	.acr-search-panel .acr-search-segment { padding: .72rem .85rem; }
	.acr-search-panel .acr-search-date + .acr-search-date { border-left: 0; }
	.acr-search-panel .acr-search-who { grid-column: 1 / -1; border-top: 1px solid #e5ebe8; border-left: 0; border-radius: 13px; padding: .6rem .85rem; }
	.acr-search-panel .acr-search-who-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.acr-search-panel .acr-search-submit { grid-column: 1 / -1; min-height: 3rem; }
}
@media (max-width: 440px) {
	.acr-search-panel { grid-template-columns: minmax(0,1fr); border-radius: 17px; }
	.acr-search-panel .acr-search-segment { padding-inline: .75rem; }
	.acr-search-panel .acr-search-date + .acr-search-date { border-top: 1px solid #e5ebe8; }
	.acr-search-panel .acr-search-who { grid-column: auto; }
	.acr-search-panel .acr-search-who-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.acr-listings-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem .68rem; }
	.acr-listing-photo { aspect-ratio: .98 / 1; border-radius: 13px; }
	.acr-listing-copy { padding-inline: .05rem; }
	.acr-listing-heading { gap: .25rem; }
	.acr-listing-heading h3 { font-size: .86rem; }
	.acr-listing-rating { font-size: .72rem; }
	.acr-listing-meta,.acr-listing-reviews { font-size: .74rem; }
	.acr-book-now { min-height: 2.35rem; padding-inline: .62rem; font-size: .78rem; }
	.acr-book-menu a,.acr-book-menu .is-unconfigured { min-height: 2.25rem; padding-inline: .55rem; font-size: .75rem; }
	.acr-listings-intro { align-items: start; flex-direction: column; }
}
@media (max-width: 360px) {
	.acr-listings-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.acr-listing-card,.acr-listing-photo img,.acr-save-room,.acr-book-now,.acr-book-menu,.acr-search-panel,.acr-search-panel button { transition-duration: .01ms; }
}
