/* Hotel Premier Sign In — offer messages */
:root {
	--hps-cream: #F8F5F0;
	--hps-ink: #1E1E1E;
	--hps-ink-2: #262626;
	--hps-muted: #5f5a52;
	--hps-gold: #BF9C69;
	--hps-gold-dark: #a8844f;
	--hps-serif: "EB Garamond", Georgia, "Times New Roman", serif;
	--hps-sans: "Montserrat", "Helvetica Neue", Arial, sans-serif;
}

/* reset theme/Elementor button styles inside our components */
.hps-pc button, .hps-pm button {
	margin: 0;
	box-shadow: none !important;
	text-shadow: none !important;
	line-height: 1.2;
	min-height: 0;
	-webkit-appearance: none;
	appearance: none;
}
.hps-pc *, .hps-pc *::before, .hps-pc *::after,
.hps-pm *, .hps-pm *::before, .hps-pm *::after { box-sizing: border-box; }

/* round close buttons */
.hps-pc button.hps-x, .hps-pm button.hps-x {
	position: absolute;
	z-index: 2;
	width: 36px;
	height: 36px;
	padding: 0 !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid transparent !important;
	border-radius: 50% !important;
	background: transparent !important;
	cursor: pointer;
	transition: border-color .2s ease, color .2s ease;
}
.hps-pc button.hps-x { top: 12px; right: 12px; color: var(--hps-ink) !important; }
.hps-pm button.hps-x { top: 16px; right: 16px; color: var(--hps-cream) !important; }
.hps-pc button.hps-x:hover, .hps-pc button.hps-x:focus-visible,
.hps-pm button.hps-x:hover, .hps-pm button.hps-x:focus-visible { border-color: var(--hps-gold) !important; color: var(--hps-gold) !important; }

/* ---------- line under the booking bar ---------- */
.hps-pline {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 6px 16px;
	margin: 16px auto 0;
	padding: 0 12px;
	text-align: center;
	font-family: var(--hps-serif);
	font-size: 19px;
	line-height: 1.35;
	color: var(--hps-gold);
}
.hps-pline__item { display: inline-flex; align-items: center; gap: 8px; }
.hps-pline__item svg { flex: none; }
.hps-pline__sep { opacity: .55; }
@media (max-width: 767px) {
	.hps-pline { font-size: 17px; margin-top: 12px; flex-direction: column; gap: 6px; }
	.hps-pline__item { display: block; }
	.hps-pline__item svg { display: inline-block; vertical-align: -2px; margin-right: 6px; }
	.hps-pline__sep { display: none; }
}

/* ---------- corner card ---------- */
.hps-pc {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 9990;
	width: 360px;
	max-width: calc(100vw - 32px);
	padding: 26px 26px 24px;
	background: var(--hps-cream);
	color: var(--hps-ink);
	border: 1px solid var(--hps-gold);
	border-radius: 20px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, .22), 0 2px 8px rgba(0, 0, 0, .08);
	font-family: var(--hps-sans);
	font-size: 14px;
	line-height: 1.55;
	max-height: calc(100vh - 48px);
	overflow-y: auto;
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .4s ease, transform .4s ease;
}
.hps-pc.is-left { right: auto; left: 24px; }
.hps-pc.is-open { opacity: 1; transform: none; }
.hps-pc.is-hidden { opacity: 0 !important; transform: translateY(18px) !important; pointer-events: none; }
.hps-pc::before {
	content: "";
	position: absolute;
	left: 26px;
	right: 26px;
	top: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--hps-gold), transparent);
	border-radius: 2px;
}

.hps-pc__list { list-style: none; margin: 0 36px 18px 0; padding: 0; display: grid; gap: 12px; }
.hps-pc__item { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 0; }
.hps-pc__item + .hps-pc__item { padding-top: 12px; border-top: 1px solid rgba(191, 156, 105, .35); }
.hps-pc__icon { color: var(--hps-gold); flex: none; margin-top: 5px; display: inline-flex; }
.hps-pc__txt { min-width: 0; }
.hps-pc__title { display: block; font-family: var(--hps-serif); font-weight: 500; font-size: 21px; line-height: 1.2; color: var(--hps-ink); }
.hps-pc__detail {
	margin: 6px 0 0;
	color: var(--hps-muted);
	font-size: 13px;
	line-height: 1.55;
	text-align: left;
}
.hps-pc__detail + .hps-pc__detail { margin-top: 4px; }

