/**
 * Property CMS — Frontend
 * Premium, Airbnb-grade UI. Everything scoped under .pcms / .pcms-.
 * Brand tokens are injected inline in <head> (see PCMS_Assets::inline_vars).
 */

:root {
	--pcms-primary: #f95b5b;
	--pcms-primary-dark: #e23f3f;
	--pcms-green: #30672c;
	--pcms-green-dark: #0b4a2a;
	--pcms-ink: #1a1a1a;
	--pcms-text: #333333;
	--pcms-bg: #ffffff;
	--pcms-border: rgba(26, 26, 26, .12);
	--pcms-hairline: rgba(26, 26, 26, .1);
	--pcms-muted: rgba(51, 51, 51, .66);
	--pcms-radius: 12px;
	--pcms-cols: 4;
	--pcms-shadow-soft: 0 6px 20px rgba(26, 26, 26, .08);
	--pcms-shadow-card: 0 6px 24px rgba(26, 26, 26, .1);
}

/* Page container — used ONLY on pages the plugin renders itself (room page,
   rooms archive) so content lines up with the theme's header/footer width.
   Auto-detected from the theme (Impreza) or set in Settings → Appearance. */
.pcms-page { max-width: var(--pcms-page-w, 1200px) !important; margin-left: auto !important; margin-right: auto !important; padding-left: 0 !important; padding-right: 0 !important; }
/* Keep a small gutter once the container touches the viewport edges. */
@media (max-width: 1260px) {
	.pcms-page { padding-left: 16px !important; padding-right: 16px !important; }
}

