/* Package Showcase — front end
 * Fonts and text colour are inherited from the theme.
 * Accent colour: custom (settings) → Astra → Elementor → Kadence → block theme → GeneratePress → fallback teal.
 */
.pshow,
.pshow-modal,
.pshow-banner {
	--pshow-accent: var(--pshow-accent-custom,
		var(--ast-global-color-0,
		var(--e-global-color-primary,
		var(--global-palette1,
		var(--wp--preset--color--primary,
		var(--accent,
		#0e7c7b))))));
	--pshow-arrow-size: 64px;
	--pshow-cormorant: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
}

.pshow {
	--pshow-gap: 36px;
	--pshow-gutter: 40px;
	--pshow-visible: var(--pshow-cols, 3);
	position: relative;
	width: 100%;
	max-width: 100%;
	color: inherit;
	font-family: inherit;
	box-sizing: border-box;
	margin-bottom: 0;
}
.pshow *,
.pshow-modal * { box-sizing: border-box; }

/* Full width: break out of the theme's content container to the viewport edges. */
.pshow.pshow--full {
	width: calc(100vw - var(--pshow-sbw, 0px));
	max-width: none;
	margin-left: calc(50% - (50vw - var(--pshow-sbw, 0px) / 2));
	margin-right: 0;
	left: auto;
	right: auto;
}

@media (max-width: 1024px) {
	.pshow { --pshow-visible: var(--pshow-cols-t, 2); --pshow-gap: 24px; --pshow-arrow-size: 52px; }
}
@media (max-width: 640px) {
	.pshow { --pshow-visible: var(--pshow-cols-m, 1); --pshow-gap: 16px; --pshow-arrow-size: 44px; }
}

.pshow-heading { text-align: center; margin: 0 0 32px; padding: 0 var(--pshow-gutter); }

.pshow-stage { position: relative; padding: 0 var(--pshow-gutter); }
.pshow.is-scrollable .pshow-stage,
.pshow.is-scrollable .pshow-heading { padding-left: max(var(--pshow-gutter), 56px); padding-right: max(var(--pshow-gutter), 56px); }
@media (max-width: 640px) {
	.pshow-heading,
	.pshow-stage,
	.pshow.is-scrollable .pshow-stage,
	.pshow.is-scrollable .pshow-heading { padding-left: var(--pshow-gutter); padding-right: var(--pshow-gutter); }
}
/* Tablets & phones: 20px side spacing (matches a full-width Astra header and the venue pages). */
@media (max-width: 921px) {
	.pshow,
	.pshow-banner { --pshow-gutter: 20px !important; }
}

/* Grid display (Rooms page): all cards in rows, no arrows. */
.pshow.pshow--grid .pshow-track {
	display: grid;
	grid-template-columns: repeat(var(--pshow-visible), minmax(0, 1fr));
	gap: 56px var(--pshow-gap);
	transform: none !important;
}
.pshow.pshow--grid .pshow-card { flex: none; width: auto; }
.pshow.pshow--grid .pshow-nav { display: none !important; }
.pshow.pshow--grid .pshow-stage,
.pshow.pshow--grid .pshow-heading { padding-left: var(--pshow-gutter); padding-right: var(--pshow-gutter); }
@media (max-width: 640px) { .pshow.pshow--grid .pshow-track { row-gap: 44px; } }

/* ---------- Rooms page banner ---------- */
.pshow-banner {
	--pshow-gutter: 40px;
	position: relative;
	width: calc(100vw - var(--pshow-sbw, 0px));
	max-width: none;
	margin-left: calc(50% - (50vw - var(--pshow-sbw, 0px) / 2));
	min-height: max(380px, var(--pshow-hero-h, 60vh));
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background: #1f1f1f;
	color: #fff;
	box-sizing: border-box;
}
.pshow-banner--plain { background: linear-gradient(135deg, var(--pshow-accent), #1f1f1f); }
.pshow-banner .pshow-hero__img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	margin: 0 !important;
	animation: pshow-zoom 14s ease-out both;
}
@keyframes pshow-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }
.pshow-banner__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, .78) 0%, rgba(0, 0, 0, .35) 45%, rgba(0, 0, 0, .2) 100%);
}
.pshow-banner__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	padding: 72px var(--pshow-gutter) 56px;
	box-sizing: border-box;
}
body.pshow-transparent-header .pshow-banner__inner { padding-top: 140px; }
.pshow-banner--center .pshow-banner__inner { text-align: center; }
.pshow-banner--center .pshow-banner__subtitle { margin-left: auto; margin-right: auto; }
.pshow-banner--center .pshow-banner__actions { justify-content: center; }
.pshow-banner__eyebrow { margin: 0 0 10px; font-size: .8em; letter-spacing: .22em; text-transform: uppercase; opacity: .85; color: #fff; }
.pshow-banner .pshow-banner__title { margin: 0; color: #fff; font-size: clamp(34px, 5vw, 68px); line-height: 1.08; }
.pshow-banner__subtitle { margin: 12px 0 0; font-size: clamp(17px, 1.6vw, 23px); opacity: .92; max-width: 760px; color: #fff; }
.pshow-banner__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.pshow-banner .pshow-banner__btn {
	display: inline-flex;
	align-items: center;
	padding: 15px 30px;
	background: var(--pshow-accent);
	color: #fff;
	font-weight: 700;
	font-size: .88em;
	letter-spacing: .07em;
	text-transform: uppercase;
	text-decoration: none;
	transition: filter .2s;
}
.pshow-banner .pshow-banner__btn:hover { filter: brightness(.9); }
@media (max-width: 640px) {
	.pshow-banner { min-height: max(260px, var(--pshow-hero-hm, 45vh)); }
	.pshow-banner__inner { padding-top: 40px; padding-bottom: 24px; }
	body.pshow-transparent-header .pshow-banner__inner { padding-top: 96px; }
	.pshow-banner__eyebrow { font-size: .7em; margin-bottom: 6px; }
	.pshow-banner .pshow-banner__title { font-size: clamp(28px, 8vw, 36px); }
	.pshow-banner__subtitle { margin-top: 6px; font-size: 15px; }
}

/* Transparent header over the banner (fallback when the theme doesn't do it). */
body.pshow-transparent-header:not(.ast-theme-transparent-header) #masthead:not(.scrolled-header) {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	z-index: 999;
	background: transparent !important;
}
body.admin-bar.pshow-transparent-header:not(.ast-theme-transparent-header) #masthead:not(.scrolled-header) { top: 32px; }
@media (max-width: 782px) { body.admin-bar.pshow-transparent-header:not(.ast-theme-transparent-header) #masthead:not(.scrolled-header) { top: 46px; } }
body.pshow-transparent-header #masthead:not(.scrolled-header) .main-header-bar,
body.pshow-transparent-header #masthead:not(.scrolled-header) .ast-primary-header-bar,
body.pshow-transparent-header #masthead:not(.scrolled-header) .ast-above-header-bar,
body.pshow-transparent-header #masthead:not(.scrolled-header) .ast-below-header-bar { background: transparent !important; background-color: transparent !important; }
body.pshow-transparent-header:not(.ast-theme-transparent-header) #masthead:not(.scrolled-header) .menu-link,
body.pshow-transparent-header:not(.ast-theme-transparent-header) #masthead:not(.scrolled-header) .site-title a,
body.pshow-transparent-header:not(.ast-theme-transparent-header) #masthead:not(.scrolled-header) .menu-toggle { color: #fff !important; }
@media (prefers-reduced-motion: reduce) { .pshow-banner .pshow-hero__img { animation: none; } }

.pshow-viewport { overflow: hidden; }
.pshow-track {
	display: flex;
	gap: var(--pshow-gap);
	transition: transform .55s cubic-bezier(.22, .61, .36, 1);
	will-change: transform;
}

.pshow-card {
	flex: 0 0 calc((100% - (var(--pshow-visible) - 1) * var(--pshow-gap)) / var(--pshow-visible));
	min-width: 0;
	text-align: center;
	margin: 0;
	display: flex;
	flex-direction: column;
}

/* ---------- Image slider (card + modal) ---------- */
.pshow-slider {
	position: relative;
	overflow: hidden;
	aspect-ratio: var(--pshow-ratio, 4 / 3);
	background: #ece9e4;
	cursor: zoom-in;
	touch-action: pan-y;
	user-select: none;
}
.pshow-slides {
	display: flex;
	height: 100%;
	transition: transform .45s ease;
}
.pshow-slide { flex: 0 0 100%; height: 100%; overflow: hidden; }
.pshow-slide--empty { background: linear-gradient(135deg, #ece9e4, #dcd6cc); }
.pshow-slide img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	margin: 0 !important;
	border-radius: 0 !important;
	pointer-events: none;
	-webkit-user-drag: none;
}
.pshow-card .pshow-slide img { transition: transform .8s ease; }
.pshow-card .pshow-slider:hover .pshow-slide img { transform: scale(1.03); }

.pshow-arrows {
	position: absolute;
	right: 30px;
	bottom: 30px;
	display: flex;
	gap: 3px;
	z-index: 2;
}
@media (max-width: 640px) { .pshow-arrows { right: 14px; bottom: 14px; } }

.pshow .pshow-arrow,
.pshow-modal .pshow-arrow,
.pshow .pshow-nav,
.pshow-modal .pshow-close,
.pshow .pshow-open {
	all: unset;
	box-sizing: border-box;
	cursor: pointer;
}

.pshow .pshow-arrow,
.pshow-modal .pshow-arrow {
	width: var(--pshow-arrow-size);
	height: var(--pshow-arrow-size);
	display: grid;
	place-items: center;
	background: rgba(255, 255, 255, .96);
	color: var(--pshow-accent);
	transition: background-color .2s, color .2s, opacity .2s;
}
.pshow .pshow-arrow:hover,
.pshow-modal .pshow-arrow:hover { background: var(--pshow-accent); color: #fff; }
.pshow-arrow svg { width: 34%; height: 50%; }

.pshow-arrow:focus-visible,
.pshow-nav:focus-visible,
.pshow-close:focus-visible,
.pshow-open:focus-visible,
.pshow-book:focus-visible,
.pshow-readmore:focus-visible {
	outline: 2px solid var(--pshow-accent) !important;
	outline-offset: 3px;
}

/* ---------- Card text (fonts/colours come from the theme) ---------- */
.pshow .pshow-title { margin: 28px 0 12px; padding: 0; line-height: 1.25; }
.pshow .pshow-open { font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; text-align: inherit; transition: color .2s; }
.pshow .pshow-open:hover { color: var(--pshow-accent); }

.pshow-excerpt { line-height: 1.6; max-width: 92%; margin: 0 auto; }
.pshow-excerpt p { margin: 0 0 .6em; }
.pshow-excerpt p:last-child { margin-bottom: 0; }

/* Cormorant (optional "hotel" look) */
.pshow--font-cormorant .pshow-title,
.pshow--font-cormorant .pshow-heading,
.pshow-modal--font-cormorant .pshow-d-title {
	font-family: var(--pshow-cormorant);
	font-weight: 400;
	letter-spacing: .08em;
}
.pshow--font-cormorant .pshow-title { font-size: clamp(26px, 2.15vw, 36px); }

/* ---------- Read More ---------- */
.pshow-actions { margin-top: auto; padding-top: 22px; display: flex; justify-content: center; }
.pshow .pshow-readmore { cursor: pointer; display: inline-flex; align-items: center; gap: .5em; width: auto; }

.pshow--btn-solid .pshow-readmore,
.pshow--btn-outline .pshow-readmore,
.pshow--btn-link .pshow-readmore {
	all: unset;
	box-sizing: border-box;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: .5em;
	font: inherit;
	font-size: .9em;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	line-height: 1.2;
	transition: background-color .2s, color .2s, border-color .2s, gap .2s;
}
.pshow--btn-solid .pshow-readmore,
.pshow--btn-outline .pshow-readmore { padding: 14px 30px; border: 1px solid var(--pshow-accent); }
.pshow--btn-solid .pshow-readmore { background: var(--pshow-accent); color: #fff; }
.pshow--btn-solid .pshow-readmore:hover { background: transparent; color: var(--pshow-accent); }
.pshow--btn-outline .pshow-readmore { background: transparent; color: var(--pshow-accent); }
.pshow--btn-outline .pshow-readmore:hover { background: var(--pshow-accent); color: #fff; }
.pshow--btn-link .pshow-readmore { color: var(--pshow-accent); padding: 4px 0; border-bottom: 1px solid currentColor; }
.pshow--btn-link .pshow-readmore::after { content: "\2192"; }
.pshow--btn-link .pshow-readmore:hover { gap: .9em; }

/* ---------- Expand icon (shows on hover) ---------- */
.pshow .pshow-zoom {
	all: unset;
	box-sizing: border-box;
	cursor: pointer;
	position: absolute;
	left: 30px;
	bottom: 30px;
	z-index: 2;
	width: var(--pshow-arrow-size);
	height: var(--pshow-arrow-size);
	border-radius: 50%;
	background: #fff;
	color: var(--pshow-accent);
	display: grid;
	place-items: center;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .15);
	opacity: 0;
	transform: scale(.8);
	transition: opacity .25s ease, transform .25s ease, background-color .2s, color .2s;
}
.pshow .pshow-zoom svg { width: 44%; height: 44%; }
.pshow-card:hover .pshow-zoom,
.pshow .pshow-zoom:focus-visible { opacity: 1; transform: none; }
.pshow .pshow-zoom:hover { background: var(--pshow-accent); color: #fff; }
.pshow .pshow-zoom:focus-visible { outline: 2px solid var(--pshow-accent); outline-offset: 3px; }
@media (hover: none) {
	.pshow .pshow-zoom { opacity: 1; transform: none; }
}
@media (max-width: 640px) {
	.pshow .pshow-zoom { left: 14px; bottom: 14px; }
}

/* ---------- Book Now on cards ---------- */
.pshow-actions { flex-wrap: wrap; align-items: center; gap: 14px 28px; }
.pshow .pshow-card-book {
	display: inline-block;
	padding: 6px 0;
	font-weight: 700;
	font-size: 1.05em;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	color: inherit;
	border-bottom: 2px solid transparent;
	transition: color .2s, border-color .2s;
}
.pshow .pshow-card-book:hover,
.pshow .pshow-card-book:focus-visible { color: var(--pshow-accent); border-bottom-color: currentColor; }

/* ---------- Text alignment ---------- */
.pshow--align-left .pshow-card,
.pshow--align-left .pshow-heading { text-align: left; }
.pshow--align-right .pshow-card,
.pshow--align-right .pshow-heading { text-align: right; }
.pshow--align-left .pshow-excerpt { margin-left: 0; max-width: none; }
.pshow--align-right .pshow-excerpt { margin-right: 0; max-width: none; }
.pshow--align-left .pshow-actions { justify-content: flex-start; }
.pshow--align-right .pshow-actions { justify-content: flex-end; }

/* ---------- Side arrows (more packages) ---------- */
.pshow .pshow-nav {
	position: absolute;
	top: var(--pshow-nav-top, 50%);
	transform: translateY(-50%);
	width: 44px;
	height: 64px;
	display: grid;
	place-items: center;
	color: inherit;
	z-index: 3;
	transition: color .2s, opacity .2s;
}
.pshow .pshow-nav[hidden] { display: none; }
.pshow .pshow-nav:hover { color: var(--pshow-accent); }
.pshow .pshow-nav:disabled { opacity: .25; cursor: default; }
.pshow .pshow-nav svg { width: 20px; height: 36px; }
.pshow .pshow-nav--prev { left: max(0px, calc(var(--pshow-gutter) - 52px)); }
.pshow .pshow-nav--next { right: max(0px, calc(var(--pshow-gutter) - 52px)); }
@media (max-width: 640px) {
	/* On phones the "more packages" arrows sit in a row under the cards. */
	.pshow-stage { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 12px; }
	.pshow-viewport { flex: 0 0 100%; order: 0; }
	.pshow .pshow-nav {
		position: static;
		transform: none;
		order: 1;
		margin-top: 22px;
		width: 48px;
		height: 48px;
		border: 1px solid currentColor;
		color: var(--pshow-accent);
	}
	.pshow .pshow-nav svg { width: 12px; height: 22px; }
}

.pshow-empty { padding: 1em; border: 1px dashed #ccc; text-align: center; }

/* ---------- Modal ---------- */
.pshow-modal {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 3vh 2vw;
	color: inherit;
	font-family: inherit;
}
.pshow-modal[hidden] { display: none; }
.pshow-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(25, 25, 25, .82);
	opacity: 0;
	transition: opacity .3s ease;
}
.pshow-modal__dialog {
	position: relative;
	display: flex;
	width: 100%;
	height: min(94vh, 1000px);
	background: #fff;
	overflow: hidden;
	box-shadow: 0 20px 60px rgba(0, 0, 0, .35);
	opacity: 0;
	transform: translateY(16px) scale(.985);
	transition: opacity .3s ease, transform .3s ease;
}
.pshow-modal.is-open .pshow-modal__backdrop { opacity: 1; }
.pshow-modal.is-open .pshow-modal__dialog { opacity: 1; transform: none; }

.pshow-modal__media { flex: 0 0 63%; position: relative; background: #111; min-width: 0; }
.pshow-modal__media .pshow-slider { height: 100%; aspect-ratio: auto; cursor: grab; background: #111; }
.pshow-modal__media .pshow-arrows { right: 18px; bottom: 48px; }
.pshow-modal__counter {
	position: absolute;
	left: 20px;
	top: 18px;
	z-index: 2;
	padding: 4px 10px;
	font-size: 13px;
	letter-spacing: .08em;
	color: #fff;
	background: rgba(0, 0, 0, .45);
}

.pshow-modal__panel {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	position: relative;
	background: #fff;
}
.pshow-modal .pshow-close {
	position: absolute;
	top: 16px;
	right: 18px;
	width: 48px;
	height: 48px;
	display: grid;
	place-items: center;
	color: inherit;
	z-index: 2;
	transition: color .2s, transform .2s;
}
.pshow-modal .pshow-close:hover { color: var(--pshow-accent); transform: rotate(90deg); }
.pshow-close svg { width: 30px; height: 30px; }

.pshow-modal__content { flex: 1; display: flex; flex-direction: column; min-height: 0; }
.pshow-d-body {
	flex: 1;
	overflow-y: auto;
	padding: 72px 52px 32px;
	text-align: center;
	line-height: 1.65;
}
.pshow-modal .pshow-d-title {
	font-size: clamp(24px, 2.1vw, 36px);
	line-height: 1.2;
	margin: 0 0 28px;
	padding-right: 40px;
	padding-left: 40px;
}
.pshow-d-tagline {
	margin: -16px 0 22px;
	font-size: .78em;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--pshow-accent);
}
.pshow-d-content p { margin: 0 0 .8em; }
.pshow-d-content em { font-style: italic; }
.pshow-d-content ul,
.pshow-d-content ol {
	text-align: left;
	max-width: 560px;
	margin: 18px auto 0;
	padding-left: 1.2em;
}
.pshow-d-content li { margin: 0 0 .55em; }
.pshow-d-content strong { font-weight: 600; }
.pshow-d-features-title {
	margin: 26px 0 0;
	padding-top: 22px;
	border-top: 1px solid #eee;
	font-size: .78em;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 600;
}
.pshow-d-capacity { margin: 0 0 .5em; }
.pshow-d-price {
	margin: 18px 0 0;
	font-weight: 600;
	color: var(--pshow-accent);
	letter-spacing: .03em;
}
.pshow-d-features {
	list-style: none;
	margin: 12px auto 0;
	padding: 0;
	max-width: 560px;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	column-gap: 18px;
	text-align: left;
	font-size: .92em;
}
.pshow-d-features li { position: relative; padding: 5px 0 5px 28px; margin: 0; }
.pshow-d-features li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: .75em;
	width: 11px;
	height: 6px;
	border-left: 2px solid var(--pshow-accent);
	border-bottom: 2px solid var(--pshow-accent);
	transform: rotate(-45deg);
}
.pshow-d-footer {
	border-top: 1px solid #e3e3e3;
	text-align: center;
	flex: 0 0 auto;
}
.pshow-modal .pshow-book {
	display: block;
	padding: 34px 20px;
	font-size: 19px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-decoration: none;
	color: inherit;
	transition: background-color .2s, color .2s;
}
.pshow-modal .pshow-book:hover { background: var(--pshow-accent); color: #fff; }

html.pshow-locked,
html.pshow-locked body { overflow: hidden !important; }

@media (max-width: 900px) {
	.pshow-modal { padding: 0; }
	.pshow-modal__dialog { flex-direction: column; height: 100%; max-height: none; }
	.pshow-modal__media { flex: 0 0 auto; height: 46vh; }
	.pshow-modal__media .pshow-arrows { bottom: 14px; right: 14px; }
	.pshow-modal { --pshow-arrow-size: 46px; }
	.pshow-d-body { padding: 28px 22px 20px; }
	.pshow-modal .pshow-close { top: 10px; right: 10px; background: rgba(255,255,255,.92); position: fixed; }
	.pshow-modal .pshow-book { padding: 20px; font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
	.pshow-track, .pshow-slides, .pshow-modal__dialog, .pshow-modal__backdrop, .pshow-slide img { transition: none !important; }
}

/* ---------- Popup text alignment ---------- */
.pshow-modal--align-left .pshow-d-body,
.pshow-modal--align-left .pshow-d-footer { text-align: left; }
.pshow-modal--align-right .pshow-d-body,
.pshow-modal--align-right .pshow-d-footer { text-align: right; }
.pshow-modal--align-left .pshow-modal .pshow-d-title,
.pshow-modal--align-left .pshow-d-title { padding-left: 0; }
.pshow-modal--align-right .pshow-d-title { padding-right: 56px; padding-left: 0; }
.pshow-modal--align-left .pshow-d-content ul,
.pshow-modal--align-left .pshow-d-content ol,
.pshow-modal--align-left .pshow-d-features { margin-left: 0; }
.pshow-modal--align-right .pshow-d-content ul,
.pshow-modal--align-right .pshow-d-content ol,
.pshow-modal--align-right .pshow-d-features { margin-right: 0; }
.pshow-modal--align-left .pshow-book,
.pshow-modal--align-right .pshow-book { padding-left: 52px; padding-right: 52px; }
@media (max-width: 900px) {
	.pshow-modal--align-left .pshow-book,
	.pshow-modal--align-right .pshow-book { padding-left: 22px; padding-right: 22px; }
	.pshow-modal .pshow-d-title { padding-left: 0; padding-right: 0; }
}