.hps-pc button.hps-pc__btn, .hps-pm button.hps-pm__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: 48px;
	padding: 12px 18px !important;
	border: 1px solid var(--hps-gold) !important;
	border-radius: 10px !important;
	background: var(--hps-gold) !important;
	color: #fff !important;
	font-family: var(--hps-sans) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.hps-pc button.hps-pc__btn:hover, .hps-pc button.hps-pc__btn:focus-visible { background: var(--hps-ink) !important; border-color: var(--hps-ink) !important; color: #fff !important; }

/* mobile pill (hidden on desktop) */
.hps-pc button.hps-pc__pill { display: none; }


/* ---------- round button after closing ---------- */
button.hps-pb {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 9990;
	width: 58px;
	height: 58px;
	padding: 0 !important;
	margin: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--hps-gold) !important;
	border-radius: 50% !important;
	background: var(--hps-gold) !important;
	color: #fff !important;
	box-shadow: 0 10px 28px rgba(0, 0, 0, .28) !important;
	cursor: pointer;
	opacity: 0;
	transform: scale(.6);
	transition: opacity .3s ease, transform .3s ease, background-color .2s ease, color .2s ease;
	-webkit-appearance: none;
	appearance: none;
}
button.hps-pb.is-left { right: auto; left: 24px; }
button.hps-pb.is-open { opacity: 1; transform: none; }
button.hps-pb.is-hidden { opacity: 0 !important; pointer-events: none; }
@media (hover: hover) { button.hps-pb:hover { background: var(--hps-ink) !important; border-color: var(--hps-ink) !important; color: #fff !important; } }
button.hps-pb:focus-visible { background: var(--hps-ink) !important; border-color: var(--hps-ink) !important; color: #fff !important; }
.hps-pb__icon { display: inline-flex; }
.hps-pb::after {
	content: "";
	position: absolute;
	inset: -1px;
	border-radius: 50%;
	border: 2px solid var(--hps-gold);
	opacity: 0;
	pointer-events: none;
}
.hps-pb.is-pulse::after { animation: hpsPulse 1.6s ease-out 2; }
@keyframes hpsPulse { 0% { opacity: .8; transform: scale(1); } 100% { opacity: 0; transform: scale(1.6); } }
.hps-pb__tip {
	position: absolute;
	right: calc(100% + 12px);
	top: 50%;
	transform: translateY(-50%) translateX(6px);
	white-space: nowrap;
	padding: 8px 14px;
	border: 1px solid var(--hps-gold);
	border-radius: 999px;
	background: var(--hps-cream);
	color: var(--hps-ink);
	font-family: var(--hps-serif) !important;
	font-size: 16px !important;
	font-weight: 500;
	letter-spacing: 0 !important;
	text-transform: none !important;
	line-height: 1.2;
	box-shadow: 0 8px 22px rgba(0, 0, 0, .18);
	opacity: 0;
	pointer-events: none;
	transition: opacity .2s ease, transform .2s ease;
}
.hps-pb.is-left .hps-pb__tip { right: auto; left: calc(100% + 12px); }
@media (hover: hover) {
	button.hps-pb:hover .hps-pb__tip { opacity: 1; transform: translateY(-50%); }
}

/* ---------- dark booking window ---------- */
html.hps-pm-lock, html.hps-pm-lock body { overflow: hidden; }
.hps-pm {
	position: fixed;
	inset: 0;
	z-index: 99990;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(10, 10, 10, .62);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	opacity: 0;
	transition: opacity .3s ease;
}
.hps-pm.is-open { opacity: 1; }
.hps-pm__dialog {
	position: relative;
	width: 100%;
	max-width: 620px;
	max-height: calc(100vh - 48px);
	overflow-y: auto;
	padding: 34px 40px 30px;
	background: var(--hps-ink);
	color: var(--hps-cream);
	border: 1px solid var(--hps-gold);
	border-radius: 20px;
	box-shadow: 0 30px 80px rgba(0, 0, 0, .45);
	font-family: var(--hps-sans);
	transform: translateY(14px) scale(.98);
	transition: transform .3s ease;
}
.hps-pm.is-open .hps-pm__dialog { transform: none; }

.hps-pm__msgs { display: grid; gap: 18px; margin: 0 0 22px; }
.hps-pm__msg + .hps-pm__msg { padding-top: 18px; border-top: 1px solid rgba(191, 156, 105, .35); }
.hps-pm__msg { text-align: center; }
.hps-pm__orn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin: 0 0 10px;
	color: var(--hps-gold);
}
.hps-pm__orn::before, .hps-pm__orn::after { content: ""; width: 44px; height: 1px; background: rgba(191, 156, 105, .6); }
.hps-pm__dialog:focus { outline: none; }
.hps-pm__title {
	display: block;
	margin: 0 0 10px;
	padding: 0 30px;
	font-family: var(--hps-serif);
	font-weight: 500;
	font-size: 28px;
	line-height: 1.15;
	color: var(--hps-cream);
	text-align: center;
}
.hps-pm__text {
	margin: 0 0 6px;
	color: rgba(248, 245, 240, .82);
	font-size: 15px;
	line-height: 1.65;
	text-align: center;
}
.hps-pm__text:first-of-type { color: var(--hps-gold); font-weight: 500; }

.hps-pm__form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; margin: 0; }
.hps-pm__field { display: flex; flex-direction: column; gap: 6px; min-width: 0; margin: 0; }
.hps-pm__label { font-family: var(--hps-serif); font-size: 15px; letter-spacing: .08em; text-transform: uppercase; color: var(--hps-gold); }
.hps-pm__box { display: block; }
.hps-pm__field input, .hps-pm__field select {
	width: 100% !important;
	min-width: 0;
	height: 48px !important;
	margin: 0 !important;
	padding: 0 14px !important;
	border: 1px solid rgba(191, 156, 105, .45) !important;
	border-radius: 10px !important;
	background: var(--hps-ink-2) !important;
	color: var(--hps-cream) !important;
	font-family: var(--hps-sans) !important;
	font-size: 15px !important;
	color-scheme: dark;
	box-shadow: none !important;
	transition: border-color .2s ease;
}
.hps-pm__field input:focus, .hps-pm__field select:focus { outline: none; border-color: var(--hps-gold) !important; }
.hps-pm__field select option { background: var(--hps-ink); color: var(--hps-cream); }
.hps-pm button.hps-pm__btn { grid-column: 1 / -1; margin-top: 8px; min-height: 54px; font-size: 14px !important; }
.hps-pm button.hps-pm__btn:hover, .hps-pm button.hps-pm__btn:focus-visible { background: var(--hps-cream) !important; border-color: var(--hps-cream) !important; color: var(--hps-ink) !important; }

/* ---------- tablet / mobile ---------- */
@media (max-width: 767px) {
	.hps-pc {
		left: 10px;
		right: 10px;
		bottom: 10px;
		width: auto;
		max-width: none;
		padding: 0;
		border-radius: 999px;
		box-shadow: 0 14px 40px rgba(0, 0, 0, .28);
	}
	.hps-pc.is-left { right: 12px; left: 12px; }
	.hps-pc::before, .hps-pc__list, .hps-pc button.hps-pc__btn { display: none; }
	.hps-pc button.hps-pc__pill {
		display: flex;
		align-items: center;
		gap: 10px;
		width: 100%;
		min-height: 48px;
		padding: 6px 48px 6px 14px !important;
		border: 0 !important;
		border-radius: 999px !important;
		background: transparent !important;
		color: var(--hps-ink) !important;
		font-family: var(--hps-serif) !important;
		font-size: 16px !important;
		font-weight: 500;
		letter-spacing: 0 !important;
		text-transform: none !important;
		text-align: left;
		cursor: pointer;
	}
	.hps-pc__pill > svg { color: var(--hps-gold); flex: none; }
	.hps-pc__pill-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.hps-pc__pill-go {
		flex: none;
		width: 32px;
		height: 32px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		border-radius: 50%;
		background: var(--hps-gold);
		color: #fff;
	}
	.hps-pc button.hps-x { top: 6px; right: 6px; }
	button.hps-pb { width: 50px; height: 50px; right: 14px; bottom: 14px; }
	button.hps-pb.is-left { left: 14px; }
	button.hps-pb svg { width: 22px; height: 22px; }
	.hps-pb__tip { display: none; }

	.hps-pm { align-items: flex-end; padding: 0; }
	.hps-pm__dialog {
		max-width: none;
		max-height: 92vh;
		padding: 40px 20px calc(24px + env(safe-area-inset-bottom));
		border-radius: 20px 20px 0 0;
		border-bottom: 0;
		transform: translateY(40px);
	}
	.hps-pm button.hps-x { top: 10px; right: 10px; }
	.hps-pm__msgs { gap: 18px; margin-bottom: 24px; }
	.hps-pm__title { font-size: 25px; padding: 0 26px; }
	.hps-pm__text { font-size: 14px; }
	.hps-pm__form { gap: 12px; }
	.hps-pm__label { font-size: 13px; }
	.hps-pm__field input, .hps-pm__field select { height: 48px !important; font-size: 16px !important; }
}

@media (prefers-reduced-motion: reduce) {
	.hps-pc, .hps-pm, .hps-pm__dialog { transition: none; }
}