/* Base scope ------------------------------------------------------------ */
.pcms,
.pcms * {
	box-sizing: border-box;
}
/* The hidden attribute must always win over component display rules. */
.pcms [hidden],
.pcms[hidden] { display: none !important; }
.pcms {
	color: var(--pcms-text);
	background: var(--pcms-bg);
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
.pcms a { color: inherit; text-decoration: none; }
.pcms img { max-width: 100%; height: auto; display: block; }
.pcms .pcms-h2 { font-size: 22px; font-weight: 600; color: var(--pcms-ink); margin: 0 0 6px; line-height: 1.3; }
.pcms .pcms-h3 { font-size: 20px; font-weight: 600; color: var(--pcms-ink); margin: 0 0 18px; display: flex; align-items: center; gap: 8px; }
.pcms-dot { color: var(--pcms-muted); margin: 0 2px; }
.pcms-icon { display: inline-block; vertical-align: middle; }

/* Buttons --------------------------------------------------------------- */
.pcms-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	font: inherit; font-weight: 600; cursor: pointer;
	border: 1px solid transparent; border-radius: 14px;
	padding: 13px 22px; transition: background .18s ease, box-shadow .18s ease, transform .05s ease;
	line-height: 1; text-align: center;
}
.pcms-btn:active { transform: translateY(1px); }
.pcms-btn--block { width: 100%; }
.pcms-btn--primary { background: var(--pcms-primary); color: #fff; font-weight: 700; }
.pcms-btn--primary:hover { background: var(--pcms-primary-dark); }
.pcms-btn--outline { background: transparent; border-color: var(--pcms-ink); color: var(--pcms-ink); border-radius: 10px; }
.pcms-btn--outline:hover { background: rgba(26, 26, 26, .04); }
.pcms-btn--outline-green { background: transparent; border-color: var(--pcms-green); color: var(--pcms-green); }
.pcms-btn--outline-green:hover { background: var(--pcms-green); color: #fff; }
.pcms-textbtn {
	background: none; border: 0; padding: 6px 4px; cursor: pointer; font: inherit;
	color: var(--pcms-ink); display: inline-flex; align-items: center; gap: 6px; border-radius: 8px;
	text-decoration: underline; text-underline-offset: 3px;
}
.pcms-textbtn:hover { background: rgba(26, 26, 26, .04); }
.pcms-textbtn--muted { color: var(--pcms-muted); }
.pcms-textbtn--strong { font-weight: 600; text-decoration: underline; }

/* ======================================================================
 * LISTING + GRID
 * =================================================================== */
.pcms-archive { max-width: var(--pcms-maxw-list, 100%); margin: 0 auto; padding: 40px 24px 80px; }
.pcms-archive__head { margin-bottom: 24px; }
.pcms-archive__title { font-size: 30px; font-weight: 600; color: var(--pcms-ink); margin: 0 0 6px; }
.pcms-archive__sub { color: var(--pcms-muted); margin: 0; font-size: 16px; }

.pcms-listing { max-width: var(--pcms-maxw-list, 100%); margin: 0 auto; }
.pcms-listing__count { font-size: 14px; color: var(--pcms-muted); margin: 6px 0 18px; font-weight: 500; }

.pcms-grid {
	display: grid;
	grid-template-columns: repeat(var(--pcms-cols, 4), minmax(0, 1fr));
	gap: 28px;
}
@media (max-width: 1279px) { .pcms-grid { grid-template-columns: repeat(min(var(--pcms-cols, 4), 3), minmax(0, 1fr)); } }
@media (max-width: 1023px) { .pcms-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; } }
@media (max-width: 600px) { .pcms-grid { grid-template-columns: 1fr; gap: 26px; } }

/* Card ------------------------------------------------------------------ */
.pcms-card { position: relative; }
.pcms-card__media {
	position: relative; overflow: hidden; border-radius: var(--pcms-radius);
	background: rgba(26, 26, 26, .05); margin-bottom: 12px;
}
.pcms-card__media.is-4-3 { aspect-ratio: 4 / 3; }
.pcms-card__media.is-square { aspect-ratio: 1 / 1; }
.pcms-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.pcms-card__img--placeholder { background: linear-gradient(135deg, rgba(26,26,26,.06), rgba(26,26,26,.12)); }
.pcms-card:hover .pcms-card__img { transform: scale(1.05); }
.pcms-card:hover .pcms-card__media { box-shadow: var(--pcms-shadow-soft); }
.pcms-card__badge {
	position: absolute; top: 12px; left: 12px; background: #fff; color: var(--pcms-ink);
	font-size: 12px; font-weight: 600; padding: 6px 11px; border-radius: 100px;
	box-shadow: 0 1px 4px rgba(26,26,26,.14);
}
.pcms-card__wish {
	position: absolute; top: 10px; right: 10px; width: 36px; height: 36px;
	display: grid; place-items: center; background: none; border: 0; cursor: pointer;
	color: #fff; filter: drop-shadow(0 1px 2px rgba(0,0,0,.35)); transition: transform .15s ease;
}
.pcms-card__wish:hover { transform: scale(1.1); }
.pcms-card__wish.is-active { color: var(--pcms-primary); filter: none; }
.pcms-card__wish.is-active .pcms-icon path { fill: var(--pcms-primary); stroke: var(--pcms-primary); }
.pcms-card__body { padding: 0 2px; }
.pcms-card__row { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.pcms-card__title {
	font-size: 16px; font-weight: 600; color: var(--pcms-ink); margin: 0; line-height: 1.35;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: 1;
}
.pcms-card__meta { font-size: 14px; color: var(--pcms-muted); margin: 2px 0 6px; font-weight: 400; }
.pcms-card__price { font-size: 15px; color: var(--pcms-text); margin: 4px 0 0; }
.pcms-card__price strong { color: var(--pcms-ink); font-weight: 700; }
.pcms-card__price span { color: var(--pcms-muted); font-weight: 400; }

.pcms-empty { grid-column: 1 / -1; padding: 60px 20px; text-align: center; color: var(--pcms-muted); }

/* Filters --------------------------------------------------------------- */
.pcms-filters {
	display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
	padding: 16px 0 20px; border-bottom: 1px solid var(--pcms-hairline); margin-bottom: 20px;
}
.pcms-filters__group { display: flex; flex-direction: column; gap: 4px; }
.pcms-filters__group--order { margin-left: auto; }
.pcms-filters__group--price { min-width: 170px; }
.pcms-filters__label { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--pcms-muted); font-weight: 600; }
.pcms-pill {
	appearance: none; background: #fff; border: 1px solid var(--pcms-border); color: var(--pcms-ink);
	border-radius: 100px; padding: 10px 16px; font: inherit; font-size: 14px; cursor: pointer;
	transition: border-color .15s ease, background .15s ease;
}
.pcms-pill:hover { border-color: var(--pcms-ink); }
.pcms-pill--select { padding-right: 34px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231a1a1a' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; }
.pcms-pill--reset { align-self: flex-end; color: var(--pcms-muted); }
.pcms-pill.is-active { background: var(--pcms-ink); color: #fff; border-color: var(--pcms-ink); }
.pcms-range { width: 100%; accent-color: var(--pcms-primary); }

.pcms-spinner { width: 26px; height: 26px; border: 3px solid var(--pcms-hairline); border-top-color: var(--pcms-ink); border-radius: 50%; animation: pcms-spin .7s linear infinite; display: inline-block; }
.pcms-listing__loader { display: flex; justify-content: center; padding: 30px; }
@keyframes pcms-spin { to { transform: rotate(360deg); } }

.pcms-pagination { margin-top: 44px; display: flex; justify-content: center; }
.pcms-pagination .page-numbers { padding: 8px 14px; border-radius: 10px; color: var(--pcms-ink); }
.pcms-pagination .page-numbers.current { background: var(--pcms-ink); color: #fff; }

/* ======================================================================
 * SINGLE PROPERTY
 * =================================================================== */
/* Flush to the theme container: no top/side padding of our own (the theme
   column / .pcms-page provides outer spacing). Small bottom gap before footer. */
.pcms-single { max-width: var(--pcms-maxw-detail, 100%); margin: 0 auto; padding: 0 0 40px; }
/* A gentle side gutter only once the viewport is narrow enough to touch edges. */
@media (max-width: 680px) { .pcms-single { padding-left: 16px; padding-right: 16px; } }
.pcms-single__head { margin-bottom: 18px; }
.pcms-single__eyebrow { font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--pcms-primary-dark); margin: 0 0 8px; }
.pcms-single__title { font-size: 28px; font-weight: 600; color: var(--pcms-ink); margin: 0 0 8px; line-height: 1.25; }
.pcms-single__subrow { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.pcms-single__meta { display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--pcms-ink); flex-wrap: wrap; }
.pcms-single__loc { display: inline-flex; align-items: center; gap: 4px; }
.pcms-single__actions { display: flex; gap: 8px; }

/* Photo mosaic */
.pcms-mosaic {
	position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
	border-radius: 16px; overflow: hidden; margin-bottom: 40px; aspect-ratio: 2 / 1;
}
.pcms-mosaic__main { margin: 0; overflow: hidden; }
.pcms-mosaic__main img,
.pcms-mosaic__cell img { width: 100%; height: 100%; object-fit: cover; cursor: pointer; transition: filter .2s ease; }
.pcms-mosaic__main img:hover,
.pcms-mosaic__cell img:hover { filter: brightness(.9); }
.pcms-mosaic__grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 8px; }
.pcms-mosaic__cell { margin: 0; overflow: hidden; background: rgba(26,26,26,.05); }
.pcms-mosaic__all {
	position: absolute; bottom: 16px; right: 16px; background: #fff; color: var(--pcms-ink);
	border: 1px solid var(--pcms-ink); border-radius: 10px; padding: 9px 15px; font-size: 14px; font-weight: 600;
	cursor: pointer; display: inline-flex; align-items: center; gap: 8px;
}
.pcms-mosaic__all:hover { background: rgba(26,26,26,.04); }

/* Placeholder photo boxes (shown until real photos are added) ----------- */
.pcms-ph,
.pcms-room__img--placeholder {
	display: block; width: 100%; height: 100%;
	background-color: #f1efec;
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 24 24' fill='none' stroke='%231a1a1a' stroke-opacity='.16' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2.5'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.6'/%3E%3Cpath d='M21 15.5l-4.8-4.8L5.5 21'/%3E%3C/svg%3E"),
		linear-gradient(135deg, #f4f2ef 0%, #eae7e2 100%);
	background-repeat: no-repeat, no-repeat;
	background-position: center, center;
	background-size: 44px 44px, cover;
}
.pcms-mosaic--placeholder { background: none; }
.pcms-mosaic--placeholder .pcms-mosaic__main,
.pcms-mosaic--placeholder .pcms-mosaic__cell { background: none; }
.pcms-mosaic--placeholder .pcms-mosaic__grid .pcms-ph { background-size: 32px 32px, cover; }

/* Anchor nav */
.pcms-anchornav {
	position: sticky; top: 0; z-index: 20; display: none; gap: 26px;
	background: rgba(255,255,255,.94); backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--pcms-hairline); padding: 14px 2px; margin-bottom: 8px;
}
.pcms-anchornav.is-stuck { display: flex; }
.pcms-anchornav a { font-size: 14px; font-weight: 600; color: var(--pcms-ink); padding-bottom: 12px; border-bottom: 2px solid transparent; }
.pcms-anchornav a:hover { border-color: var(--pcms-ink); }

/* Two-column layout */
.pcms-layout { display: grid; grid-template-columns: minmax(0, 1fr) 372px; gap: 72px; align-items: start; }
.pcms-content { min-width: 0; }
.pcms-block { padding: 40px 0; border-bottom: 1px solid var(--pcms-hairline); }
.pcms-block:first-child { padding-top: 8px; }
.pcms-block:last-child { border-bottom: 0; }

.pcms-overview__head .pcms-h2 { font-size: 25px; letter-spacing: -.01em; }
.pcms-overview__cap { color: var(--pcms-muted); margin: 0 0 18px; font-size: 15px; }

/* Meet your host — premium card */
.pcms-host__row { display: flex; gap: 24px; align-items: flex-start; }
.pcms-host__avatar { width: 92px; height: 92px; border-radius: 50%; overflow: hidden; flex-shrink: 0; background: var(--pcms-ink); display: grid; place-items: center; box-shadow: 0 6px 18px rgba(26,26,26,.12); }
.pcms-host__img { width: 100%; height: 100%; object-fit: cover; }
.pcms-host__initial { color: #fff; font-size: 34px; font-weight: 700; }
.pcms-host__name { font-size: 17px; font-weight: 600; color: var(--pcms-ink); margin: 2px 0 10px; }
.pcms-host__role { color: var(--pcms-muted); font-weight: 500; font-size: 15px; }
.pcms-host__bio { color: var(--pcms-text); font-size: 15px; line-height: 1.72; }
.pcms-host__bio p { margin: 0 0 12px; }
.pcms-host__bio p:last-child { margin-bottom: 0; }
@media (max-width: 600px) { .pcms-host__row { flex-direction: column; gap: 16px; } }
.pcms-host-row { display: flex; align-items: center; gap: 14px; }
.pcms-host-row__avatar { position: relative; width: 48px; height: 48px; border-radius: 50%; overflow: visible; background: var(--pcms-ink); display: grid; place-items: center; flex-shrink: 0; }
.pcms-host-row__avatar img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.pcms-host-row__initial { color: #fff; font-weight: 700; font-size: 18px; }
.pcms-host-row__verified { position: absolute; bottom: -2px; right: -2px; background: #fff; border-radius: 50%; color: var(--pcms-green-dark); line-height: 0; }
.pcms-host-row__text { display: flex; flex-direction: column; }
.pcms-host-row__text strong { color: var(--pcms-ink); font-size: 16px; }
.pcms-host-row__text span { color: var(--pcms-muted); font-size: 14px; }

/* Highlights */
.pcms-highlights { display: flex; flex-direction: column; gap: 22px; }
.pcms-highlight { display: flex; gap: 16px; align-items: flex-start; }
.pcms-highlight__icon { color: var(--pcms-ink); flex-shrink: 0; }
.pcms-highlight strong { display: block; color: var(--pcms-ink); font-size: 16px; font-weight: 600; }
.pcms-highlight span { color: var(--pcms-muted); font-size: 14px; }

/* Description */
.pcms-description__body { color: var(--pcms-text); }
.pcms-description__body p { margin: 0 0 16px; }
.pcms-description[data-clamp] .pcms-description__body { max-height: 165px; overflow: hidden; position: relative; -webkit-mask-image: linear-gradient(to bottom, #000 60%, transparent); mask-image: linear-gradient(to bottom, #000 60%, transparent); }
.pcms-description.is-open .pcms-description__body { max-height: none; -webkit-mask-image: none; mask-image: none; }
.pcms-description__body + .pcms-textbtn { margin-top: 14px; }

/* Sleeping */
.pcms-sleeping__row { display: flex; gap: 18px; flex-wrap: wrap; }
.pcms-sleeping__card { border: 1px solid var(--pcms-border); border-radius: 14px; padding: 18px 20px; min-width: 180px; display: flex; flex-direction: column; gap: 6px; }
.pcms-sleeping__card strong { color: var(--pcms-ink); font-size: 15px; margin-top: 8px; }
.pcms-sleeping__card span { color: var(--pcms-muted); font-size: 14px; }

/* Amenities */
.pcms-amenities__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 24px; margin-bottom: 24px; }
.pcms-amenity { display: flex; align-items: center; gap: 14px; font-size: 15px; color: var(--pcms-text); padding: 4px 0; }
.pcms-amenity__icon { width: 24px; height: 24px; object-fit: contain; color: var(--pcms-ink); flex-shrink: 0; }
/* Premium amenity bullet — brand-green disc + rounded tick */
.pcms-amenity__icon--check { color: var(--pcms-green); }
.pcms-amenity:hover .pcms-amenity__icon--check { color: var(--pcms-green-dark); }
.pcms-amenity.is-hidden { display: none; }
.pcms-amenities.is-open .pcms-amenity.is-hidden { display: flex; }
.pcms-amenity.is-unavailable { color: var(--pcms-muted); text-decoration: line-through; }

/* Location map */
.pcms-map, .pcms-map-picker { width: 100%; height: 380px; border-radius: 16px; overflow: hidden; background: rgba(26,26,26,.05); border: 1px solid var(--pcms-hairline); }
.pcms-location__addr { display: inline-flex; align-items: center; gap: 6px; color: var(--pcms-muted); margin: 14px 0 0; font-size: 14px; }
.pcms-location__extra { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 22px; }
.pcms-location__col h4 { font-size: 15px; font-weight: 600; color: var(--pcms-ink); margin: 0 0 6px; }
.pcms-location__col p { margin: 0; color: var(--pcms-text); font-size: 14px; line-height: 1.6; }
@media (max-width: 680px) { .pcms-location__extra { grid-template-columns: 1fr; gap: 18px; } }

/* Good to know */
.pcms-gtk__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 40px; }
.pcms-gtk { display: flex; align-items: flex-start; gap: 14px; }
.pcms-gtk__icon { color: var(--pcms-ink); flex-shrink: 0; margin-top: 1px; }
.pcms-gtk__label { display: block; font-size: 12px; color: var(--pcms-muted); text-transform: uppercase; letter-spacing: .04em; font-weight: 600; }
.pcms-gtk__value { display: block; font-size: 15px; color: var(--pcms-ink); font-weight: 600; margin-top: 1px; }
@media (max-width: 600px) { .pcms-gtk__grid { grid-template-columns: 1fr; } }

/* Policies */
.pcms-policies__title { font-size: 15px; font-weight: 600; color: var(--pcms-ink); margin: 0 0 8px; }

/* Policies */
.pcms-policies__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.pcms-richtext { color: var(--pcms-text); font-size: 14px; }
.pcms-richtext p { margin: 0 0 12px; }

/* Availability calendar (frontend view) */
.pcms-calendar { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.pcms-calendar__title { font-weight: 600; color: var(--pcms-ink); margin-bottom: 14px; }
.pcms-calendar__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.pcms-calendar__head { text-align: center; font-size: 11px; color: var(--pcms-muted); font-weight: 600; padding: 6px 0; }
.pcms-calendar__day { aspect-ratio: 1; display: grid; place-items: center; font-size: 13px; border-radius: 8px; color: var(--pcms-ink); }
.pcms-calendar__day.is-open { font-weight: 600; }
.pcms-calendar__day.is-past { color: rgba(26,26,26,.25); text-decoration: line-through; }
.pcms-calendar__day.is-blocked { color: rgba(26,26,26,.32); text-decoration: line-through; }
@media (max-width: 600px) { .pcms-calendar { grid-template-columns: 1fr; gap: 24px; } }

/* Booking sidebar — premium card */
.pcms-sidebar { position: sticky; top: 96px; }
.pcms-book {
	background: #fff; border: 1px solid var(--pcms-border); border-radius: 20px;
	box-shadow: 0 14px 48px rgba(26, 26, 26, .13); padding: 26px;
}
.pcms-book__head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 18px; flex-wrap: wrap; }
.pcms-book__price strong { font-size: 24px; font-weight: 800; color: var(--pcms-ink); letter-spacing: -.02em; }
.pcms-book__price span { color: var(--pcms-muted); font-size: 15px; }
.pcms-book__was { color: var(--pcms-muted); font-size: 15px; margin-right: 4px; text-decoration-color: rgba(249,91,91,.7); }
.pcms-book__special { display: inline-block; background: rgba(249,91,91,.1); color: var(--pcms-primary-dark); font-size: 12px; font-weight: 700; padding: 3px 9px; border-radius: 100px; margin-left: 6px; vertical-align: middle; }

/* Unified field group (dates + guests) */
.pcms-book__fields { position: relative; border: 1px solid var(--pcms-border); border-radius: 14px; margin-bottom: 14px; background: #fff; transition: border-color .15s ease; }
.pcms-book__fields:focus-within { border-color: var(--pcms-ink); }
.pcms-book__dates2 { display: grid; grid-template-columns: 1fr 1fr; }
.pcms .pcms-book__cell {
	display: block; width: 100% !important; padding: 11px 14px !important; margin: 0 !important;
	background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
	text-align: left; cursor: pointer; font: inherit; line-height: 1.4 !important; height: auto !important; min-height: 0 !important;
}
.pcms-book__dates2 .pcms-book__cell:first-child { border-radius: 14px 0 0 0 !important; }
.pcms-book__dates2 .pcms-book__cell:last-child { border-left: 1px solid var(--pcms-border) !important; border-radius: 0 14px 0 0 !important; }
.pcms-book__cell:hover { background: rgba(26,26,26,.02) !important; }
.pcms-book__cell--guests { border-top: 1px solid var(--pcms-border) !important; border-radius: 0 0 14px 14px !important; cursor: default; }
.pcms-book__cell > span { display: block; font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--pcms-ink); margin-bottom: 2px; }
.pcms-book__cell b { font-weight: 500; font-size: 14px; color: var(--pcms-muted); }
.pcms-book__cell b.has-value { color: var(--pcms-ink); font-weight: 600; }

/* Contact fields */
.pcms-book__field { display: flex; flex-direction: column; gap: 3px; border: 1px solid var(--pcms-border); border-radius: 12px; padding: 10px 14px; margin-bottom: 12px; transition: border-color .15s ease; }
.pcms-book__field:focus-within { border-color: var(--pcms-ink); }
.pcms-book__field span { font-size: 10px; text-transform: uppercase; letter-spacing: .07em; font-weight: 800; color: var(--pcms-ink); }
.pcms-book__field--full { grid-column: 1 / -1; }

/* Harden every control inside the card against theme form styles */
.pcms .pcms-book input[type="text"],
.pcms .pcms-book input[type="email"],
.pcms .pcms-book input[type="tel"],
.pcms .pcms-book textarea,
.pcms .pcms-book select {
	border: 0 !important; background: transparent !important; box-shadow: none !important; outline: none !important;
	padding: 0 !important; margin: 0 !important; height: auto !important; min-height: 0 !important; width: 100% !important;
	font: inherit !important; font-size: 14px !important; color: var(--pcms-ink) !important; line-height: 1.5 !important;
	border-radius: 0 !important;
}
.pcms .pcms-book textarea { resize: vertical; min-height: 64px !important; }
.pcms .pcms-book select {
	-webkit-appearance: none; -moz-appearance: none; appearance: none; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231a1a1a' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important; background-position: right 2px center !important; background-size: 12px 12px !important;
	padding-right: 22px !important;
}
/* Premium booking CTA — pill, gradient, sheen sweep, sliding arrow.
   ::before is force-disabled: themes (Impreza) inject ripple pseudo-elements
   into buttons; ::after is reserved for our sheen. */
.pcms .pcms-btn--book {
	position: relative; overflow: hidden;
	background: linear-gradient(135deg, var(--pcms-primary) 0%, var(--pcms-primary-dark) 100%) !important;
	border-radius: 100px !important;
	padding: 17px 26px !important;
	font-size: 13px !important; font-weight: 800 !important;
	letter-spacing: .12em; text-transform: uppercase;
	color: #fff !important;
	box-shadow: 0 10px 26px rgba(249, 91, 91, .35) !important;
	transition: transform .16s ease, box-shadow .2s ease;
}
.pcms .pcms-btn--book:hover {
	transform: translateY(-1px);
	/* Bright, fresh leaf-green so white text stays clearly readable. */
	background: linear-gradient(135deg, #5bb34f 0%, #35803a 100%) !important;
	color: #fff !important;
	box-shadow: 0 14px 32px rgba(53, 128, 58, .4) !important;
}
/* Force the label + arrow to white on hover (beat any theme text color). */
.pcms .pcms-btn--book:hover [data-book-label],
.pcms .pcms-btn--book:hover .pcms-btn__arrow { color: #fff !important; }
.pcms .pcms-btn--book:active { transform: translateY(0); box-shadow: 0 6px 16px rgba(53, 128, 58, .32) !important; }
.pcms .pcms-btn--book:disabled { opacity: .7; transform: none; cursor: default; }
.pcms .pcms-btn--book::before { content: none !important; }
.pcms .pcms-btn--book::after {
	content: ''; position: absolute; top: 0; left: -70%; width: 45%; height: 100%;
	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .35), transparent);
	transform: skewX(-20deg); transition: left .5s ease; pointer-events: none;
}
.pcms .pcms-btn--book:hover::after { left: 135%; }
.pcms-btn__arrow { flex-shrink: 0; transition: transform .18s ease; }
.pcms .pcms-btn--book:hover .pcms-btn__arrow { transform: translateX(4px); }

/* Keep other plugin buttons free of theme ripple pseudo-elements too. */
.pcms .pcms-btn:not(.pcms-btn--book)::before,
.pcms .pcms-btn:not(.pcms-btn--book)::after { content: none !important; }

/* Premium date-range picker */
.pcms-datepicker {
	position: absolute; top: calc(100% + 10px); left: 0; right: 0; z-index: 80;
	background: #fff; border: 1px solid var(--pcms-border); border-radius: 16px;
	box-shadow: 0 18px 56px rgba(26, 26, 26, .2); padding: 18px;
}
.pcms-dp__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.pcms-dp__title { font-weight: 700; color: var(--pcms-ink); font-size: 15px; }
.pcms .pcms-dp__nav {
	width: 34px; height: 34px; border: 1px solid var(--pcms-border) !important; border-radius: 50% !important;
	background: #fff !important; display: grid; place-items: center; cursor: pointer; color: var(--pcms-ink) !important;
	padding: 0 !important; margin: 0 !important; box-shadow: none !important;
}
.pcms .pcms-dp__nav:hover:not(:disabled) { border-color: var(--pcms-ink) !important; }
.pcms .pcms-dp__nav:disabled { opacity: .3; cursor: default; }
.pcms-dp__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px 0; }
.pcms-dp__wd { text-align: center; font-size: 11px; font-weight: 700; color: var(--pcms-muted); padding: 6px 0; }
.pcms .pcms-dp__day {
	aspect-ratio: 1; width: 100% !important; border: 0 !important; background: none !important;
	border-radius: 50% !important; font-size: 13px !important; font-weight: 500; color: var(--pcms-ink) !important;
	cursor: pointer; display: grid; place-items: center; padding: 0 !important; margin: 0 !important;
	box-shadow: none !important; line-height: 1 !important; height: auto !important; min-height: 0 !important;
	transition: box-shadow .1s ease;
}
.pcms .pcms-dp__day:hover:not(:disabled) { box-shadow: inset 0 0 0 1.5px var(--pcms-ink) !important; }
.pcms .pcms-dp__day:disabled { color: rgba(26,26,26,.25) !important; text-decoration: line-through; cursor: default; }
.pcms .pcms-dp__day.is-today { font-weight: 800; }
.pcms .pcms-dp__day.in-range { background: rgba(26,26,26,.07) !important; border-radius: 0 !important; }
.pcms .pcms-dp__day.is-start,
.pcms .pcms-dp__day.is-end { background: var(--pcms-ink) !important; color: #fff !important; font-weight: 700; }
.pcms-dp__foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--pcms-hairline); }
.pcms-dp__hint { font-size: 12px; color: var(--pcms-muted); }
.pcms .pcms-dp__clear {
	background: none !important; border: 0 !important; box-shadow: none !important; padding: 4px 6px !important; margin: 0 !important;
	font-size: 13px !important; font-weight: 600; text-decoration: underline; text-underline-offset: 3px;
	color: var(--pcms-ink) !important; cursor: pointer; height: auto !important;
}
.pcms-book__terms { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; color: var(--pcms-muted); margin-bottom: 12px; }
.pcms-book__note { text-align: center; color: var(--pcms-muted); font-size: 13px; margin: 12px 0 0; }
.pcms-book .pcms-btn--primary { margin-top: 4px; }
.pcms-book__breakdown { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--pcms-hairline); display: flex; flex-direction: column; gap: 12px; }
.pcms-book__line { display: flex; justify-content: space-between; font-size: 15px; color: var(--pcms-text); }
.pcms-book__line span:first-child { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--pcms-border); }
.pcms-book__line--total { border-top: 1px solid var(--pcms-hairline); padding-top: 14px; font-weight: 700; color: var(--pcms-ink); }
.pcms-book__line--total span:first-child { text-decoration: none; }
.pcms-book__message { margin-top: 14px; padding: 12px 14px; border-radius: 10px; font-size: 14px; }
.pcms-book__message.is-success { background: rgba(48,103,44,.1); color: var(--pcms-green-dark); }
.pcms-book__message.is-error { background: rgba(249,91,91,.1); color: var(--pcms-primary-dark); }
.pcms-book + * { margin-top: 16px; }
.pcms-sidebar__links { text-align: center; margin-top: 18px; }

/* Enquiry-mode booking head (hotel card) */
.pcms-book__enquiry-title { font-size: 19px; font-weight: 600; color: var(--pcms-ink); display: block; }
.pcms-book__from { display: block; color: var(--pcms-muted); font-size: 14px; margin-top: 3px; }
.pcms-book__ask { text-align: center; color: var(--pcms-muted); font-size: 13px; margin: 14px 0 0; }
.pcms-book__ask a { color: var(--pcms-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* Contact card (under the booking card) */
.pcms-contact {
	background: #fff; border: 1px solid var(--pcms-border); border-radius: 16px;
	padding: 20px 22px; margin-top: 16px;
}
.pcms-contact__title { font-size: 15px; font-weight: 600; color: var(--pcms-ink); margin: 0 0 12px; }
.pcms-contact__row {
	display: flex; align-items: center; gap: 10px; padding: 8px 0;
	font-size: 14px; color: var(--pcms-text); font-weight: 500;
}
.pcms-contact__row:hover { color: var(--pcms-ink); }
.pcms-contact__row svg { color: var(--pcms-muted); flex-shrink: 0; }
.pcms-contact__channels { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.pcms-contact__chip {
	width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center;
	background: rgba(26,26,26,.05); color: var(--pcms-ink); transition: transform .15s ease, background .15s ease, color .15s ease;
}
.pcms-contact__chip:hover { transform: translateY(-2px) scale(1.06); color: #fff; box-shadow: 0 6px 16px rgba(26, 26, 26, .2); }
.pcms-contact__chip:hover svg { fill: #fff; }
.pcms-contact__chip--whatsapp:hover { background: #25d366; }
.pcms-contact__chip--messenger:hover { background: #0a84ff; }
.pcms-contact__chip--telegram:hover { background: #2aabee; }
.pcms-contact__chip--facebook:hover { background: #1877f2; }
.pcms-contact__chip--instagram:hover { background: #e1306c; }
.pcms-contact__chip--tiktok:hover { background: #ff2f56; }

/* Mobile bar */
.pcms-mobilebar {
	position: fixed; bottom: 0; left: 0; right: 0; z-index: 40; display: none;
	align-items: center; justify-content: space-between; gap: 14px;
	background: #fff; border-top: 1px solid var(--pcms-border); padding: 14px 20px;
	box-shadow: 0 -4px 20px rgba(26,26,26,.08);
}
.pcms-mobilebar__price strong { font-size: 17px; font-weight: 700; color: var(--pcms-ink); }
.pcms-mobilebar__price span { color: var(--pcms-muted); font-size: 14px; }
.pcms-mobilebar .pcms-btn { padding: 12px 26px; }

/* Lightbox */
.pcms-lightbox { position: fixed; inset: 0; z-index: 9999; background: rgba(0,0,0,.94); display: flex; align-items: center; justify-content: center; }
.pcms-lightbox[hidden] { display: none; }
.pcms-lightbox__img { max-width: 90vw; max-height: 85vh; object-fit: contain; border-radius: 8px; }
.pcms-lightbox__close { position: absolute; top: 20px; right: 26px; background: none; border: 0; color: #fff; font-size: 40px; line-height: 1; cursor: pointer; }
.pcms-lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,.14); border: 0; color: #fff; font-size: 34px; width: 54px; height: 54px; border-radius: 50%; cursor: pointer; }
.pcms-lightbox__nav:hover { background: rgba(255,255,255,.26); }
.pcms-lightbox__nav--prev { left: 26px; }
.pcms-lightbox__nav--next { right: 26px; }
.pcms-lightbox__counter { position: absolute; bottom: 26px; left: 50%; transform: translateX(-50%); color: #fff; font-size: 14px; }

/* Responsive ------------------------------------------------------------ */
@media (max-width: 1024px) {
	.pcms-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; }
}
@media (max-width: 900px) {
	.pcms-layout { grid-template-columns: 1fr; gap: 0; }
	.pcms-sidebar { position: static; margin-top: 8px; }
	.pcms-sidebar .pcms-book { box-shadow: none; }
}
@media (max-width: 768px) {
	.pcms-mosaic { grid-template-columns: 1fr; aspect-ratio: 4 / 3; }
	.pcms-mosaic__grid { display: none; }
		.pcms-amenities__grid,
	.pcms-policies__grid { grid-template-columns: 1fr; }
	.pcms-mobilebar { display: flex; }
	.pcms-single { padding-bottom: 90px; }
	.pcms-single__title { font-size: 24px; }
}

/* ======================================================================
 * ROOMS LISTING (grid / list / compact + filters + view switch)
 * =================================================================== */
.pcms-rooms-listing { max-width: var(--pcms-maxw-list, 100%); margin: 0 auto; padding: 0 0 60px; }
.pcms-rooms-archive { padding: 40px 24px 80px; }

.pcms-rooms-bar {
	display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
	padding: 16px 0 18px; border-bottom: 1px solid var(--pcms-hairline); margin-bottom: 16px;
}
.pcms-rfilters { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; flex: 1; }
.pcms-rfilters__search { position: relative; display: flex; align-items: center; min-width: 220px; }
.pcms-rfilters__search-icon { position: absolute; left: 14px; color: var(--pcms-muted); pointer-events: none; }
.pcms-rfilters__input {
	width: 100%; border: 1px solid var(--pcms-border); border-radius: 100px;
	padding: 11px 16px 11px 40px; font: inherit; font-size: 14px; color: var(--pcms-ink); background: #fff;
}
.pcms-rfilters__input:focus { outline: none; border-color: var(--pcms-ink); }
.pcms-rfilters__price { display: flex; flex-direction: column; gap: 2px; font-size: 12px; color: var(--pcms-muted); min-width: 150px; }
.pcms-rfilters__price b { color: var(--pcms-ink); }

/* View switch */
.pcms-viewswitch { display: inline-flex; gap: 2px; background: rgba(26,26,26,.05); border-radius: 12px; padding: 4px; margin-left: auto; }
.pcms-viewswitch__btn {
	display: grid; place-items: center; width: 38px; height: 34px; border: 0; background: none;
	border-radius: 9px; color: var(--pcms-muted); cursor: pointer; transition: background .15s, color .15s;
}
.pcms-viewswitch__btn:hover { color: var(--pcms-ink); }
.pcms-viewswitch__btn.is-active { background: #fff; color: var(--pcms-ink); box-shadow: 0 1px 3px rgba(26,26,26,.12); }

.pcms-rooms-count { font-size: 14px; color: var(--pcms-muted); font-weight: 500; margin-bottom: 18px; }
.pcms-rooms-loader { display: flex; justify-content: center; padding: 30px; }

/* Room card — shared */
.pcms-room { position: relative; }
.pcms-room__link { display: block; color: inherit; }
.pcms-room__media { position: relative; overflow: hidden; border-radius: var(--pcms-radius); background: rgba(26,26,26,.05); }
.pcms-room__img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.pcms-room:hover .pcms-room__img { transform: scale(1.04); }
.pcms-room__type { position: absolute; top: 12px; left: 12px; background: #fff; color: var(--pcms-ink); font-size: 12px; font-weight: 600; padding: 5px 11px; border-radius: 100px; box-shadow: 0 1px 4px rgba(26,26,26,.14); }
.pcms-room__soldout { position: absolute; top: 12px; right: 12px; background: var(--pcms-ink); color: #fff; font-size: 12px; font-weight: 600; padding: 5px 11px; border-radius: 100px; }
.pcms-room.is-booked .pcms-room__img { filter: grayscale(.4) brightness(.96); }
.pcms-room__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.pcms-room__title { font-size: 16px; font-weight: 600; color: var(--pcms-ink); margin: 0; line-height: 1.35; }
.pcms-room__meta { font-size: 14px; color: var(--pcms-muted); margin: 4px 0 0; }
.pcms-room__excerpt { font-size: 14px; color: var(--pcms-text); margin: 10px 0 0; }
.pcms-room__type-inline { font-size: 13px; color: var(--pcms-muted); }
.pcms-room__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; }
.pcms-room__foot:empty { display: none; margin: 0; }
.pcms-room__cta { padding: 9px 18px; font-size: 13px; }

/* Capacity chip (occupancy at a glance) */
.pcms-room__cap {
	display: inline-flex; align-items: center; gap: 5px; flex-shrink: 0;
	background: rgba(26,26,26,.05); color: var(--pcms-ink);
	font-size: 13px; font-weight: 600; padding: 4px 10px; border-radius: 100px;
}
.pcms-room__cap .pcms-icon { color: var(--pcms-ink); }

/* Price chip overlaid on the image */
.pcms-room__pricechip {
	position: absolute; bottom: 12px; left: 12px; z-index: 2;
	background: #fff; border-radius: 12px; padding: 8px 12px;
	box-shadow: 0 2px 10px rgba(26,26,26,.18); line-height: 1;
}
.pcms-price { display: inline-flex; align-items: baseline; gap: 6px; white-space: nowrap; }
.pcms-price__was { color: var(--pcms-muted); font-size: 13px; font-weight: 500; text-decoration-color: rgba(249,91,91,.7); text-decoration-thickness: 1.5px; }
.pcms-price__now { color: var(--pcms-ink); font-weight: 800; font-size: 17px; }
.pcms-price__unit { color: var(--pcms-muted); font-size: 12px; font-weight: 500; }
.is-special .pcms-price__now { color: var(--pcms-primary-dark); }
.pcms-price--inline .pcms-price__now { font-size: 16px; }

/* Special-offer badge (top-right of the image) */
.pcms-room__special {
	position: absolute; top: 12px; right: 12px; z-index: 2;
	background: var(--pcms-primary); color: #fff;
	font-size: 12px; font-weight: 700; padding: 5px 11px; border-radius: 100px;
	box-shadow: 0 2px 8px rgba(249,91,91,.35);
}
.pcms-room__special-inline { color: var(--pcms-primary-dark); font-weight: 700; }

/* GRID view */
.pcms-rooms--grid { display: grid; grid-template-columns: repeat(var(--pcms-cols, 3), minmax(0, 1fr)); gap: 28px; }
.pcms-rooms--grid .pcms-room__media { aspect-ratio: 4 / 3; margin-bottom: 12px; }
.pcms-rooms--grid .pcms-room__foot { margin-top: 8px; }
@media (max-width: 1023px) { .pcms-rooms--grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 22px; } }
@media (max-width: 600px) { .pcms-rooms--grid { grid-template-columns: 1fr; } }

/* LIST view */
.pcms-rooms--list { display: flex; flex-direction: column; gap: 18px; }
.pcms-rooms--list .pcms-room__link { display: grid; grid-template-columns: 300px 1fr; gap: 22px; border: 1px solid var(--pcms-border); border-radius: 16px; overflow: hidden; padding: 0; transition: box-shadow .2s ease; }
.pcms-rooms--list .pcms-room:hover .pcms-room__link { box-shadow: var(--pcms-shadow-soft); }
.pcms-rooms--list .pcms-room__media { aspect-ratio: auto; height: 100%; min-height: 210px; border-radius: 0; }
.pcms-rooms--list .pcms-room__body { padding: 22px 22px 22px 0; display: flex; flex-direction: column; }
.pcms-rooms--list .pcms-room__foot { margin-top: auto; justify-content: flex-end; }
@media (max-width: 680px) {
	.pcms-rooms--list .pcms-room__link { grid-template-columns: 1fr; }
	.pcms-rooms--list .pcms-room__media { min-height: 200px; aspect-ratio: 16/10; }
	.pcms-rooms--list .pcms-room__body { padding: 0 18px 18px; }
}

/* COMPACT view — premium horizontal cards with a full-height image */
.pcms-rooms--compact { display: flex; flex-direction: column; gap: 14px; }
.pcms-rooms--compact .pcms-room__link {
	display: grid; grid-template-columns: 210px minmax(0, 1fr); align-items: stretch; gap: 0;
	background: #fff; border: 1px solid var(--pcms-border); border-radius: 16px; overflow: hidden;
	transition: box-shadow .22s ease, border-color .22s ease, transform .1s ease;
}
.pcms-rooms--compact .pcms-room:hover .pcms-room__link { box-shadow: var(--pcms-shadow-card); border-color: transparent; transform: translateY(-1px); }
.pcms-rooms--compact .pcms-room__media { width: 100%; height: 100%; min-height: 134px; border-radius: 0; aspect-ratio: auto; overflow: hidden; }
.pcms-rooms--compact .pcms-room__media .pcms-room__img,
.pcms-rooms--compact .pcms-room__media img { width: 100%; height: 100%; object-fit: cover; }
.pcms-rooms--compact .pcms-room:hover .pcms-room__img { transform: scale(1.05); }
/* Body is a grid: text stacks in column 1, price/CTA sit in column 2 with a divider. */
.pcms-rooms--compact .pcms-room__body {
	display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-auto-rows: min-content;
	align-content: center; align-items: center; gap: 2px 0; padding: 18px 0 18px 24px; min-width: 0;
}
.pcms-rooms--compact .pcms-room__type-inline { grid-column: 1; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--pcms-primary-dark); }
.pcms-rooms--compact .pcms-room__head { grid-column: 1; display: flex; align-items: center; gap: 10px; }
.pcms-rooms--compact .pcms-room__title { font-size: 18px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pcms-rooms--compact .pcms-room__meta { grid-column: 1; margin-top: 2px; font-size: 14px; }
.pcms-rooms--compact .pcms-room__foot {
	grid-column: 2; grid-row: 1 / 99; margin: 0;
	display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 12px;
	padding: 0 26px; border-left: 1px solid var(--pcms-hairline); min-width: 168px; align-self: stretch;
}
.pcms-rooms--compact .pcms-room__foot .pcms-price__now { font-size: 20px; }
.pcms-rooms--compact .pcms-room__cta { padding: 11px 26px; font-size: 13px; }
@media (max-width: 720px) {
	.pcms-rooms--compact .pcms-room__link { grid-template-columns: 120px minmax(0, 1fr); }
	.pcms-rooms--compact .pcms-room__media { min-height: 100%; }
	.pcms-rooms--compact .pcms-room__body { grid-template-columns: 1fr; padding: 14px 18px; }
	.pcms-rooms--compact .pcms-room__foot {
		grid-column: 1; grid-row: auto; flex-direction: row; align-items: center; justify-content: space-between;
		border-left: 0; padding: 12px 0 0; margin-top: 10px; min-width: 0; border-top: 1px solid var(--pcms-hairline);
	}
	.pcms-rooms--compact .pcms-room__title { white-space: normal; }
}

/* Facts strip (room single) */
.pcms-facts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.pcms-fact {
	display: inline-flex; align-items: center; gap: 8px;
	border: 1px solid var(--pcms-border); border-radius: 12px;
	padding: 10px 14px; font-size: 14px; color: var(--pcms-ink); font-weight: 500;
}
.pcms-fact .pcms-icon { color: var(--pcms-ink); flex-shrink: 0; }

/* Perks (room single + list cards) */
.pcms-perks { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; }
.pcms-perk { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; color: var(--pcms-green-dark); font-weight: 600; }
.pcms-perk .pcms-icon { color: var(--pcms-green); }
.pcms-room__perks { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 10px 0 0; }
.pcms-room__perk { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; color: var(--pcms-green-dark); font-weight: 600; }
.pcms-room__perk .pcms-icon { color: var(--pcms-green); }

/* Related rooms */
.pcms-related { margin-top: 40px; padding-top: 40px; border-top: 1px solid var(--pcms-hairline); }
.pcms-related__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 20px; }
.pcms-related__head .pcms-h3 { margin: 0; }
@media (max-width: 900px) { .pcms-related .pcms-rooms--grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .pcms-related .pcms-rooms--grid { grid-template-columns: 1fr; } }

/* WhatsApp button */
.pcms-btn--whatsapp { background: #25d366; color: #fff; font-weight: 700; margin-top: 12px; border-radius: 100px; }
.pcms-btn--whatsapp:hover { background: #1eb658; color: #fff; }

/* Filter bar hardening — themes (Impreza/WPBakery) apply global form styles
   (width:100%, heights, shadows) that break the pills. Explicit + !important
   keeps the bar as ONE tidy row on desktop. */
.pcms-rooms-bar { flex-wrap: nowrap; align-items: center; }
.pcms .pcms-rfilters { flex-wrap: nowrap; flex: 1 1 auto; min-width: 0; align-items: center; }
.pcms .pcms-rfilters__search { flex: 1 1 210px; min-width: 150px; }
.pcms .pcms-rfilters__input {
	width: 100% !important; height: 44px !important; margin: 0 !important;
	padding: 0 14px 0 40px !important;
	border: 1px solid var(--pcms-border) !important; border-radius: 100px !important;
	background: #fff !important; box-shadow: none !important; outline: none;
	font-size: 14px !important; line-height: 42px !important; color: var(--pcms-ink) !important;
}
.pcms .pcms-rfilters__input:focus { border-color: var(--pcms-ink) !important; }
.pcms .pcms-rfilters select.pcms-pill {
	flex: 0 0 auto; width: auto !important; max-width: 175px; height: 44px !important; margin: 0 !important;
	padding: 0 36px 0 16px !important;
	border: 1px solid var(--pcms-border) !important; border-radius: 100px !important;
	background-color: #fff !important; box-shadow: none !important;
	color: var(--pcms-ink) !important; font-size: 14px !important; line-height: 42px !important;
	-webkit-appearance: none; -moz-appearance: none; appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231a1a1a' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 14px center !important;
	background-size: 12px 12px !important;
}
.pcms .pcms-rfilters__price { flex: 0 0 132px; min-width: 132px; }
.pcms .pcms-rfilters__price input[type="range"] { width: 100% !important; height: auto !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
.pcms .pcms-viewswitch { flex: 0 0 auto; }
@media (max-width: 1100px) {
	.pcms-rooms-bar { flex-wrap: wrap; }
	.pcms .pcms-rfilters { flex-wrap: wrap; }
	.pcms .pcms-rfilters__search { flex: 1 1 100%; }
	.pcms .pcms-viewswitch { margin-left: 0; }
}

/* Rooms section on the property page */
.pcms-rooms-section__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.pcms-rooms-section__head .pcms-h3 { margin: 0; }

/* Premium page header block (room pages + rooms archive) ---------------- */
.pcms-pagehead {
	background: #fff;
	border: 1px solid var(--pcms-border);
	border-radius: 18px;
	margin-bottom: 26px;
	box-shadow: 0 2px 14px rgba(26, 26, 26, .05);
	overflow: hidden;
}
.pcms-pagehead__crumbs {
	display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
	font-size: 12.5px; color: var(--pcms-muted);
	padding: 12px 28px; margin: 0;
	background: #faf9f6; border-bottom: 1px solid var(--pcms-hairline);
}
.pcms-pagehead__crumbs a { color: var(--pcms-muted); font-weight: 500; transition: color .15s ease; }
.pcms-pagehead__crumbs a:hover { color: var(--pcms-ink); }
.pcms-pagehead__crumbs svg { color: rgba(26, 26, 26, .28); flex-shrink: 0; }
.pcms-pagehead__crumbs [aria-current] { color: var(--pcms-ink); font-weight: 600; }
.pcms-pagehead__row {
	display: flex; align-items: center; justify-content: space-between;
	gap: 24px; padding: 20px 28px 22px; flex-wrap: wrap;
}
.pcms-pagehead__main { min-width: 0; }
.pcms-pagehead__eyebrow {
	display: flex; align-items: center; gap: 10px;
	font-size: 10.5px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase;
	color: var(--pcms-primary-dark); margin: 0 0 7px;
}
.pcms-pagehead__eyebrow::before { content: ''; width: 26px; height: 2px; background: var(--pcms-primary); border-radius: 2px; flex-shrink: 0; }
.pcms-pagehead__title {
	font-size: 28px; font-weight: 600; letter-spacing: -.015em;
	color: var(--pcms-ink); margin: 0; line-height: 1.2;
}
.pcms-pagehead__meta { margin: 7px 0 0; color: var(--pcms-muted); font-size: 14px; }
.pcms-pagehead__price { text-align: right; flex-shrink: 0; }
.pcms-pagehead__price-label { display: block; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--pcms-muted); margin-bottom: 2px; }
.pcms-pagehead__price-value { display: inline-flex; align-items: baseline; gap: 7px; white-space: nowrap; }
.pcms-pagehead__price-value s { color: var(--pcms-muted); font-size: 14px; text-decoration-color: rgba(249, 91, 91, .7); }
.pcms-pagehead__price-value b { font-size: 24px; font-weight: 800; letter-spacing: -.02em; color: var(--pcms-ink); }
.pcms-pagehead__price-unit { color: var(--pcms-muted); font-size: 13px; }
@media (max-width: 768px) {
	.pcms-pagehead { border-radius: 16px; }
	.pcms-pagehead__crumbs { padding: 11px 18px; }
	.pcms-pagehead__row { padding: 16px 18px 18px; gap: 10px; }
	.pcms-pagehead__title { font-size: 23px; }
	.pcms-pagehead__price { text-align: left; }
}

/* Standalone room / property templates render directly beneath the theme's
   fixed header (which reserves no space), so offset the top to keep the
   breadcrumb + title block from hiding behind it. */
.pcms-standalone { padding-top: 110px; }
@media (max-width: 782px) { .pcms-standalone { padding-top: 84px; } }
@media (max-width: 480px) { .pcms-standalone { padding-top: 72px; } }

/* Reusable page-title block — [pcms_page_title] for any page. */
.pcms-pagetitle { max-width: var(--pcms-page-w, 1200px); margin-left: auto; margin-right: auto; }
.pcms-pagetitle--offset { padding-top: 110px; }
@media (max-width: 782px) { .pcms-pagetitle--offset { padding-top: 84px; } }
@media (max-width: 480px) { .pcms-pagetitle--offset { padding-top: 72px; } }
.pcms-pagehead__subtitle { margin: 11px 0 0; color: var(--pcms-muted); font-size: 15px; line-height: 1.6; max-width: 760px; }
.pcms-pagehead--center .pcms-pagehead__crumbs { justify-content: center; }
.pcms-pagehead--center .pcms-pagehead__row { justify-content: center; text-align: center; }
.pcms-pagehead--center .pcms-pagehead__main { max-width: 820px; }
.pcms-pagehead--center .pcms-pagehead__eyebrow { justify-content: center; }
.pcms-pagehead--center .pcms-pagehead__subtitle { margin-left: auto; margin-right: auto; }

@media (max-width: 640px) {
	.pcms-rooms-bar { gap: 10px; }
	.pcms-viewswitch { margin-left: 0; }
	.pcms-rfilters { width: 100%; }
	.pcms-rfilters__search { min-width: 100%; }
}
