/**
 * Hospitality CMS — core front-end styles.
 *
 * IRON RULES (see §11):
 *   1. Every selector is scoped under the parent class `.hcms`.
 *   2. Every declaration ends in `!important`.
 *
 * Design language: "quiet luxury" — large imagery, generous whitespace, a
 * refined serif/sans pairing and a single brass accent. Colour, type, radius
 * and spacing are driven by --hcms-* custom properties (printed inline from
 * Settings → Display) so admins can restyle without editing this file.
 *
 * RTL: layout uses CSS logical properties (margin-inline, inset-inline-*,
 * text-align:start) so it mirrors automatically under dir="rtl".
 *
 * @package HospitalityCMS
 * @since   1.0.0
 */

/* =====================================================================
 * 1. Scope root + reset
 * ================================================================== */
.hcms {
	box-sizing: border-box !important;
	color: var(--hcms-ink, #1c1a17) !important;
	font-family: var(--hcms-font-body, system-ui, sans-serif) !important;
	font-size: 16px !important;
	line-height: 1.6 !important;
	-webkit-font-smoothing: antialiased !important;
	overflow-wrap: break-word !important;
	max-width: 100% !important;
}
.hcms *,
.hcms *::before,
.hcms *::after {
	box-sizing: border-box !important;
}
.hcms img {
	max-width: 100% !important;
	height: auto !important;
	display: block !important;
}
.hcms h1,
.hcms h2,
.hcms h3,
.hcms h4 {
	font-family: var(--hcms-font-head, Georgia, serif) !important;
	color: var(--hcms-ink, #1c1a17) !important;
	font-weight: 500 !important;
	line-height: 1.18 !important;
	margin: 0 0 0.4em !important;
}

/* =====================================================================
 * 2. Layout helpers
 * ================================================================== */
.hcms-container {
	width: 100% !important;
	max-width: 1200px !important;
	margin-inline: auto !important;
	padding-inline: clamp(18px, 4vw, 40px) !important;
}
.hcms-single,
.hcms-archive {
	padding-block: clamp(40px, 7vw, 96px) !important;
	background: var(--hcms-bg, #faf7f1) !important;
}
.hcms-prose {
	max-width: 70ch !important;
}
.hcms-prose p {
	margin: 0 0 1em !important;
}
.hcms-section-title {
	font-size: clamp(1.3rem, 2.4vw, 1.9rem) !important;
	margin-block: 1.6em 0.7em !important;
}
.hcms-eyebrow {
	text-transform: uppercase !important;
	letter-spacing: 0.14em !important;
	font-size: 0.72rem !important;
	font-weight: 600 !important;
	color: var(--hcms-accent, #b8860b) !important;
	margin: 0 0 0.5em !important;
}
.hcms-empty {
	padding: 28px !important;
	text-align: center !important;
	color: var(--hcms-muted, #6b6358) !important;
	background: var(--hcms-surface, #fff) !important;
	border: 1px dashed var(--hcms-line, #e7e0d4) !important;
	border-radius: var(--hcms-radius, 8px) !important;
}

/* =====================================================================
 * 3. Buttons & links
 * ================================================================== */
.hcms .hcms-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 0.5em !important;
	cursor: pointer !important;
	text-decoration: none !important;
	font: inherit !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.08em !important;
	font-size: 0.78rem !important;
	background: var(--hcms-accent, #b8860b) !important;
	color: var(--hcms-accent-ink, #fff) !important;
	padding: 0.85em 1.5em !important;
	border: 1px solid var(--hcms-accent, #b8860b) !important;
	border-radius: var(--hcms-radius, 8px) !important;
	transition: background var(--hcms-dur, 300ms) var(--hcms-ease), color var(--hcms-dur, 300ms) var(--hcms-ease) !important;
}
.hcms .hcms-btn:hover,
.hcms .hcms-btn:focus-visible {
	background: transparent !important;
	color: var(--hcms-accent, #b8860b) !important;
}
.hcms .hcms-btn--ghost {
	background: transparent !important;
	color: var(--hcms-accent, #b8860b) !important;
}
.hcms .hcms-btn--ghost:hover,
.hcms .hcms-btn--ghost:focus-visible {
	background: var(--hcms-accent, #b8860b) !important;
	color: var(--hcms-accent-ink, #fff) !important;
}
.hcms .hcms-btn--block {
	display: flex !important;
	width: 100% !important;
	margin-block: 8px 0 !important;
}
.hcms .hcms-link {
	display: inline-block !important;
	color: var(--hcms-ink, #1c1a17) !important;
	text-decoration: none !important;
	font-weight: 600 !important;
	font-size: 0.82rem !important;
	text-transform: uppercase !important;
	letter-spacing: 0.08em !important;
	position: relative !important;
	padding-block: 2px !important;
}
.hcms .hcms-link::after {
	content: "" !important;
	position: absolute !important;
	inset-inline-start: 0 !important;
	inset-block-end: 0 !important;
	width: 100% !important;
	height: 1px !important;
	background: var(--hcms-accent, #b8860b) !important;
	transform: scaleX(0) !important;
	transform-origin: inline-start !important;
	transition: transform var(--hcms-dur, 300ms) var(--hcms-ease) !important;
}
.hcms .hcms-link:hover::after,
.hcms .hcms-link:focus-visible::after {
	transform: scaleX(1) !important;
}
.hcms a:focus-visible,
.hcms button:focus-visible {
	outline: 2px solid var(--hcms-accent, #b8860b) !important;
	outline-offset: 2px !important;
}

/* =====================================================================
 * 4. Badges & price
 * ================================================================== */
.hcms .hcms-badge {
	position: absolute !important;
	inset-block-start: 14px !important;
	inset-inline-start: 14px !important;
	z-index: 2 !important;
	background: var(--hcms-accent, #b8860b) !important;
	color: var(--hcms-accent-ink, #fff) !important;
	font-size: 0.66rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.1em !important;
	padding: 0.4em 0.8em !important;
	border-radius: 2px !important;
}
.hcms .hcms-badge--limited {
	background: #9c2b2b !important;
}
.hcms .hcms-price {
	margin: 0 !important;
	font-family: var(--hcms-font-head, serif) !important;
	font-size: 1.3rem !important;
	color: var(--hcms-ink, #1c1a17) !important;
}
.hcms .hcms-price__was {
	text-decoration: line-through !important;
	color: var(--hcms-muted, #6b6358) !important;
	font-size: 0.9rem !important;
	margin-inline-end: 0.4em !important;
}
.hcms .hcms-price__now {
	color: var(--hcms-accent, #b8860b) !important;
}

/* =====================================================================
 * 5. Card surface
 * ================================================================== */
.hcms .hcms-card-style {
	background: var(--hcms-card-bg, #fff) !important;
	border-radius: var(--hcms-radius, 8px) !important;
	overflow: hidden !important;
	box-shadow: var(--hcms-shadow, 0 6px 24px rgba(0,0,0,.08)) !important;
	border: 1px solid transparent !important;
	transition: box-shadow var(--hcms-dur, 300ms) var(--hcms-ease), transform var(--hcms-dur, 300ms) var(--hcms-ease) !important;
}
.hcms .hcms-card-style:hover {
	box-shadow: var(--hcms-shadow-lg, 0 18px 48px rgba(0,0,0,.14)) !important;
}

/* =====================================================================
 * 6. Grids (rooms / facilities / offers / galleries)
 * ================================================================== */
.hcms .hcms-rooms,
.hcms .hcms-facilities,
.hcms .hcms-offers,
.hcms .hcms-gallery-grid,
.hcms .hcms-testimonials__grid {
	display: grid !important;
	grid-template-columns: repeat(var(--hcms-cols, 3), minmax(0, 1fr)) !important;
	gap: var(--hcms-gap, 24px) !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.hcms .hcms-rooms--list {
	grid-template-columns: 1fr !important;
}
.hcms .hcms-rooms--list .hcms-room-card {
	display: grid !important;
	grid-template-columns: minmax(0, 40%) 1fr !important;
}

/* =====================================================================
 * 7. Room / facility / offer cards
 * ================================================================== */
.hcms .hcms-room-card__media,
.hcms .hcms-facility-card__media,
.hcms .hcms-offer-card__media,
.hcms .hcms-album-card__media {
	display: block !important;
	position: relative !important;
	overflow: hidden !important;
	aspect-ratio: 4 / 3 !important;
	background: var(--hcms-line, #e7e0d4) !important;
}
.hcms .hcms-room-card__img,
.hcms .hcms-facility-card__img,
.hcms .hcms-offer-card__img,
.hcms .hcms-album-card__img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	transition: transform 600ms var(--hcms-ease) !important;
}
.hcms .hcms-room-card:hover .hcms-room-card__img,
.hcms .hcms-facility-card:hover .hcms-facility-card__img,
.hcms .hcms-offer-card:hover .hcms-offer-card__img,
.hcms .hcms-album-card:hover .hcms-album-card__img {
	transform: scale(1.06) !important;
}
.hcms .hcms-room-card__body,
.hcms .hcms-facility-card__body,
.hcms .hcms-offer-card__body {
	padding: clamp(16px, 2vw, 24px) !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 0.5em !important;
}
.hcms .hcms-room-card__title,
.hcms .hcms-facility-card__title,
.hcms .hcms-offer-card__title {
	font-size: 1.25rem !important;
	margin: 0 !important;
}
.hcms .hcms-room-card__title a,
.hcms .hcms-facility-card__title a,
.hcms .hcms-offer-card__title a,
.hcms .hcms-album-card a {
	color: inherit !important;
	text-decoration: none !important;
}
.hcms .hcms-specs {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 0.4em 1.1em !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	color: var(--hcms-muted, #6b6358) !important;
	font-size: 0.85rem !important;
}
.hcms .hcms-spec {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.35em !important;
}
.hcms .hcms-spec svg,
.hcms .hcms-keyspecs svg,
.hcms .hcms-amenity svg {
	color: var(--hcms-accent, #b8860b) !important;
	flex: 0 0 auto !important;
}
.hcms .hcms-room-card__foot,
.hcms .hcms-offer-card__foot {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 1em !important;
	margin-block-start: 0.4em !important;
	padding-block-start: 0.8em !important;
	border-block-start: 1px solid var(--hcms-line, #e7e0d4) !important;
}
.hcms .hcms-room-card__excerpt,
.hcms .hcms-facility-card__desc,
.hcms .hcms-offer-card__excerpt {
	color: var(--hcms-muted, #6b6358) !important;
	margin: 0 !important;
}
.hcms .hcms-facility-card__icon {
	color: var(--hcms-accent, #b8860b) !important;
	margin-block-end: 0.2em !important;
}
.hcms .hcms-offer-card__inclusions {
	margin: 0 !important;
	padding-inline-start: 1.1em !important;
	color: var(--hcms-muted, #6b6358) !important;
	font-size: 0.9rem !important;
}

/* Album cards */
.hcms .hcms-album-card__overlay {
	position: absolute !important;
	inset: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-end !important;
	padding: 18px !important;
	background: linear-gradient(to top, rgba(0,0,0,.6), rgba(0,0,0,0) 60%) !important;
	color: #fff !important;
}
.hcms .hcms-album-card__title {
	font-family: var(--hcms-font-head, serif) !important;
	font-size: 1.2rem !important;
}
.hcms .hcms-album-card__count {
	font-size: 0.8rem !important;
	opacity: 0.85 !important;
}

/* =====================================================================
 * 8. Amenities
 * ================================================================== */
.hcms .hcms-amenities {
	display: grid !important;
	grid-template-columns: repeat(var(--hcms-cols, 3), minmax(0, 1fr)) !important;
	gap: 0.7em 1.4em !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.hcms .hcms-amenity {
	display: flex !important;
	align-items: center !important;
	gap: 0.6em !important;
}
.hcms .hcms-amenity__dot {
	width: 6px !important;
	height: 6px !important;
	border-radius: 50% !important;
	background: var(--hcms-accent, #b8860b) !important;
	flex: 0 0 auto !important;
}

/* =====================================================================
 * 9. Single room composition
 * ================================================================== */
.hcms .hcms-room__layout,
.hcms .hcms-facility__layout,
.hcms .hcms-offer__layout {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 360px !important;
	gap: clamp(28px, 4vw, 60px) !important;
	align-items: start !important;
	margin-block-start: clamp(24px, 4vw, 48px) !important;
}
.hcms .hcms-room__title {
	font-size: clamp(1.8rem, 4vw, 3rem) !important;
}
.hcms .hcms-keyspecs {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 1em 1.8em !important;
	margin: 0 0 1.4em !important;
	padding: 1em 0 !important;
	list-style: none !important;
	border-block: 1px solid var(--hcms-line, #e7e0d4) !important;
}
.hcms .hcms-keyspecs li {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.5em !important;
}
.hcms .hcms-room__aside,
.hcms .hcms-facility__aside,
.hcms .hcms-offer__aside {
	position: sticky !important;
	inset-block-start: 24px !important;
}
.hcms .hcms-booking-card,
.hcms .hcms-offer__buy,
.hcms .hcms-hours {
	padding: clamp(18px, 2.4vw, 28px) !important;
}
.hcms .hcms-booking-card__price {
	font-family: var(--hcms-font-head, serif) !important;
	font-size: 1.7rem !important;
	margin: 0 0 0.6em !important;
}

/* Hero */
.hcms .hcms-room__hero,
.hcms .hcms-facility__hero,
.hcms .hcms-offer__hero {
	position: relative !important;
	margin: 0 0 clamp(20px, 3vw, 40px) !important;
	border-radius: var(--hcms-radius, 8px) !important;
	overflow: hidden !important;
	aspect-ratio: 16 / 9 !important;
}
.hcms .hcms-room__hero-img,
.hcms .hcms-facility__hero-img,
.hcms .hcms-offer__hero-img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

/* Rate / hours tables */
.hcms .hcms-rate-table,
.hcms .hcms-hours__table {
	width: 100% !important;
	border-collapse: collapse !important;
	margin: 0 !important;
}
.hcms .hcms-rate-table th,
.hcms .hcms-rate-table td,
.hcms .hcms-hours__table th,
.hcms .hcms-hours__table td {
	text-align: start !important;
	padding: 0.7em 0.6em !important;
	border-block-end: 1px solid var(--hcms-line, #e7e0d4) !important;
	font-size: 0.92rem !important;
	overflow-wrap: anywhere !important;
}
.hcms .hcms-rate-table th {
	color: var(--hcms-muted, #6b6358) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.06em !important;
	font-size: 0.74rem !important;
}
.hcms .hcms-related {
	margin-block-start: clamp(40px, 6vw, 80px) !important;
}

/* =====================================================================
 * 10. Gallery (masonry / justified / grid)
 * ================================================================== */
.hcms .hcms-gallery__items {
	display: grid !important;
	grid-template-columns: repeat(var(--hcms-cols, 3), minmax(0, 1fr)) !important;
	gap: var(--hcms-gap, 24px) !important;
}
.hcms .hcms-gallery--masonry .hcms-gallery__items {
	display: block !important;
	column-count: var(--hcms-cols, 3) !important;
	column-gap: var(--hcms-gap, 24px) !important;
}
.hcms .hcms-gallery--masonry .hcms-gallery__item {
	break-inside: avoid !important;
	margin-block-end: var(--hcms-gap, 24px) !important;
}
.hcms .hcms-gallery__item {
	position: relative !important;
	margin: 0 !important;
	overflow: hidden !important;
	border-radius: var(--hcms-radius, 8px) !important;
}
.hcms .hcms-gallery__img {
	width: 100% !important;
	height: auto !important;
	transition: transform 600ms var(--hcms-ease) !important;
}
.hcms .hcms-gallery--grid .hcms-gallery__img,
.hcms .hcms-gallery--justified .hcms-gallery__img {
	aspect-ratio: 1 / 1 !important;
	object-fit: cover !important;
	height: 100% !important;
}
.hcms .hcms-gallery__item:hover .hcms-gallery__img {
	transform: scale(1.05) !important;
}
.hcms .hcms-gallery__caption {
	position: absolute !important;
	inset-inline: 0 !important;
	inset-block-end: 0 !important;
	padding: 10px 14px !important;
	background: linear-gradient(to top, rgba(0,0,0,.55), transparent) !important;
	color: #fff !important;
	font-size: 0.82rem !important;
	opacity: 0 !important;
	transition: opacity var(--hcms-dur, 300ms) var(--hcms-ease) !important;
}
.hcms .hcms-gallery__item:hover .hcms-gallery__caption {
	opacity: 1 !important;
}

/* =====================================================================
 * 11. Slider / carousel
 * ================================================================== */
.hcms .hcms-slider,
.hcms [data-hcms-slider] {
	position: relative !important;
}
.hcms .hcms-slider__track {
	display: flex !important;
	gap: var(--hcms-gap, 24px) !important;
	overflow-x: auto !important;
	scroll-snap-type: x mandatory !important;
	scroll-behavior: smooth !important;
	-webkit-overflow-scrolling: touch !important;
	scrollbar-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.hcms .hcms-slider__track::-webkit-scrollbar {
	display: none !important;
}
.hcms .hcms-slider__track > * {
	scroll-snap-align: center !important;
	flex: 0 0 100% !important;
}
.hcms .hcms-gallery--hero .hcms-slider__track > * {
	aspect-ratio: 16 / 9 !important;
}
.hcms .hcms-testimonials--slider .hcms-slider__track > * {
	flex-basis: clamp(280px, 60%, 520px) !important;
}
.hcms .hcms-slider__prev,
.hcms .hcms-slider__next {
	position: absolute !important;
	inset-block-start: 50% !important;
	transform: translateY(-50%) !important;
	width: 44px !important;
	height: 44px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: rgba(255,255,255,.9) !important;
	color: var(--hcms-ink, #1c1a17) !important;
	cursor: pointer !important;
	font-size: 22px !important;
	box-shadow: 0 4px 14px rgba(0,0,0,.18) !important;
	z-index: 3 !important;
}
.hcms .hcms-slider__prev {
	inset-inline-start: 12px !important;
}
.hcms .hcms-slider__next {
	inset-inline-end: 12px !important;
}

/* =====================================================================
 * 12. Testimonials
 * ================================================================== */
.hcms .hcms-testimonial {
	padding: clamp(20px, 3vw, 34px) !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 0.8em !important;
}
.hcms .hcms-testimonial__quote {
	margin: 0 !important;
	font-family: var(--hcms-font-head, serif) !important;
	font-size: 1.1rem !important;
	font-style: italic !important;
	color: var(--hcms-ink, #1c1a17) !important;
	position: relative !important;
	padding-block-start: 0.6em !important;
}
.hcms .hcms-testimonial__quote::before {
	content: "\201C" !important;
	font-family: var(--hcms-font-head, serif) !important;
	font-size: 3rem !important;
	line-height: 0 !important;
	color: var(--hcms-accent, #b8860b) !important;
	opacity: 0.4 !important;
	position: absolute !important;
	inset-block-start: 0.35em !important;
	inset-inline-start: -0.1em !important;
}
.hcms .hcms-testimonial__cite {
	display: flex !important;
	align-items: center !important;
	gap: 0.8em !important;
	margin-block-start: auto !important;
}
.hcms .hcms-testimonial__avatar img {
	border-radius: 50% !important;
	width: 56px !important;
	height: 56px !important;
	object-fit: cover !important;
}
.hcms .hcms-testimonial__name {
	display: block !important;
	font-weight: 600 !important;
}
.hcms .hcms-testimonial__origin {
	display: block !important;
	color: var(--hcms-muted, #6b6358) !important;
	font-size: 0.85rem !important;
}
.hcms .hcms-stars {
	display: inline-flex !important;
	gap: 2px !important;
	color: var(--hcms-accent, #b8860b) !important;
	font-size: 1rem !important;
	letter-spacing: 2px !important;
}
.hcms .hcms-star.is-empty {
	color: var(--hcms-line, #e7e0d4) !important;
}

/* =====================================================================
 * 13. Filter bar, breadcrumbs, pagination
 * ================================================================== */
.hcms .hcms-filterbar {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 0.4em 0.6em !important;
	margin-block: 0 clamp(20px, 3vw, 36px) !important;
}
.hcms .hcms-filterbar--sticky {
	position: sticky !important;
	inset-block-start: 0 !important;
	z-index: 10 !important;
	background: var(--hcms-bg, #faf7f1) !important;
	padding-block: 14px !important;
}
.hcms .hcms-filter {
	text-decoration: none !important;
	color: var(--hcms-muted, #6b6358) !important;
	font-size: 0.78rem !important;
	text-transform: uppercase !important;
	letter-spacing: 0.08em !important;
	padding: 0.5em 1em !important;
	border: 1px solid var(--hcms-line, #e7e0d4) !important;
	border-radius: 999px !important;
	transition: all var(--hcms-dur, 300ms) var(--hcms-ease) !important;
}
.hcms .hcms-filter:hover,
.hcms .hcms-filter.is-active {
	color: var(--hcms-accent-ink, #fff) !important;
	background: var(--hcms-accent, #b8860b) !important;
	border-color: var(--hcms-accent, #b8860b) !important;
}
.hcms .hcms-breadcrumbs {
	margin-block-end: clamp(14px, 2vw, 24px) !important;
}
.hcms .hcms-breadcrumbs__list {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 0.5em !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	font-size: 0.8rem !important;
	color: var(--hcms-muted, #6b6358) !important;
}
.hcms .hcms-breadcrumbs__item + .hcms-breadcrumbs__item::before {
	content: "/" !important;
	margin-inline-end: 0.5em !important;
	color: var(--hcms-line, #cbb98f) !important;
}
.hcms .hcms-breadcrumbs__item a {
	color: var(--hcms-muted, #6b6358) !important;
	text-decoration: none !important;
}
.hcms .hcms-breadcrumbs__item a:hover {
	color: var(--hcms-accent, #b8860b) !important;
}
.hcms .hcms-pagination {
	margin-block-start: clamp(28px, 4vw, 48px) !important;
}
.hcms .hcms-pagination ul {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 6px !important;
	justify-content: center !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.hcms .hcms-pagination a,
.hcms .hcms-pagination span {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 42px !important;
	height: 42px !important;
	padding-inline: 10px !important;
	text-decoration: none !important;
	border: 1px solid var(--hcms-line, #e7e0d4) !important;
	border-radius: var(--hcms-radius, 8px) !important;
	color: var(--hcms-ink, #1c1a17) !important;
}
.hcms .hcms-pagination .current {
	background: var(--hcms-accent, #b8860b) !important;
	color: var(--hcms-accent-ink, #fff) !important;
	border-color: var(--hcms-accent, #b8860b) !important;
}

/* =====================================================================
 * 14. Inquiry form
 * ================================================================== */
.hcms .hcms-inquiry-form__title {
	font-size: 1.3rem !important;
	margin: 0 0 0.8em !important;
}
.hcms .hcms-form-grid {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 14px !important;
}
.hcms .hcms-form-row {
	margin: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 0.3em !important;
}
.hcms .hcms-form-row--full {
	margin-block-start: 14px !important;
}
.hcms .hcms-form-row label {
	font-size: 0.78rem !important;
	text-transform: uppercase !important;
	letter-spacing: 0.06em !important;
	color: var(--hcms-muted, #6b6358) !important;
}
.hcms .hcms-form-row input,
.hcms .hcms-form-row textarea,
.hcms .hcms-inquiry-form select {
	width: 100% !important;
	padding: 0.7em 0.85em !important;
	font: inherit !important;
	color: var(--hcms-ink, #1c1a17) !important;
	background: var(--hcms-surface, #fff) !important;
	border: 1px solid var(--hcms-line, #e7e0d4) !important;
	border-radius: var(--hcms-radius, 8px) !important;
}
.hcms .hcms-form-row input:focus,
.hcms .hcms-form-row textarea:focus {
	outline: none !important;
	border-color: var(--hcms-accent, #b8860b) !important;
	box-shadow: 0 0 0 3px rgba(184,134,11,.15) !important;
}
.hcms .hcms-req {
	color: #9c2b2b !important;
}
.hcms .hcms-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}
.hcms .hcms-form-actions {
	margin-block: 16px 0 !important;
}
.hcms .hcms-form-feedback {
	margin-block-start: 12px !important;
	font-size: 0.9rem !important;
}
.hcms .hcms-form-feedback.is-success {
	color: #2f6f3e !important;
}
.hcms .hcms-form-feedback.is-error {
	color: #9c2b2b !important;
}
.hcms .hcms-field-error {
	border-color: #9c2b2b !important;
}

/* =====================================================================
 * 15. Lightbox (JS-injected overlay)
 * ================================================================== */
.hcms-lightbox {
	position: fixed !important;
	inset: 0 !important;
	z-index: 99999 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: rgba(15,12,8,.92) !important;
	padding: 4vw !important;
}
.hcms-lightbox[hidden] {
	display: none !important;
}
.hcms-lightbox__img {
	max-width: 92vw !important;
	max-height: 82vh !important;
	width: auto !important;
	height: auto !important;
	object-fit: contain !important;
	border-radius: 4px !important;
}
.hcms-lightbox__caption {
	position: absolute !important;
	inset-block-end: 4vw !important;
	inset-inline: 0 !important;
	text-align: center !important;
	color: #fff !important;
	font-size: 0.9rem !important;
	padding-inline: 6vw !important;
}
.hcms-lightbox__close,
.hcms-lightbox__prev,
.hcms-lightbox__next {
	position: absolute !important;
	background: rgba(255,255,255,.12) !important;
	color: #fff !important;
	border: 0 !important;
	cursor: pointer !important;
	width: 50px !important;
	height: 50px !important;
	border-radius: 50% !important;
	font-size: 26px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}
.hcms-lightbox__close {
	inset-block-start: 3vw !important;
	inset-inline-end: 3vw !important;
}
.hcms-lightbox__prev {
	inset-inline-start: 3vw !important;
	inset-block-start: 50% !important;
	transform: translateY(-50%) !important;
}
.hcms-lightbox__next {
	inset-inline-end: 3vw !important;
	inset-block-start: 50% !important;
	transform: translateY(-50%) !important;
}

/* =====================================================================
 * 16. Reveal-on-scroll motion + credit
 * ================================================================== */
.hcms [data-hcms-reveal] {
	opacity: 0 !important;
	transform: translateY(24px) !important;
	transition: opacity 600ms var(--hcms-ease), transform 600ms var(--hcms-ease) !important;
}
.hcms [data-hcms-reveal].is-visible {
	opacity: 1 !important;
	transform: none !important;
}
.hcms .hcms-credit {
	text-align: center !important;
	margin-block-start: clamp(28px, 4vw, 48px) !important;
	font-size: 0.72rem !important;
	text-transform: uppercase !important;
	letter-spacing: 0.1em !important;
	color: var(--hcms-muted, #6b6358) !important;
}
.hcms .hcms-credit a {
	color: var(--hcms-accent, #b8860b) !important;
	text-decoration: none !important;
}

/* Language switcher */
.hcms .hcms-langs {
	display: flex !important;
	gap: 0.8em !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
.hcms .hcms-langs a {
	text-decoration: none !important;
	color: var(--hcms-muted, #6b6358) !important;
}
.hcms .hcms-langs .is-current a {
	color: var(--hcms-accent, #b8860b) !important;
	font-weight: 600 !important;
}

/* =====================================================================
 * 17. Responsive — mirror Impreza breakpoints
 *     ≥1025 desktop · 901–1024 · 601–900 tablet · ≤600 mobile
 * ================================================================== */
@media (max-width: 1024px) {
	.hcms .hcms-room__layout,
	.hcms .hcms-facility__layout,
	.hcms .hcms-offer__layout {
		grid-template-columns: 1fr !important;
	}
	.hcms .hcms-room__aside,
	.hcms .hcms-facility__aside,
	.hcms .hcms-offer__aside {
		position: static !important;
	}
	.hcms .hcms-rooms,
	.hcms .hcms-facilities,
	.hcms .hcms-offers,
	.hcms .hcms-gallery-grid,
	.hcms .hcms-testimonials__grid {
		grid-template-columns: repeat(min(var(--hcms-cols, 3), 3), minmax(0, 1fr)) !important;
	}
}
@media (max-width: 900px) {
	.hcms .hcms-rooms,
	.hcms .hcms-facilities,
	.hcms .hcms-offers,
	.hcms .hcms-gallery-grid,
	.hcms .hcms-testimonials__grid,
	.hcms .hcms-amenities {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
	.hcms .hcms-gallery--masonry .hcms-gallery__items {
		column-count: 2 !important;
	}
	.hcms .hcms-rooms--list .hcms-room-card {
		grid-template-columns: 1fr !important;
	}
}
@media (max-width: 600px) {
	.hcms .hcms-rooms,
	.hcms .hcms-facilities,
	.hcms .hcms-offers,
	.hcms .hcms-gallery-grid,
	.hcms .hcms-testimonials__grid,
	.hcms .hcms-amenities,
	.hcms .hcms-form-grid {
		grid-template-columns: 1fr !important;
	}
	.hcms .hcms-gallery--masonry .hcms-gallery__items {
		column-count: 1 !important;
	}
	/* Testimonial slides nearly fill the viewport for a comfortable read. */
	.hcms .hcms-testimonials--slider .hcms-slider__track > * {
		flex-basis: 88% !important;
	}
	/* Slightly smaller slider arrows on phones. */
	.hcms .hcms-slider__prev,
	.hcms .hcms-slider__next {
		width: 38px !important;
		height: 38px !important;
		font-size: 18px !important;
	}
	/* Tighter editorial spacing on small screens. */
	.hcms .hcms-room__hero,
	.hcms .hcms-facility__hero,
	.hcms .hcms-offer__hero {
		aspect-ratio: 3 / 2 !important;
	}
	.hcms .hcms-room__title {
		font-size: clamp(1.6rem, 7vw, 2.1rem) !important;
	}
	/* Keep the sticky filter bar from hugging the very edge. */
	.hcms .hcms-filterbar--sticky {
		gap: 0.35em 0.4em !important;
	}
}

/* =====================================================================
 * 18. Reduced motion
 * ================================================================== */
@media (prefers-reduced-motion: reduce) {
	.hcms *,
	.hcms *::before,
	.hcms *::after {
		transition: none !important;
		animation: none !important;
		scroll-behavior: auto !important;
	}
	.hcms [data-hcms-reveal] {
		opacity: 1 !important;
		transform: none !important;
	}
}

/* =====================================================================
 * 19. Add-on modules — Dining, Events, Team, FAQ
 * ================================================================== */
.hcms .hcms-dining,
.hcms .hcms-events,
.hcms .hcms-team {
	display: grid !important;
	grid-template-columns: repeat(var(--hcms-cols, 3), minmax(0, 1fr)) !important;
	gap: var(--hcms-gap, 24px) !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.hcms .hcms-dining-card__media,
.hcms .hcms-event-card__media {
	display: block !important;
	position: relative !important;
	overflow: hidden !important;
	aspect-ratio: 4 / 3 !important;
	background: var(--hcms-line, #e7e0d4) !important;
}
.hcms .hcms-dining-card__img,
.hcms .hcms-event-card__img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	transition: transform 600ms var(--hcms-ease) !important;
}
.hcms .hcms-dining-card:hover .hcms-dining-card__img,
.hcms .hcms-event-card:hover .hcms-event-card__img {
	transform: scale(1.06) !important;
}
.hcms .hcms-dining-card__body,
.hcms .hcms-event-card__body {
	padding: clamp(16px, 2vw, 24px) !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 0.5em !important;
}
.hcms .hcms-dining-card__title,
.hcms .hcms-event-card__title {
	font-size: 1.25rem !important;
	margin: 0 !important;
}
.hcms .hcms-dining-card__title a,
.hcms .hcms-event-card__title a {
	color: inherit !important;
	text-decoration: none !important;
}

/* Event date badge */
.hcms .hcms-event-card__date {
	position: absolute !important;
	inset-block-start: 14px !important;
	inset-inline-start: 14px !important;
	background: var(--hcms-surface, #fff) !important;
	color: var(--hcms-ink, #1c1a17) !important;
	border-radius: 10px !important;
	padding: 8px 12px !important;
	text-align: center !important;
	box-shadow: var(--hcms-shadow, 0 6px 24px rgba(0,0,0,.08)) !important;
	line-height: 1 !important;
}
.hcms .hcms-event-card__day {
	display: block !important;
	font-family: var(--hcms-font-head, serif) !important;
	font-size: 1.4rem !important;
	font-weight: 600 !important;
}
.hcms .hcms-event-card__mon {
	display: block !important;
	font-size: 0.7rem !important;
	text-transform: uppercase !important;
	letter-spacing: 0.1em !important;
	color: var(--hcms-accent, #b8860b) !important;
	margin-block-start: 2px !important;
}

/* Team cards */
.hcms .hcms-staff-card {
	text-align: center !important;
	padding-block-end: 22px !important;
}
.hcms .hcms-staff-card__photo {
	aspect-ratio: 1 / 1 !important;
	overflow: hidden !important;
}
.hcms .hcms-staff-card__img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	transition: transform 600ms var(--hcms-ease) !important;
}
.hcms .hcms-staff-card:hover .hcms-staff-card__img {
	transform: scale(1.05) !important;
}
.hcms .hcms-staff-card__noimg {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	background: var(--hcms-line, #e7e0d4) !important;
}
.hcms .hcms-staff-card__body {
	padding: 18px 16px 0 !important;
}
.hcms .hcms-staff-card__name {
	font-size: 1.15rem !important;
	margin: 0 !important;
}
.hcms .hcms-staff-card__role {
	color: var(--hcms-accent, #b8860b) !important;
	font-size: 0.8rem !important;
	text-transform: uppercase !important;
	letter-spacing: 0.08em !important;
	margin: 0.3em 0 !important;
}
.hcms .hcms-staff-card__langs {
	color: var(--hcms-muted, #6b6358) !important;
	font-size: 0.85rem !important;
	margin: 0 !important;
}
.hcms .hcms-staff-card__links {
	display: flex !important;
	justify-content: center !important;
	gap: 12px !important;
	margin-block-start: 10px !important;
}
.hcms .hcms-staff-card__links a {
	color: var(--hcms-muted, #6b6358) !important;
}
.hcms .hcms-staff-card__links a:hover {
	color: var(--hcms-accent, #b8860b) !important;
}

/* FAQ accordion */
.hcms .hcms-faqs {
	max-width: 820px !important;
	margin-inline: auto !important;
}
.hcms .hcms-faq {
	border-block-end: 1px solid var(--hcms-line, #e7e0d4) !important;
}
.hcms .hcms-faq__q {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 1em !important;
	width: 100% !important;
	text-align: start !important;
	background: none !important;
	border: 0 !important;
	cursor: pointer !important;
	padding: 1.1em 0 !important;
	font-family: var(--hcms-font-head, serif) !important;
	font-size: 1.15rem !important;
	color: var(--hcms-ink, #1c1a17) !important;
}
.hcms .hcms-faq__icon {
	position: relative !important;
	flex: 0 0 auto !important;
	width: 18px !important;
	height: 18px !important;
}
.hcms .hcms-faq__icon::before,
.hcms .hcms-faq__icon::after {
	content: "" !important;
	position: absolute !important;
	background: var(--hcms-accent, #b8860b) !important;
	transition: transform var(--hcms-dur, 300ms) var(--hcms-ease) !important;
}
.hcms .hcms-faq__icon::before {
	inset-block-start: 8px !important;
	inset-inline-start: 0 !important;
	width: 18px !important;
	height: 2px !important;
}
.hcms .hcms-faq__icon::after {
	inset-block-start: 0 !important;
	inset-inline-start: 8px !important;
	width: 2px !important;
	height: 18px !important;
}
.hcms .hcms-faq__q[aria-expanded="true"] .hcms-faq__icon::after {
	transform: scaleY(0) !important;
}
.hcms .hcms-faq__a {
	padding: 0 0 1.2em !important;
	color: var(--hcms-muted, #6b6358) !important;
}
.hcms .hcms-faq__a p {
	margin: 0 0 1em !important;
}
@media (max-width: 900px) {
	.hcms .hcms-dining,
	.hcms .hcms-events,
	.hcms .hcms-team {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}
@media (max-width: 600px) {
	.hcms .hcms-dining,
	.hcms .hcms-events,
	.hcms .hcms-team {
		grid-template-columns: 1fr !important;
	}
}

/* =====================================================================
 * 20. Add-on modules — Experiences, Spa, Explore, Highlights
 * ================================================================== */
.hcms .hcms-experiences,
.hcms .hcms-treatments,
.hcms .hcms-attractions,
.hcms .hcms-highlights,
.hcms .hcms-cards-grid {
	display: grid !important;
	grid-template-columns: repeat(var(--hcms-cols, 3), minmax(0, 1fr)) !important;
	gap: var(--hcms-gap, 24px) !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.hcms .hcms-treatments--list {
	grid-template-columns: 1fr !important;
}

/* Shared card scaffolding for the new modules */
.hcms .hcms-media-frame {
	display: block !important;
	position: relative !important;
	overflow: hidden !important;
	aspect-ratio: 4 / 3 !important;
	background: var(--hcms-line, #e7e0d4) !important;
}
.hcms .hcms-media-frame__img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	transition: transform 600ms var(--hcms-ease) !important;
}
.hcms .hcms-card-style:hover .hcms-media-frame__img {
	transform: scale(1.06) !important;
}
.hcms .hcms-card-body {
	padding: clamp(16px, 2vw, 24px) !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 0.5em !important;
}
.hcms .hcms-card-title {
	font-size: 1.25rem !important;
	margin: 0 !important;
}
.hcms .hcms-card-title a {
	color: inherit !important;
	text-decoration: none !important;
}
.hcms .hcms-card-desc {
	color: var(--hcms-muted, #6b6358) !important;
	margin: 0 !important;
}
.hcms .hcms-card-foot {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 1em !important;
	margin-block-start: 0.4em !important;
	padding-block-start: 0.8em !important;
	border-block-start: 1px solid var(--hcms-line, #e7e0d4) !important;
}
.hcms .hcms-treatment-card__meta {
	color: var(--hcms-ink, #1c1a17) !important;
	font-family: var(--hcms-font-head, serif) !important;
	font-size: 1.05rem !important;
}

/* Highlights — flexible icon feature blocks */
.hcms .hcms-highlight {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	text-align: center !important;
	gap: 0.5em !important;
	padding: clamp(20px, 3vw, 34px) !important;
	background: var(--hcms-surface, #fff) !important;
	border: 1px solid var(--hcms-line, #e7e0d4) !important;
	border-radius: var(--hcms-radius, 8px) !important;
	text-decoration: none !important;
	color: var(--hcms-ink, #1c1a17) !important;
	transition: box-shadow var(--hcms-dur, 300ms) var(--hcms-ease), transform var(--hcms-dur, 300ms) var(--hcms-ease) !important;
}
.hcms a.hcms-highlight:hover,
.hcms a.hcms-highlight:focus-visible {
	box-shadow: var(--hcms-shadow-lg, 0 18px 48px rgba(0,0,0,.14)) !important;
	transform: translateY(-3px) !important;
}
.hcms .hcms-highlight__icon {
	display: inline-flex !important;
	color: var(--hcms-accent, #b8860b) !important;
	margin-block-end: 0.2em !important;
}
.hcms .hcms-highlight__title {
	font-size: 1.1rem !important;
	margin: 0 !important;
}
.hcms .hcms-highlight__text {
	color: var(--hcms-muted, #6b6358) !important;
	margin: 0 !important;
}
@media (max-width: 900px) {
	.hcms .hcms-experiences,
	.hcms .hcms-treatments,
	.hcms .hcms-attractions,
	.hcms .hcms-highlights,
	.hcms .hcms-cards-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}
@media (max-width: 600px) {
	.hcms .hcms-experiences,
	.hcms .hcms-treatments,
	.hcms .hcms-attractions,
	.hcms .hcms-highlights,
	.hcms .hcms-cards-grid {
		grid-template-columns: 1fr !important;
	}
}
