.plv-registration {
	max-width: 760px;
	width: 100%;
	margin: 0 auto;
	padding: 2rem;
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	box-sizing: border-box;
	overflow: visible;
}

.plv-registration__header {
	text-align: center;
}

.plv-registration__header h2 {
	margin: 0 0 0.75rem;
	font-size: 1.75rem;
	color: #0f172a;
}

.plv-registration__header p {
	margin: 0 0 0.75rem;
	color: #475569;
	line-height: 1.6;
}

.plv-registration__locations {
	font-size: 0.95rem;
}

.plv-registration__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin: 1.5rem 0;
}

.plv-field {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.plv-field--full {
	grid-column: 1 / -1;
}

.plv-field label {
	font-size: 0.9rem;
	font-weight: 600;
	color: #334155;
}

.plv-field input,
.plv-field select {
	width: 100%;
	padding: 0.75rem 0.9rem;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	font-size: 1rem;
}

.plv-field input:focus,
.plv-field select:focus {
	outline: 2px solid #0ea5e9;
	border-color: #0ea5e9;
}

.plv-field.is-invalid input,
.plv-field.is-invalid select {
	border-color: #dc2626;
}

.plv-field__error {
	color: #dc2626;
	font-size: 0.85rem;
}

.plv-registration__terms {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin-bottom: 1rem;
	color: #475569;
	font-size: 0.8rem;
	line-height: 1.35;
	white-space: normal;
	text-align: left;
}

.plv-registration__terms input[type="checkbox"] {
	flex: 0 0 auto;
	margin: 0.15rem 0 0;
	width: 14px;
	height: 14px;
}

.plv-registration__terms-text {
	display: inline;
	flex: 1 1 12rem;
	min-width: 0;
	font-size: inherit;
	line-height: inherit;
	white-space: normal;
}

.plv-registration__terms-text a {
	font-size: inherit;
	white-space: normal;
}

.plv-registration__message {
	margin-bottom: 1rem;
	padding: 0.9rem 1rem;
	border-radius: 8px;
}

.plv-registration__message.is-success {
	background: #ecfdf5;
	color: #047857;
	border: 1px solid #a7f3d0;
}

.plv-registration__message.is-error {
	background: #fef2f2;
	color: #b91c1c;
	border: 1px solid #fecaca;
}

.plv-registration__submit {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 180px;
	margin: 0 auto;
	padding: 0.85rem 1.5rem;
	border: 0;
	border-radius: 999px;
	background: rgb(14, 61, 216);
	color: #fff;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
}

/*
 * Membership signup page (Divi): logo | form | terms in three 1/3 columns.
 * Keep the logo/title/form centered and prevent the narrow column from clipping.
 */
.et_pb_row:has(#signup),
.et_pb_row:has(.plv-registration) {
	max-width: 100%;
	box-sizing: border-box;
	overflow: visible;
}

.et_pb_row:has(#signup) > .et_pb_column,
.et_pb_row:has(.plv-registration) > .et_pb_column {
	box-sizing: border-box;
	overflow: visible;
}

#signup,
#signup .et_pb_text_inner {
	text-align: center !important;
	max-width: 100%;
	box-sizing: border-box;
	overflow: visible;
}

#signup .et_pb_text_inner > h2,
#signup .et_pb_text_inner > h3,
#signup .et_pb_text_inner > p {
	text-align: center;
}

#signup .plv-registration,
.et_pb_text_inner > .plv-registration,
.et_pb_text_inner > p > .plv-registration {
	display: block;
	width: 100%;
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
	text-align: left;
	box-sizing: border-box;
}

@media only screen and (min-width: 981px) {
	.et_pb_row:has(#signup),
	.et_pb_row:has(.plv-registration) {
		display: flex !important;
		flex-wrap: wrap;
		justify-content: center;
		align-items: flex-start;
		gap: 1.5rem 2rem;
	}

	.et_pb_row:has(#signup) > .et_pb_column,
	.et_pb_row:has(.plv-registration) > .et_pb_column {
		float: none !important;
		margin: 0 !important;
	}

	.et_pb_row:has(#signup) > .et_pb_column:has(.et_pb_image),
	.et_pb_row:has(.plv-registration) > .et_pb_column:has(.et_pb_image) {
		flex: 0 0 220px;
		width: 220px !important;
		max-width: 220px !important;
		text-align: center;
	}

	.et_pb_row:has(#signup) > .et_pb_column:has(#signup),
	.et_pb_row:has(.plv-registration) > .et_pb_column:has(.plv-registration) {
		flex: 1 1 520px;
		width: auto !important;
		max-width: 640px !important;
	}

	.et_pb_row:has(#signup) > .et_pb_column:not(:has(#signup)):not(:has(.et_pb_image)),
	.et_pb_row:has(.plv-registration) > .et_pb_column:not(:has(.plv-registration)):not(:has(.et_pb_image)) {
		flex: 0 1 280px;
		width: auto !important;
		max-width: 320px !important;
	}

	.et_pb_row:has(#signup) .et_pb_image img,
	.et_pb_row:has(.plv-registration) .et_pb_image img {
		display: block;
		margin: 0 auto;
		max-width: 100%;
		height: auto;
	}
}

@media only screen and (max-width: 980px) {
	.et_pb_row:has(#signup),
	.et_pb_row:has(.plv-registration) {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		width: 100% !important;
		max-width: 100% !important;
		padding-left: 16px !important;
		padding-right: 16px !important;
		box-sizing: border-box;
	}

	.et_pb_row:has(#signup) > .et_pb_column,
	.et_pb_row:has(.plv-registration) > .et_pb_column {
		float: none !important;
		width: 100% !important;
		max-width: 640px !important;
		margin: 0 auto 1.25rem !important;
		padding: 0 !important;
	}

	.et_pb_row:has(#signup) .et_pb_image,
	.et_pb_row:has(.plv-registration) .et_pb_image {
		text-align: center;
		margin-left: auto;
		margin-right: auto;
	}

	.et_pb_row:has(#signup) .et_pb_image img,
	.et_pb_row:has(.plv-registration) .et_pb_image img {
		display: block;
		margin: 0 auto;
		max-width: min(220px, 70vw);
		height: auto;
	}

	#signup,
	#signup .et_pb_text_inner,
	.plv-registration {
		width: 100% !important;
		max-width: 100% !important;
	}

	.plv-registration {
		padding: 1.25rem;
	}
}

.plv-registration__submit:disabled,
.plv-button:disabled,
.plv-login__submit:disabled {
	opacity: 0.7;
	cursor: wait;
}

.plv-button,
.plv-login__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 160px;
	padding: 0.8rem 1.4rem;
	border: 0;
	border-radius: 999px;
	background: rgb(14, 61, 216);
	color: #fff;
	font-size: 1rem;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
}

.plv-login,
.plv-portal {
	max-width: 760px;
	margin: 0 auto;
	padding: 2rem;
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
}

.plv-login__header h2,
.plv-portal__header h2 {
	margin: 0 0 0.75rem;
	color: #0f172a;
}

.plv-login__tabs {
	display: flex;
	gap: 0.5rem;
	margin: 1.5rem 0 1rem;
}

.plv-login__tab {
	padding: 0.65rem 1rem;
	border: 1px solid #cbd5e1;
	border-radius: 999px;
	background: #fff;
	cursor: pointer;
}

.plv-login__tab.is-active {
	background: rgb(14, 61, 216);
	border-color: rgb(14, 61, 216);
	color: #fff;
}

.plv-login__panel {
	display: none;
}

.plv-login__panel.is-active {
	display: block;
}

.plv-login__message {
	margin: 1rem 0;
	padding: 0.9rem 1rem;
	border-radius: 8px;
}

.plv-login__message.is-success {
	background: #ecfdf5;
	color: #047857;
	border: 1px solid #a7f3d0;
}

.plv-login__message.is-error {
	background: #fef2f2;
	color: #b91c1c;
	border: 1px solid #fecaca;
}

.plv-login__forgot {
	margin: 0.5rem 0 0;
}

.plv-login__forgot a {
	color: rgb(14, 61, 216);
	font-size: 0.9rem;
	font-weight: 600;
	text-decoration: none;
}

.plv-login__forgot a:hover,
.plv-login__forgot a:focus {
	text-decoration: underline;
}

.plv-portal__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 1.5rem;
}

.plv-portal__card {
	display: block;
	padding: 1.25rem;
	border: 1px solid #dbeafe;
	border-radius: 12px;
	background: #f8fbff;
	color: inherit;
	text-decoration: none;
}

.plv-portal__card h3 {
	margin: 0 0 0.5rem;
	color: #0f172a;
}

.plv-portal__card p {
	margin: 0;
	color: #475569;
}

.plv-portal__pass code {
	font-size: 1rem;
}

.woocommerce-account .plv-portal {
	margin: 0;
	padding: 0;
	background: transparent;
	box-shadow: none;
}

.woocommerce-account .plv-portal__header h2 {
	margin-top: 0;
}

.entry-content .tf-reg-wrap {
	max-width: 640px;
	margin: 1.5rem auto 2rem;
	padding: 1.25rem 1.5rem;
	border-radius: 12px;
	background: #f8fafc;
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
	text-align: center;
}

/* Nested inside the Divi partner banner card — avoid a second card chrome. */
.entry-content .faq-box .tf-reg-wrap,
.entry-content .tf-reg-wrap.plv-partner-banner-login {
	max-width: 100%;
	margin: 1rem auto 1.25rem;
	padding: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.entry-content .faq-box .tf-reg-wrap .tf-register-form-footer,
.entry-content .tf-reg-wrap.plv-partner-banner-login .tf-register-form-footer {
	display: none;
}

/* Hotel partners: hide Tourfic dashboard Locations taxonomy links (admins keep them). */
body.plv-hide-partner-locations a[href*="hotel-location"],
body.plv-hide-partner-locations a[href*="apartment-location"],
body.plv-hide-partner-locations a[href*="car-rental-location"],
body.plv-hide-partner-locations a[href*="#/hotel-location"],
body.plv-hide-partner-locations a[href*="#/apartment-location"],
body.plv-hide-partner-locations a[href*="#/car-rental-location"],
body.plv-hide-partner-locations [data-plv-hidden-locations="1"] {
	display: none !important;
}

.entry-content .plv-vendor-notice {
	max-width: 640px;
	margin: 1rem auto 1.25rem;
	padding: 0.9rem 1.1rem;
	border-radius: 10px;
	background: #eff6ff;
	border: 1px solid #bfdbfe;
	color: #1e3a5f;
	text-align: center;
}

.entry-content .plv-vendor-notice p,
.plv-vendor-notice.plv-vendor-notice--blocked p {
	margin: 0.35rem 0;
}

.entry-content .plv-vendor-notice--blocked,
.plv-vendor-notice.plv-vendor-notice--blocked {
	max-width: 640px;
	margin: 1rem auto 1.25rem;
	padding: 0.9rem 1.1rem;
	border-radius: 10px;
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #9a3412;
	text-align: center;
}

.entry-content .plv-vendor-notice--blocked > p:first-child,
.plv-vendor-notice.plv-vendor-notice--blocked > p:first-child {
	font-weight: 700;
}

.entry-content .plv-vendor-notice--blocked .plv-vendor-notice__actions,
.plv-vendor-notice.plv-vendor-notice--blocked .plv-vendor-notice__actions {
	text-align: center;
}

.entry-content .plv-vendor-notice a,
.plv-vendor-notice.plv-vendor-notice--blocked a {
	font-weight: 600;
}

/* Geofence members on partner auth: never show Tourfic dashboard CTA chrome. */
body.plv-geofence-member-vendor-auth .tf-reg-wrap a[href*="tf-dashboard"],
body.plv-geofence-member-vendor-auth .tf-reg-wrap a[href*="vendor-dashboard"] {
	pointer-events: none;
}

.faq-box .plv-vendor-notice.plv-vendor-notice--blocked {
	max-width: 100%;
	margin: 0.75rem 0 1rem;
}

.entry-content .plv-vendor-resend,
.plv-vendor-resend {
	max-width: 640px;
	margin: 1rem auto 1.25rem;
	padding: 0.9rem 1.1rem;
	border-radius: 10px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	text-align: center;
}

.faq-box .plv-vendor-resend {
	max-width: 100%;
	margin: 0.75rem 0 1rem;
}

.plv-vendor-resend__intro {
	margin: 0 0 0.75rem;
	font-weight: 600;
	color: #334155;
}

.plv-vendor-resend__form {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	justify-content: center;
	align-items: center;
}

.plv-vendor-resend__email {
	min-width: min(100%, 240px);
	flex: 1 1 200px;
	padding: 0.65rem 0.8rem;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	font-size: 1rem;
}

.plv-vendor-resend__submit {
	min-height: 44px;
	padding: 0.65rem 1.1rem;
	border: 0;
	border-radius: 999px;
	background: rgb(14, 61, 216);
	color: #fff;
	font-weight: 600;
	cursor: pointer;
}

.plv-vendor-resend__submit:disabled {
	opacity: 0.7;
	cursor: wait;
}

.plv-vendor-resend__status {
	margin: 0.75rem 0 0;
	min-height: 1.25em;
	font-size: 0.95rem;
}

.plv-vendor-resend__status--success {
	color: #166534;
}

.plv-vendor-resend__status--error {
	color: #b91c1c;
}

.entry-content .tf-reg-wrap h3 {
	margin-top: 0;
}

.entry-content .tf-reg-wrap .tf_btn,
.entry-content .tf-reg-wrap .tf-submit {
	min-height: 48px;
}

/*
 * Member Sign Up / Sign In, Hotel Partner Sign In / Sign Up, and Forgot password.
 * rgb(14, 61, 216) must beat Tourfic and Divi button colors.
 */
.plv-registration__submit:hover:not(:disabled),
.plv-button:hover:not(:disabled),
.plv-login__submit:hover:not(:disabled),
.plv-vendor-resend__submit:hover:not(:disabled) {
	background: rgb(11, 48, 180);
	color: #fff;
}

.tf-reg-wrap .tf_btn,
.tf-reg-wrap .tf-submit,
.tf-reg-wrap button[type="submit"],
.tf-reg-wrap input[type="submit"],
form#tf-login .tf_btn,
form#tf-login .tf-submit,
form#tf-login button[type="submit"],
form#tf-login input[type="submit"],
form#tf-register .tf_btn,
form#tf-register .tf-submit,
form#tf-register button[type="submit"],
form#tf-register input[type="submit"] {
	background: rgb(14, 61, 216) !important;
	background-color: rgb(14, 61, 216) !important;
	border-color: rgb(14, 61, 216) !important;
	color: #fff !important;
}

.tf-reg-wrap .tf_btn:hover,
.tf-reg-wrap .tf-submit:hover,
.tf-reg-wrap button[type="submit"]:hover,
.tf-reg-wrap input[type="submit"]:hover,
form#tf-login .tf_btn:hover,
form#tf-login .tf-submit:hover,
form#tf-login button[type="submit"]:hover,
form#tf-login input[type="submit"]:hover,
form#tf-register .tf_btn:hover,
form#tf-register .tf-submit:hover,
form#tf-register button[type="submit"]:hover,
form#tf-register input[type="submit"]:hover {
	background: rgb(11, 48, 180) !important;
	background-color: rgb(11, 48, 180) !important;
	border-color: rgb(11, 48, 180) !important;
	color: #fff !important;
}

.plv-login .plv-field {
	margin-bottom: 1rem;
}

.plv-login .plv-field:last-child {
	margin-bottom: 0;
}

.plv-login__form .plv-login__submit {
	margin-top: 1.5rem;
}

@media (max-width: 640px) {
	.plv-portal__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.plv-registration,
	.plv-login,
	.plv-portal {
		padding: 1.25rem;
		border-radius: 10px;
	}

	.plv-registration__header h2,
	.plv-login__header h2,
	.plv-portal__header h2 {
		font-size: 1.45rem;
	}

	.plv-registration__grid {
		grid-template-columns: 1fr;
	}

	.plv-login__tabs {
		flex-direction: column;
		gap: 0.5rem;
	}

	.plv-login__tab {
		width: 100%;
		min-height: 44px;
		text-align: center;
	}

	.plv-login__submit,
	.plv-login .plv-button {
		width: 100%;
		min-width: 0;
		min-height: 48px;
	}

	.plv-registration__submit {
		width: 100%;
		min-width: 0;
		min-height: 48px;
	}

	.plv-registration__terms {
		font-size: 0.72rem;
		gap: 0.35rem;
	}
}

/* Tourfic search widget recovery for verified members */
form#tf_hotel_aval_check,
form#tf_room_aval_check,
form.tf_booking-widget,
form.tf_booking-widget-design-2,
form.tf-archive-search-box-wrapper,
form.tf-search__form {
	pointer-events: auto !important;
}

form#tf_hotel_aval_check .tf_selectdate-wrap,
form#tf_hotel_aval_check .tf_selectperson-wrap,
form#tf_hotel_aval_check .acr-inc,
form#tf_hotel_aval_check .acr-dec,
form.tf_booking-widget .tf_selectdate-wrap,
form.tf_booking-widget .tf_selectperson-wrap,
form.tf_booking-widget .acr-inc,
form.tf_booking-widget .acr-dec,
form.tf_booking-widget input.flatpickr-input {
	pointer-events: auto !important;
	cursor: pointer;
}

form.plv-region-locked .tf-hotel-locations,
form.plv-region-locked .tf-hotel-results,
form.plv-region-locked .tf-tour-results {
	display: none !important;
}

.flatpickr-calendar {
	z-index: 100050 !important;
	pointer-events: auto !important;
}

.flatpickr-calendar:not(.open) {
	pointer-events: none !important;
}

.plv-hotel-search .flatpickr-calendar.open,
body > .flatpickr-calendar.open {
	z-index: 100050 !important;
	pointer-events: auto !important;
}

/* Keep site header / top nav clickable above Tourfic search chrome.
   Container uses pointer-events:none so empty header space does not block
   page links such as Tourfic's "Show more hotels in …". */
#main-header,
#top-header,
#et-secondary-menu,
.et-l--header,
body #page-container #main-header,
body #page-container .et_pb_menu,
body #page-container .et_pb_section_0_tb_header,
.site-header,
header[role="banner"] {
	pointer-events: none !important;
	z-index: 100060 !important;
}

#main-header .et-menu,
#main-header .et_pb_menu,
#main-header .et_pb_button,
#main-header a,
#main-header button,
#main-header #et-top-navigation,
#main-header .logo_container,
#main-header #et_mobile_nav_menu,
#main-header .mobile_nav,
#main-header .mobile_menu_bar,
#main-header .mobile_menu_bar_toggle,
#main-header .et_mobile_menu,
#main-header #mobile_menu,
#main-header .et-cart-info,
#mobile_menu,
.et_mobile_menu,
#top-header a,
#et-secondary-menu a,
.et-l--header a,
.et_pb_menu a,
.et_pb_menu .et-menu,
.site-header a,
.site-header nav,
header[role="banner"] a,
header[role="banner"] nav {
	pointer-events: auto !important;
	cursor: pointer !important;
}

/* Divi hamburger is a <span>, not a link — keep it clickable above Tourfic chrome. */
#et_mobile_nav_menu,
#et_mobile_nav_menu *,
.mobile_nav,
.mobile_nav *,
.mobile_menu_bar,
.mobile_menu_bar_toggle {
	pointer-events: auto !important;
	cursor: pointer !important;
}

/* Tourfic single-hotel "Show more hotels in {location}" link — all designs */
a.more-hotel,
.tf-title-meta a.more-hotel,
.tf-single-head a.more-hotel,
.tf-map-link a.more-hotel,
.single-tf_hotel a.more-hotel,
.tf-single-template__one a.more-hotel,
.tf-single-template__two a.more-hotel,
.tf-single-template__legacy a.more-hotel {
	pointer-events: auto !important;
	position: relative;
	z-index: 5;
	cursor: pointer !important;
}

.single-tf_hotel .tf-single-head,
.single-tf_hotel .tf-title-meta,
.single-tf_hotel .tf-map-link {
	pointer-events: auto !important;
	position: relative;
	z-index: 4;
}

/* Keep Tourfic Fancybox gallery above ProveLocal search/date UI so next/prev work */
.fancybox-container,
body .fancybox-container {
	z-index: 2147483640 !important;
}

.fancybox-container .fancybox-bg,
.fancybox-container .fancybox-inner,
.fancybox-container .fancybox-toolbar,
.fancybox-container .fancybox-navigation,
.fancybox-container .fancybox-button,
.fancybox-container .fancybox-caption,
.fancybox-container .fancybox-infobar {
	pointer-events: auto !important;
}

.fancybox-container .fancybox-navigation button,
.fancybox-container .fancybox-button--arrow_left,
.fancybox-container .fancybox-button--arrow_right,
.fancybox-container .fancybox-button--close,
.fancybox-container .fancybox-button--zoom,
.fancybox-container .fancybox-button--play,
.fancybox-container .fancybox-button--fullscreen {
	pointer-events: auto !important;
	cursor: pointer !important;
}

/* While the gallery is open, don't let flatpickr calendars intercept clicks */
body.fancybox-active .flatpickr-calendar,
body.compensate-for-scrollbar .flatpickr-calendar,
html.with-fancybox .flatpickr-calendar {
	z-index: 1 !important;
	pointer-events: none !important;
	visibility: hidden !important;
}

body.fancybox-active .plv-hotel-search-guest-panel,
body.compensate-for-scrollbar .plv-hotel-search-guest-panel,
html.with-fancybox .plv-hotel-search-guest-panel,
body.fancybox-active .plv-hotel-search-modal,
body.compensate-for-scrollbar .plv-hotel-search-modal,
html.with-fancybox .plv-hotel-search-modal {
	z-index: 1 !important;
	pointer-events: none !important;
	visibility: hidden !important;
}

/* ProveLocal hotel search — compact Tourfic-style single bar */
.plv-hotel-search {
	width: 100%;
	max-width: 980px;
	margin: 0 auto;
	position: relative;
	z-index: 10050;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.plv-hotel-search__form {
	margin: 0;
}

.plv-hotel-search__bar {
	display: flex;
	align-items: stretch;
	min-height: 64px;
	background: #fff;
	border: 1px solid #d7dce3;
	border-radius: 8px;
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
	overflow: visible;
}

.plv-hotel-search__cell {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 2px;
	padding: 10px 14px;
	min-width: 0;
	border-right: 1px solid #e5e7eb;
	position: relative;
}

.plv-hotel-search__cell--location {
	flex: 1.1 1 0;
}

.plv-hotel-search__cell--dates {
	flex: 1.35 1 0;
}

.plv-hotel-search__cell--guests {
	flex: 1.25 1 0;
}

.plv-hotel-search__cell--submit {
	flex: 0 0 auto;
	border-right: 0;
	padding: 0;
}

.plv-hotel-search__eyebrow {
	display: block;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.2;
	color: #6b7280;
	text-transform: none;
	letter-spacing: 0;
}

.plv-hotel-search__value,
.plv-hotel-search__guest-summary,
.plv-hotel-search input.flatpickr-input {
	width: 100%;
	border: 0;
	outline: 0;
	background: transparent;
	box-shadow: none;
	padding: 0;
	margin: 0;
	color: #111827;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.3;
}

.plv-hotel-search__value:focus,
.plv-hotel-search input.flatpickr-input:focus {
	outline: 0;
	box-shadow: none;
}

.plv-hotel-search__dates,
.plv-hotel-search input.flatpickr-input {
	cursor: pointer;
}

.plv-hotel-search__guest-trigger {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	text-align: left;
	cursor: pointer;
}

.plv-hotel-search__guest-summary {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.plv-hotel-search__guest-panel,
.plv-hotel-search-guest-panel,
body > .plv-hotel-search-guest-panel {
	padding: 12px;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	box-shadow: 0 12px 28px rgba(15, 23, 42, 0.28);
	z-index: 2147483647 !important;
}

body > .plv-hotel-search-guest-panel {
	position: fixed !important;
	margin: 0;
	pointer-events: auto !important;
	visibility: visible !important;
}

body > .plv-hotel-search-guest-panel:not([hidden]) {
	pointer-events: auto !important;
}

body > .plv-hotel-search-guest-panel:not([hidden]) button,
body > .plv-hotel-search-guest-panel:not([hidden]) input,
body > .plv-hotel-search-guest-panel:not([hidden]) label,
body > .plv-hotel-search-guest-panel:not([hidden]) .plv-hotel-search__btn {
	pointer-events: auto !important;
	cursor: pointer !important;
	position: relative;
	z-index: 2;
}

.plv-hotel-search__guest-panel[hidden],
.plv-hotel-search-guest-panel[hidden],
body > .plv-hotel-search-guest-panel[hidden] {
	display: none !important;
	pointer-events: none !important;
}

.plv-hotel-search__counter {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 8px 0;
	border-bottom: 1px solid #f1f5f9;
	font-size: 13px;
	font-weight: 600;
	color: #334155;
}

.plv-hotel-search__counter:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.plv-hotel-search__stepper {
	display: inline-grid;
	grid-template-columns: 28px 36px 28px;
	align-items: center;
	gap: 4px;
}

.plv-hotel-search__counter input {
	width: 36px;
	border: 0;
	background: transparent;
	text-align: center;
	font-size: 14px;
	font-weight: 600;
	color: #111827;
	padding: 0;
}

.plv-hotel-search__btn {
	width: 28px;
	height: 28px;
	border: 1px solid #cbd5e1;
	border-radius: 999px;
	background: #fff;
	color: #0f172a;
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
}

.plv-hotel-search__btn:hover {
	border-color: #94a3b8;
	background: #f8fafc;
}

.plv-hotel-search__submit {
	height: 100%;
	min-width: 110px;
	padding: 0 22px;
	border: 0;
	border-radius: 0 7px 7px 0;
	background: #003c71;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
}

.plv-hotel-search__submit:hover {
	background: #002a52;
}

.plv-hotel-search__submit.is-loading,
.plv-hotel-search.is-searching .plv-hotel-search__submit {
	opacity: 0.75;
	cursor: wait;
}

.plv-hotel-search-modal[hidden] {
	display: none !important;
}

.plv-hotel-search-modal {
	position: fixed;
	inset: 0;
	z-index: 2147483646;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}

.plv-hotel-search-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.55);
}

.plv-hotel-search-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(420px, 100%);
	padding: 1.35rem 1.4rem 1.2rem;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 20px 50px rgba(15, 23, 42, 0.28);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.plv-hotel-search-modal__title {
	margin: 0 0 0.55rem;
	font-size: 1.15rem;
	font-weight: 700;
	color: #0f172a;
}

.plv-hotel-search-modal__message {
	margin: 0 0 1.1rem;
	font-size: 0.95rem;
	line-height: 1.45;
	color: #334155;
}

.plv-hotel-search-modal__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 96px;
	padding: 0.55rem 1rem;
	border: 0;
	border-radius: 8px;
	background: #003c71;
	color: #fff;
	font-size: 0.95rem;
	font-weight: 700;
	cursor: pointer;
}

.plv-hotel-search-modal__button:hover {
	background: #002a52;
}

body.plv-hotel-search-modal-open {
	overflow: hidden;
}

/*
 * Tourfic hotel slideshow: equal cards + no left clipping.
 *
 * When only a few hotels exist, JS unslicks and rebuilds a static grid.
 * These rules only apply after .plv-hotel-slider-static is added so we do
 * not break an active Slick carousel mid-init.
 */
.tf-widget-slider.recent-hotel-slider {
	overflow: visible !important;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.recent-hotel-slider.plv-hotel-slider-static .plv-hotel-slider-static__track {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	width: 100% !important;
	max-width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	transform: none !important;
	box-sizing: border-box;
}

.recent-hotel-slider.plv-hotel-slider-static .slick-dots,
.recent-hotel-slider.plv-hotel-slider-static .slick-list,
.recent-hotel-slider.plv-hotel-slider-static .slick-track {
	display: none !important;
}

.recent-hotel-slider.plv-hotel-slider-static .tf-slider-item {
	margin: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	height: 450px !important;
	box-sizing: border-box !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-end !important;
	align-items: stretch !important;
	float: none !important;
	background-size: cover !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
}

.recent-hotel-slider.plv-hotel-slider-static .tf-slider-content {
	width: 100% !important;
	min-height: 128px !important;
	height: auto !important;
	min-height: 128px !important;
	max-height: none !important;
	box-sizing: border-box !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-end !important;
	overflow: hidden !important;
}

.recent-hotel-slider.plv-hotel-slider-static .tf-slider-desc h3,
.recent-hotel-slider.plv-hotel-slider-static .tf-slider-desc h3 a {
	color: #fff !important;
	margin: 0 0 6px !important;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	display: block;
}

.recent-hotel-slider.plv-hotel-slider-static .tf-slider-desc p {
	color: #fff !important;
	margin: 0 0 6px !important;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.recent-hotel-slider.plv-hotel-slider-static .tf-recent-room-price {
	margin: 0 !important;
}

@media only screen and (max-width: 1024px) {
	.recent-hotel-slider.plv-hotel-slider-static .plv-hotel-slider-static__track {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.recent-hotel-slider.plv-hotel-slider-static .tf-slider-item {
		height: 360px !important;
	}
}

@media only screen and (max-width: 767px) {
	.recent-hotel-slider.plv-hotel-slider-static .plv-hotel-slider-static__track {
		grid-template-columns: minmax(0, 1fr);
	}

	.recent-hotel-slider.plv-hotel-slider-static .tf-slider-item {
		height: 280px !important;
	}
}

.et_pb_section:has(.plv-hotel-slider-static),
.et_pb_row:has(.plv-hotel-slider-static),
.et_pb_column:has(.plv-hotel-slider-static),
.et_pb_module:has(.plv-hotel-slider-static) {
	overflow: visible !important;
}

.plv-hotel-location-results {
	padding: 2rem 1rem 3rem;
	box-sizing: border-box;
	overflow: visible;
}

.plv-hotel-location-results .tf-container,
.plv-hotel-location-results .tf-item-cards,
.plv-hotel-location-results .tf-archive-left {
	overflow: visible;
	max-width: 100%;
	box-sizing: border-box;
}

.plv-hotel-location-results .tf-item-cards > * {
	margin-left: 0;
	max-width: 100%;
	box-sizing: border-box;
}

/* Hotel search results cards: full-width, centered image on phones. */
@media only screen and (max-width: 767px) {
	.plv-hotel-location-results .single-tour-inner,
	.tf-archive-page .single-tour-inner,
	.tf-item-cards .single-tour-inner,
	.archive_ajax_result .single-tour-inner {
		flex-direction: column !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		gap: 0 !important;
	}

	.plv-hotel-location-results .tourfic-single-left,
	.tf-archive-page .tourfic-single-left,
	.tf-item-cards .tourfic-single-left,
	.archive_ajax_result .tourfic-single-left {
		order: 0 !important;
		display: flex !important;
		justify-content: center !important;
		align-items: center !important;
		width: 100% !important;
		max-width: 100% !important;
		min-height: 0 !important;
		flex: 0 0 auto !important;
		margin: 0 auto 18px !important;
		padding: 0 !important;
		box-sizing: border-box;
	}

	.plv-hotel-location-results .tourfic-single-left > a,
	.tf-archive-page .tourfic-single-left > a,
	.tf-item-cards .tourfic-single-left > a,
	.archive_ajax_result .tourfic-single-left > a {
		display: block;
		width: 100%;
		max-width: 100%;
	}

	.plv-hotel-location-results .tourfic-single-left img,
	.tf-archive-page .tourfic-single-left img,
	.tf-item-cards .tourfic-single-left img,
	.archive_ajax_result .tourfic-single-left img {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		height: 200px !important;
		margin: 0 auto !important;
		object-fit: cover !important;
		border-radius: 4px;
	}

	.plv-hotel-location-results .tourfic-single-right,
	.tf-archive-page .tourfic-single-right,
	.tf-item-cards .tourfic-single-right,
	.archive_ajax_result .tourfic-single-right {
		width: 100% !important;
		max-width: 100% !important;
		flex: 1 1 auto !important;
		padding: 0 !important;
	}
}

.plv-hotel-location-results__header {
	margin-bottom: 1.5rem;
}

.plv-hotel-location-results__title {
	margin: 0 0 0.35rem;
	font-size: 1.75rem;
	font-weight: 700;
	color: #0f172a;
}

.plv-hotel-location-results__meta,
.plv-hotel-location-results__empty {
	margin: 0;
	color: #475569;
	font-size: 0.98rem;
	line-height: 1.45;
}

.plv-hotel-location-results__empty {
	margin-top: 0.75rem;
}

.plv-hotel-search__notice {
	padding: 0.85rem 1rem;
	border-radius: 8px;
	background: #fff7ed;
	border: 1px solid #fdba74;
	color: #9a3412;
}

.plv-hotel-search .flatpickr-calendar,
body > .flatpickr-calendar {
	z-index: 100050 !important;
	pointer-events: auto !important;
}

/* After search-bar arrival, hide redundant per-room “Check Availability” scroll links. */
body.plv-search-avail .hotel-room-availability,
body.plv-search-avail a[href="#room-availability"] {
	display: none !important;
}

/* Keep Tourfic sidebar Check Availability clickable above Divi/header pointer-event rules. */
#tf-single-hotel-avail,
#tf-single-hotel-avail .tf-submit,
#tf-single-hotel-avail button,
#tf-single-hotel-avail input,
#tf-single-hotel-avail .acr-inc,
#tf-single-hotel-avail .acr-dec,
.tf-hotel-booking-sidebar,
.tf-hotel-booking-sidebar .tf-submit {
	pointer-events: auto !important;
	position: relative;
	z-index: 6;
}

/*
 * Tourfic hotel pages: keep the top title clear of Divi's fixed/transparent nav.
 * Do NOT zero #page-container padding — Divi uses that for et_fixed_nav clearance.
 */
body.single-tf_hotel .tf-title-area,
body.single-tf_hotel .tf-single-head,
body.single-tf_hotel .tf-title-wrap,
body.single-tf_hotel .tf-title-left,
body.single-tf_hotel .tf-hotel-top,
body.single-tf_hotel .tf-single-header,
body.single-tf_hotel .tf-single-details-wrapper > .tf-single-header,
body.single-tf_hotel .tf-single-template__one .tf-single-head,
body.single-tf_hotel .tf-single-template__two .tf-single-head,
body.single-tf_hotel .tf-single-template__legacy .tf-single-head {
	scroll-margin-top: 120px;
	padding-top: 1.5rem !important;
	margin-top: 0.75rem !important;
	box-sizing: border-box;
}

body.single-tf_hotel .tf-single-head h1,
body.single-tf_hotel .tf-title-left h1,
body.single-tf_hotel .tf-hotel-title,
body.single-tf_hotel h1.tf-title,
body.single-tf_hotel h1.tf-post-title,
body.single-tf_hotel .tf-post-title,
body.single-tf_hotel .tf-single-header h1 {
	position: relative;
	z-index: 1;
	margin-top: 0;
	padding-top: 0.15em;
}

@media only screen and (max-width: 980px) {
	/*
	 * Transparent/fixed Divi headers often leave the hotel h1 under the bar.
	 * Add reliable clearance on the content + title block (without removing
	 * Divi's #page-container offset when present).
	 */
	body.single-tf_hotel #main-content,
	body.tax-hotel_location #main-content,
	body.single-tf_hotel #et-main-area > #main-content,
	body.tax-hotel_location #et-main-area > #main-content {
		padding-top: 72px !important;
	}

	body.single-tf_hotel.et_transparent_nav #main-content,
	body.single-tf_hotel.et_fixed_nav #main-content {
		padding-top: 96px !important;
	}

	body.single-tf_hotel .tf-title-area,
	body.single-tf_hotel .tf-single-head,
	body.single-tf_hotel .tf-title-wrap,
	body.single-tf_hotel .tf-title-left,
	body.single-tf_hotel .tf-hotel-top,
	body.single-tf_hotel .tf-single-header,
	body.single-tf_hotel .tf-single-template__one .tf-single-head,
	body.single-tf_hotel .tf-single-template__two .tf-single-head,
	body.single-tf_hotel .tf-single-template__legacy .tf-single-head {
		padding-top: 1.25rem !important;
		margin-top: 0.5rem !important;
	}

	body.single-tf_hotel h1.tf-post-title,
	body.single-tf_hotel .tf-post-title,
	body.single-tf_hotel .tf-single-head h1,
	body.single-tf_hotel .tf-title-left h1 {
		line-height: 1.25;
	}
}

/*
 * Hotel room tables (preview + booking):
 * Shrink occupancy/price/action to content width; description gets the rest.
 * Avoids the stretched empty middle column on Tourfic's 3-column preview table.
 */
#rooms .tf-availability-table,
#rooms .hotel-room-wrap .tf-availability-table,
.plv-availability-rooms .tf-availability-table,
.single-tf_hotel .tf-room-table .tf-availability-table {
	table-layout: auto !important;
	width: 100% !important;
	border-collapse: collapse;
}

#rooms .tf-availability-table th.description,
#rooms .tf-availability-table td.description,
.plv-availability-rooms .tf-availability-table th.description,
.plv-availability-rooms .tf-availability-table td.description,
.single-tf_hotel .tf-availability-table th.description,
.single-tf_hotel .tf-availability-table td.description {
	width: auto !important;
}

#rooms .tf-availability-table th.pax,
#rooms .tf-availability-table td.pax,
.plv-availability-rooms .tf-availability-table th.pax,
.plv-availability-rooms .tf-availability-table td.pax,
.single-tf_hotel .tf-availability-table th.pax,
.single-tf_hotel .tf-availability-table td.pax {
	font-size: 12px !important;
	line-height: 1.2;
	font-weight: 600;
	text-align: center !important;
	vertical-align: middle !important;
	padding: 12px 10px !important;
}

/* Desktop/tablet only — 1% shrink-wrap columns crush phone card stacks. */
@media only screen and (min-width: 641px) {
	#rooms .tf-availability-table th.pax,
	#rooms .tf-availability-table td.pax,
	.plv-availability-rooms .tf-availability-table th.pax,
	.plv-availability-rooms .tf-availability-table td.pax,
	.single-tf_hotel .tf-availability-table th.pax,
	.single-tf_hotel .tf-availability-table td.pax {
		width: 1% !important;
		white-space: nowrap !important;
	}
}

#rooms .tf-availability-table td.pax > div:first-child,
.plv-availability-rooms .tf-availability-table td.pax > div:first-child,
.single-tf_hotel .tf-availability-table td.pax > div:first-child {
	font-size: 12px !important;
	line-height: 1.2;
	margin: 0 0 6px;
	white-space: nowrap !important;
}

#rooms .tf-availability-table td.pax .tf-tooltip,
#rooms .tf-availability-table td.pax .room-detail-icon,
.plv-availability-rooms .tf-availability-table td.pax .tf-tooltip,
.plv-availability-rooms .tf-availability-table td.pax .room-detail-icon {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 4px;
	margin: 0 auto 4px;
	width: auto !important;
}

#rooms .tf-availability-table th.pricing,
#rooms .tf-availability-table td.pricing,
#rooms .tf-availability-table th.tf-price,
#rooms .tf-availability-table td.tf-price,
.plv-availability-rooms .tf-availability-table th.pricing,
.plv-availability-rooms .tf-availability-table td.pricing,
.single-tf_hotel .tf-availability-table th.pricing,
.single-tf_hotel .tf-availability-table td.pricing {
	text-align: center !important;
	vertical-align: middle !important;
	padding: 12px 10px !important;
}

#rooms .tf-availability-table th.reserve,
#rooms .tf-availability-table td.reserve,
.plv-availability-rooms .tf-availability-table th.reserve,
.plv-availability-rooms .tf-availability-table td.reserve,
.single-tf_hotel .tf-availability-table th.reserve,
.single-tf_hotel .tf-availability-table td.reserve {
	text-align: center !important;
	vertical-align: middle !important;
	padding: 12px 10px !important;
}

@media only screen and (min-width: 641px) {
	#rooms .tf-availability-table th.pricing,
	#rooms .tf-availability-table td.pricing,
	#rooms .tf-availability-table th.tf-price,
	#rooms .tf-availability-table td.tf-price,
	.plv-availability-rooms .tf-availability-table th.pricing,
	.plv-availability-rooms .tf-availability-table td.pricing,
	.single-tf_hotel .tf-availability-table th.pricing,
	.single-tf_hotel .tf-availability-table td.pricing,
	#rooms .tf-availability-table th.reserve,
	#rooms .tf-availability-table td.reserve,
	.plv-availability-rooms .tf-availability-table th.reserve,
	.plv-availability-rooms .tf-availability-table td.reserve,
	.single-tf_hotel .tf-availability-table th.reserve,
	.single-tf_hotel .tf-availability-table td.reserve {
		width: 1% !important;
		white-space: nowrap !important;
	}
}

/* Keep room copy + amenity chips readable in the description column. */
#rooms .tf-room-description-box.tf-flex,
.plv-availability-rooms .tf-room-description-box.tf-flex,
.single-tf_hotel .tf-room-description-box.tf-flex {
	display: flex !important;
	align-items: flex-start;
	gap: 16px !important;
	width: 100%;
	column-gap: 16px !important;
}

/* Square thumbs only in the room table description column — not the details popup. */
#rooms .tf-room-description-box > .tf-room-preview-img,
.plv-availability-rooms .tf-room-description-box > .tf-room-preview-img,
.single-tf_hotel .tf-room-description-box > .tf-room-preview-img {
	flex: 0 0 110px;
	width: 110px !important;
	height: 110px !important;
	max-width: 110px;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden;
	position: relative;
	z-index: 1;
	aspect-ratio: 1 / 1;
}

#rooms .tf-room-description-box > .tf-room-preview-img a,
.plv-availability-rooms .tf-room-description-box > .tf-room-preview-img a,
.single-tf_hotel .tf-room-description-box > .tf-room-preview-img a {
	display: block;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

#rooms .tf-room-description-box > .tf-room-preview-img img,
.plv-availability-rooms .tf-room-description-box > .tf-room-preview-img img,
.single-tf_hotel .tf-room-description-box > .tf-room-preview-img img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	object-position: center;
}

/* Room Photos & Details popup: Tourfic design-1 side-by-side (gallery | details). */
.fancybox-slide #tf_room_details_qv.tf-hotel-design-1-popup,
.fancybox-container.plv-room-details-fancybox #tf_room_details_qv {
	max-width: 1000px;
	width: 100%;
}

.fancybox-slide #tf_room_details_qv .tf-hotel-quick-view,
#tf_room_details_qv .tf-hotel-quick-view {
	display: flex !important;
	flex-direction: row !important;
	align-items: stretch;
	width: 100%;
}

.fancybox-slide #tf_room_details_qv .tf-hotel-details-qc-gallelry,
#tf_room_details_qv .tf-hotel-details-qc-gallelry {
	flex: 0 0 545px;
	width: 545px !important;
	max-width: 55%;
}

.fancybox-slide #tf_room_details_qv .tf-hotel-details-info,
#tf_room_details_qv .tf-hotel-details-info {
	flex: 1 1 440px;
	width: 440px;
	max-width: 45%;
	max-height: 470px;
	overflow-y: auto;
	padding: 25px 25px 25px 35px;
	box-sizing: border-box;
}

.fancybox-slide #tf_room_details_qv .tf-details-qc-slider-single .tf-details-qcs img,
#tf_room_details_qv .tf-details-qc-slider-single .tf-details-qcs img {
	width: 100%;
	height: auto;
	max-height: 380px;
	object-fit: cover;
	object-position: center;
}

/* Hide the leftover thumbnail strip under the main room photos (squashed full-width slices). */
.fancybox-slide #tf_room_details_qv .tf-details-qc-slider-nav,
.fancybox-container.plv-room-details-fancybox .tf-details-qc-slider-nav,
#tf_room_details_qv .tf-details-qc-slider-nav {
	display: none !important;
}

@media only screen and (max-width: 768px) {
	.fancybox-slide #tf_room_details_qv .tf-hotel-quick-view,
	#tf_room_details_qv .tf-hotel-quick-view {
		flex-direction: column !important;
	}

	.fancybox-slide #tf_room_details_qv .tf-hotel-details-qc-gallelry,
	#tf_room_details_qv .tf-hotel-details-qc-gallelry,
	.fancybox-slide #tf_room_details_qv .tf-hotel-details-info,
	#tf_room_details_qv .tf-hotel-details-info {
		flex: 1 1 auto;
		width: 100% !important;
		max-width: 100%;
		max-height: none;
		padding: 16px;
	}
}

#rooms .tf-features-infos,
.plv-availability-rooms .tf-features-infos,
.single-tf_hotel .tf-features-infos {
	flex: 1 1 auto !important;
	width: auto !important;
	max-width: calc(100% - 126px) !important;
	min-width: 0;
	padding-left: 0;
	position: relative;
	z-index: 2;
}

#rooms .tf-features-infos ul,
.plv-availability-rooms .tf-features-infos ul {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 8px;
	margin: 8px 0;
	padding: 0;
	list-style: none;
}

#rooms .plv-room-policy-links,
.plv-availability-rooms .plv-room-policy-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 14px;
	margin-top: 8px;
	width: 100%;
}

#rooms .tf-availability-table td.reserve .room-submit-wrap,
.plv-availability-rooms .room-submit-wrap,
.single-tf_hotel .tf-availability-table td.reserve .room-submit-wrap {
	white-space: nowrap !important;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}

#rooms .tf-availability-table td.reserve .tf_btn,
#rooms .tf-availability-table td.reserve .hotel-room-availability,
#rooms .tf-availability-table td.reserve .hotel-room-book,
#rooms .tf-availability-table td.reserve .tf-reserve-button,
.plv-availability-rooms .room-submit-wrap .tf_btn,
.plv-availability-rooms .room-submit-wrap .tf-hotel-booking-popup-btn,
.plv-availability-rooms .room-submit-wrap .plv-hotel-room-book,
.single-tf_hotel .tf-availability-table td.reserve .tf_btn {
	white-space: nowrap !important;
	display: inline-block !important;
	width: auto !important;
	max-width: none !important;
	font-size: 13px !important;
	line-height: 1.2 !important;
	padding: 10px 14px !important;
}

.plv-room-occupancy {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

/*
 * Tablet + phone: turn wide room tables into stacked cards
 * (hotel preview table and Check Availability table).
 */
@media only screen and (max-width: 1024px) {
	#rooms .hotel-room-wrap,
	#rooms .tf-room-table,
	.plv-availability-rooms,
	.single-tf_hotel .tf-room-table {
		overflow-x: visible !important;
		width: 100%;
	}

	#rooms .tf-availability-table,
	#rooms .hotel-room-wrap .tf-availability-table,
	.plv-availability-rooms .tf-availability-table,
	.single-tf_hotel .tf-room-table .tf-availability-table {
		display: block !important;
		width: 100% !important;
		border-collapse: separate;
		border-spacing: 0;
	}

	#rooms .tf-availability-table thead,
	.plv-availability-rooms .tf-availability-table thead,
	.single-tf_hotel .tf-availability-table thead {
		display: none !important;
	}

	#rooms .tf-availability-table tbody,
	.plv-availability-rooms .tf-availability-table tbody,
	.single-tf_hotel .tf-availability-table tbody {
		display: block !important;
		width: 100%;
	}

	#rooms .tf-availability-table tbody tr,
	.plv-availability-rooms .tf-availability-table tbody tr,
	.single-tf_hotel .tf-availability-table tbody tr {
		display: block !important;
		width: 100%;
		box-sizing: border-box;
		margin: 0 0 16px;
		padding: 16px;
		border: 1px solid #d7dde5;
		background: #fff;
		border-radius: 8px;
	}

	#rooms .tf-availability-table tbody tr:last-child,
	.plv-availability-rooms .tf-availability-table tbody tr:last-child,
	.single-tf_hotel .tf-availability-table tbody tr:last-child {
		margin-bottom: 0;
	}

	#rooms .tf-availability-table td,
	.plv-availability-rooms .tf-availability-table td,
	.single-tf_hotel .tf-availability-table td,
	#rooms .tf-availability-table td.description,
	#rooms .tf-availability-table td.pax,
	#rooms .tf-availability-table td.pricing,
	#rooms .tf-availability-table td.tf-price,
	#rooms .tf-availability-table td.reserve,
	.plv-availability-rooms .tf-availability-table td.description,
	.plv-availability-rooms .tf-availability-table td.pax,
	.plv-availability-rooms .tf-availability-table td.pricing,
	.plv-availability-rooms .tf-availability-table td.reserve,
	.single-tf_hotel .tf-availability-table td.description,
	.single-tf_hotel .tf-availability-table td.pax,
	.single-tf_hotel .tf-availability-table td.pricing,
	.single-tf_hotel .tf-availability-table td.tf-price,
	.single-tf_hotel .tf-availability-table td.reserve {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box;
		padding: 10px 0 !important;
		margin: 0;
		border: 0 !important;
		text-align: left !important;
		white-space: normal !important;
		vertical-align: top !important;
	}

	#rooms .tf-availability-table td.description,
	.plv-availability-rooms .tf-availability-table td.description,
	.single-tf_hotel .tf-availability-table td.description {
		padding-top: 0 !important;
		padding-bottom: 14px !important;
		border-bottom: 1px solid #eef2f7 !important;
	}

	#rooms .tf-availability-table td.pax,
	#rooms .tf-availability-table td.pricing,
	#rooms .tf-availability-table td.reserve,
	.plv-availability-rooms .tf-availability-table td.pax,
	.plv-availability-rooms .tf-availability-table td.pricing,
	.plv-availability-rooms .tf-availability-table td.reserve,
	.single-tf_hotel .tf-availability-table td.pax,
	.single-tf_hotel .tf-availability-table td.pricing,
	.single-tf_hotel .tf-availability-table td.reserve {
		display: flex !important;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		gap: 10px 16px;
		padding: 12px 0 !important;
		border-bottom: 1px solid #eef2f7 !important;
	}

	#rooms .tf-availability-table td.reserve,
	.plv-availability-rooms .tf-availability-table td.reserve,
	.single-tf_hotel .tf-availability-table td.reserve {
		border-bottom: 0 !important;
		padding-bottom: 0 !important;
		flex-direction: column;
		align-items: stretch;
	}

	#rooms .tf-availability-table td.pax::before,
	#rooms .tf-availability-table td.pricing::before,
	#rooms .tf-availability-table td.reserve::before,
	.plv-availability-rooms .tf-availability-table td.pax::before,
	.plv-availability-rooms .tf-availability-table td.pricing::before,
	.plv-availability-rooms .tf-availability-table td.reserve::before,
	.single-tf_hotel .tf-availability-table td.pax::before,
	.single-tf_hotel .tf-availability-table td.pricing::before,
	.single-tf_hotel .tf-availability-table td.reserve::before {
		content: attr(data-label);
		flex: 0 0 auto;
		min-width: 110px;
		color: #64748b;
		font-size: 11px;
		font-weight: 700;
		letter-spacing: 0.04em;
		text-transform: uppercase;
		line-height: 1.2;
	}

	#rooms .tf-availability-table td.pax:not([data-label])::before,
	.plv-availability-rooms .tf-availability-table td.pax:not([data-label])::before,
	.single-tf_hotel .tf-availability-table td.pax:not([data-label])::before {
		content: "Occupancy limit";
	}

	#rooms .tf-availability-table td.pricing:not([data-label])::before,
	.plv-availability-rooms .tf-availability-table td.pricing:not([data-label])::before,
	.single-tf_hotel .tf-availability-table td.pricing:not([data-label])::before {
		content: "Price";
	}

	#rooms .tf-availability-table td.reserve:not([data-label])::before,
	.plv-availability-rooms .tf-availability-table td.reserve:not([data-label])::before,
	.single-tf_hotel .tf-availability-table td.reserve:not([data-label])::before {
		content: "Select Rooms";
	}

	#rooms .tf-availability-table td.pax .plv-room-card-label,
	#rooms .tf-availability-table td.reserve .plv-room-card-label,
	.plv-availability-rooms .tf-availability-table td.pax .plv-room-card-label,
	.plv-availability-rooms .tf-availability-table td.reserve .plv-room-card-label {
		display: none !important;
	}

	#rooms .tf-availability-table td.pax .plv-room-occupancy,
	#rooms .tf-availability-table td.pax > .tf-tooltip,
	.plv-availability-rooms .tf-availability-table td.pax .plv-room-occupancy,
	.single-tf_hotel .tf-availability-table td.pax .plv-room-occupancy {
		justify-content: flex-end;
		margin-left: auto;
	}

	#rooms .tf-availability-table td.pax .tf-tooltip,
	#rooms .tf-availability-table td.pax .room-detail-icon,
	.plv-availability-rooms .tf-availability-table td.pax .tf-tooltip,
	.plv-availability-rooms .tf-availability-table td.pax .room-detail-icon,
	.single-tf_hotel .tf-availability-table td.pax .tf-tooltip,
	.single-tf_hotel .tf-availability-table td.pax .room-detail-icon {
		margin: 0 !important;
		justify-content: flex-start;
	}

	#rooms .tf-availability-table td.pricing .plv-room-price,
	#rooms .tf-availability-table td.pricing .tf-available-room-price,
	.plv-availability-rooms .tf-availability-table td.pricing .plv-room-price,
	.single-tf_hotel .tf-availability-table td.pricing .tf-available-room-price {
		margin-left: auto;
		text-align: right;
	}

	#rooms .tf-room-description-box.tf-flex,
	.plv-availability-rooms .tf-room-description-box.tf-flex,
	.single-tf_hotel .tf-room-description-box.tf-flex {
		gap: 12px !important;
		column-gap: 12px !important;
	}

	#rooms .tf-room-description-box > .tf-room-preview-img,
	.plv-availability-rooms .tf-room-description-box > .tf-room-preview-img,
	.single-tf_hotel .tf-room-description-box > .tf-room-preview-img {
		flex: 0 0 96px;
		width: 96px !important;
		height: 96px !important;
		max-width: 96px;
	}

	#rooms .tf-features-infos,
	.plv-availability-rooms .tf-features-infos,
	.single-tf_hotel .tf-features-infos {
		max-width: calc(100% - 108px) !important;
	}

	#rooms .tf-availability-table td.reserve form,
	.plv-availability-rooms .tf-availability-table td.reserve form,
	.single-tf_hotel .tf-availability-table td.reserve form {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 10px 12px;
		width: 100%;
	}

	#rooms .tf-availability-table td.reserve .room-selection-wrap,
	.plv-availability-rooms .tf-availability-table td.reserve .room-selection-wrap,
	.single-tf_hotel .tf-availability-table td.reserve .room-selection-wrap {
		flex: 0 0 auto;
	}

	#rooms .tf-availability-table td.reserve .room-submit-wrap,
	.plv-availability-rooms .tf-availability-table td.reserve .room-submit-wrap,
	.single-tf_hotel .tf-availability-table td.reserve .room-submit-wrap {
		flex: 1 1 auto;
		align-items: stretch;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		white-space: normal !important;
	}

	#rooms .tf-availability-table td.reserve .tf_btn,
	#rooms .tf-availability-table td.reserve .hotel-room-availability,
	#rooms .tf-availability-table td.reserve .hotel-room-book,
	#rooms .tf-availability-table td.reserve .tf-reserve-button,
	#rooms .tf-availability-table td.reserve .tf-hotel-booking-popup-btn,
	.plv-availability-rooms .room-submit-wrap .tf_btn,
	.plv-availability-rooms .room-submit-wrap .tf-hotel-booking-popup-btn,
	.plv-availability-rooms .room-submit-wrap .plv-hotel-room-book,
	.plv-availability-rooms .room-submit-wrap .hotel-room-book,
	.single-tf_hotel .tf-availability-table td.reserve .tf_btn,
	.single-tf_hotel .tf-availability-table td.reserve .hotel-room-availability,
	.single-tf_hotel .tf-availability-table td.reserve .hotel-room-book {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		text-align: center !important;
		box-sizing: border-box !important;
		white-space: normal !important;
	}
}

@media only screen and (max-width: 640px) {
	/*
	 * iPhone / small phones — block-stack table rows (not CSS grid on <tr>).
	 * Safari often collapses grid table-rows and squeezes Book Now into a
	 * vertical letter strip. Order: photo → details → occupancy → price → controls.
	 */
	#rooms .tf-availability-table tbody tr,
	.plv-availability-rooms .tf-availability-table tbody tr,
	.single-tf_hotel .tf-availability-table tbody tr {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
		padding: 12px;
		border-radius: 6px;
		overflow: visible;
	}

	#rooms .tf-availability-table td,
	.plv-availability-rooms .tf-availability-table td,
	.single-tf_hotel .tf-availability-table td,
	#rooms .tf-availability-table td.description,
	#rooms .tf-availability-table td.pax,
	#rooms .tf-availability-table td.pricing,
	#rooms .tf-availability-table td.tf-price,
	#rooms .tf-availability-table td.reserve,
	.plv-availability-rooms .tf-availability-table td.description,
	.plv-availability-rooms .tf-availability-table td.pax,
	.plv-availability-rooms .tf-availability-table td.pricing,
	.plv-availability-rooms .tf-availability-table td.reserve,
	.single-tf_hotel .tf-availability-table td.description,
	.single-tf_hotel .tf-availability-table td.pax,
	.single-tf_hotel .tf-availability-table td.pricing,
	.single-tf_hotel .tf-availability-table td.tf-price,
	.single-tf_hotel .tf-availability-table td.reserve {
		display: block !important;
		float: none !important;
		clear: both !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		flex: 0 0 auto !important;
		align-self: stretch !important;
		box-sizing: border-box !important;
		white-space: normal !important;
	}

	#rooms .tf-availability-table td.options,
	.plv-availability-rooms .tf-availability-table td.options,
	.single-tf_hotel .tf-availability-table td.options {
		display: none !important;
	}

	#rooms .tf-availability-table td.description,
	.plv-availability-rooms .tf-availability-table td.description,
	.single-tf_hotel .tf-availability-table td.description {
		padding: 0 0 10px !important;
		border-bottom: 0 !important;
	}

	#rooms .tf-availability-table td.pax,
	.plv-availability-rooms .tf-availability-table td.pax,
	.single-tf_hotel .tf-availability-table td.pax {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		align-items: center !important;
		justify-content: flex-start !important;
		gap: 8px 12px;
		padding: 0 0 12px !important;
		border-bottom: 1px solid #eef2f7 !important;
	}

	#rooms .tf-availability-table td.pricing,
	#rooms .tf-availability-table td.tf-price,
	.plv-availability-rooms .tf-availability-table td.pricing,
	.single-tf_hotel .tf-availability-table td.pricing,
	.single-tf_hotel .tf-availability-table td.tf-price {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		padding: 12px 0 8px !important;
		border-bottom: 0 !important;
		text-align: right !important;
		overflow: visible !important;
		white-space: normal !important;
	}

	#rooms .tf-availability-table td.reserve,
	.plv-availability-rooms .tf-availability-table td.reserve,
	.single-tf_hotel .tf-availability-table td.reserve {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		padding: 0 !important;
		border-bottom: 0 !important;
		text-align: left !important;
		overflow: visible !important;
		white-space: normal !important;
	}

	#rooms .tf-availability-table td.pax::before,
	#rooms .tf-availability-table td.pricing::before,
	#rooms .tf-availability-table td.reserve::before,
	.plv-availability-rooms .tf-availability-table td.pax::before,
	.plv-availability-rooms .tf-availability-table td.pricing::before,
	.plv-availability-rooms .tf-availability-table td.reserve::before,
	.single-tf_hotel .tf-availability-table td.pax::before,
	.single-tf_hotel .tf-availability-table td.pricing::before,
	.single-tf_hotel .tf-availability-table td.reserve::before {
		display: none !important;
		content: none !important;
	}

	#rooms .tf-room-description-box.tf-flex,
	.plv-availability-rooms .tf-room-description-box.tf-flex,
	.single-tf_hotel .tf-room-description-box.tf-flex {
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 10px !important;
		width: 100% !important;
	}

	#rooms .tf-room-description-box > .tf-room-preview-img,
	.plv-availability-rooms .tf-room-description-box > .tf-room-preview-img,
	.single-tf_hotel .tf-room-description-box > .tf-room-preview-img {
		flex: 0 0 auto !important;
		width: 100% !important;
		max-width: 100% !important;
		height: 168px !important;
		aspect-ratio: auto;
	}

	#rooms .tf-features-infos,
	.plv-availability-rooms .tf-features-infos,
	.single-tf_hotel .tf-features-infos {
		max-width: 100% !important;
		width: 100% !important;
	}

	#rooms .tf-availability-table td.pax .plv-room-occupancy,
	.plv-availability-rooms .tf-availability-table td.pax .plv-room-occupancy,
	.single-tf_hotel .tf-availability-table td.pax .plv-room-occupancy {
		margin-left: 0 !important;
		justify-content: flex-start !important;
	}

	#rooms .tf-availability-table td.pricing .plv-room-price,
	#rooms .tf-availability-table td.pricing .tf-available-room-price,
	#rooms .tf-availability-table td.pricing .tf-price-column,
	.plv-availability-rooms .tf-availability-table td.pricing .plv-room-price,
	.single-tf_hotel .tf-availability-table td.pricing .tf-available-room-price,
	.single-tf_hotel .tf-availability-table td.pricing .tf-price-column {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		text-align: right !important;
	}

	#rooms .tf-availability-table td.pricing .plv-nightly-rate,
	.plv-availability-rooms .tf-availability-table td.pricing .plv-nightly-rate,
	.single-tf_hotel .tf-availability-table td.pricing .plv-nightly-rate {
		justify-content: flex-end;
		font-size: 18px;
	}

	#rooms .tf-availability-table td.pricing .plv-stay-total-price,
	#rooms .tf-availability-table td.pricing .price-per-night,
	.plv-availability-rooms .tf-availability-table td.pricing .plv-stay-total-price,
	.plv-availability-rooms .tf-availability-table td.pricing .price-per-night,
	.single-tf_hotel .tf-availability-table td.pricing .plv-stay-total-price,
	.single-tf_hotel .tf-availability-table td.pricing .price-per-night {
		text-align: right;
		font-size: 12px;
		line-height: 1.3;
	}

	#rooms .tf-availability-table td.reserve form,
	#rooms .tf-availability-table td.reserve form.tf-room,
	#rooms .tf-availability-table td.reserve form.plv-room-book-form,
	.plv-availability-rooms .tf-availability-table td.reserve form,
	.single-tf_hotel .tf-availability-table td.reserve form {
		display: flex !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		gap: 10px !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
	}

	#rooms .tf-availability-table td.reserve .room-selection-wrap,
	#rooms .tf-availability-table td.reserve .tf-field-group,
	.plv-availability-rooms .tf-availability-table td.reserve .room-selection-wrap,
	.single-tf_hotel .tf-availability-table td.reserve .room-selection-wrap {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		float: none !important;
		margin: 0 !important;
	}

	#rooms .tf-availability-table td.reserve .room-selection-wrap select,
	#rooms .tf-availability-table td.reserve select.tf-field,
	.plv-availability-rooms .tf-availability-table td.reserve .room-selection-wrap select,
	.single-tf_hotel .tf-availability-table td.reserve .room-selection-wrap select {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box !important;
		height: 44px !important;
		margin: 0 !important;
	}

	#rooms .tf-availability-table td.reserve .room-submit-wrap,
	.plv-availability-rooms .tf-availability-table td.reserve .room-submit-wrap,
	.single-tf_hotel .tf-availability-table td.reserve .room-submit-wrap {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 8px !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		float: none !important;
		white-space: normal !important;
	}

	#rooms .tf-availability-table td.reserve .tf_btn,
	#rooms .tf-availability-table td.reserve .hotel-room-availability,
	#rooms .tf-availability-table td.reserve .hotel-room-book,
	#rooms .tf-availability-table td.reserve .tf-reserve-button,
	#rooms .tf-availability-table td.reserve .tf-hotel-booking-popup-btn,
	#rooms .tf-availability-table td.reserve button,
	.plv-availability-rooms .room-submit-wrap .tf_btn,
	.plv-availability-rooms .room-submit-wrap .tf-hotel-booking-popup-btn,
	.plv-availability-rooms .room-submit-wrap .plv-hotel-room-book,
	.plv-availability-rooms .room-submit-wrap .hotel-room-book,
	.plv-availability-rooms .room-submit-wrap button,
	.single-tf_hotel .tf-availability-table td.reserve .tf_btn,
	.single-tf_hotel .tf-availability-table td.reserve .hotel-room-availability,
	.single-tf_hotel .tf-availability-table td.reserve .hotel-room-book,
	.single-tf_hotel .tf-availability-table td.reserve button {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box !important;
		text-align: center !important;
		white-space: nowrap !important;
		writing-mode: horizontal-tb !important;
		overflow: visible !important;
		font-size: 14px !important;
		line-height: 1.25 !important;
		padding: 12px 14px !important;
		letter-spacing: normal !important;
	}
}

.plv-nightly-rate {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px;
	margin: 0 0 6px;
	color: #111827;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
}

.plv-nightly-rate__label {
	font-size: 13px;
	font-weight: 600;
	color: #475569;
}

.plv-stay-total-price,
.tf-available-room-price .plv-stay-total-price,
.tf-price-column .plv-stay-total-price {
	display: block;
	margin-top: 2px;
	color: #64748b;
	font-size: 14px;
	font-weight: 600;
}

.tf-available-room-price .price-per-night,
.tf-price-column .price-per-night {
	color: #64748b;
	font-size: 12px;
}

.plv-room-policy-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 16px;
	margin-top: 10px;
}

.plv-room-policy-link {
	color: #0f4c5c;
	font-size: 13px;
	font-weight: 600;
	text-decoration: underline;
}

.plv-room-policies {
	margin-top: 20px;
	padding-top: 16px;
	border-top: 1px solid #e5e7eb;
}

.plv-room-policies__section + .plv-room-policies__section {
	margin-top: 16px;
}

.plv-room-policies__title {
	margin: 0 0 10px;
	font-size: 18px;
	line-height: 1.3;
}

.plv-room-policies__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.plv-room-policies__list li {
	margin: 0 0 10px;
}

.plv-room-policies__list strong {
	display: block;
	margin-bottom: 2px;
}

.plv-room-policies__list span {
	display: block;
	color: #475569;
	font-size: 14px;
	line-height: 1.45;
}

.plv-empty-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 16px;
	margin: 0 0 20px;
	padding: 14px 16px;
	border: 1px solid #d7dde5;
	background: #f7f9fc;
}

.plv-empty-cart__text {
	margin: 0;
	flex: 1 1 220px;
	color: #334155;
	font-size: 14px;
	line-height: 1.4;
}

.plv-empty-cart__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 0 16px;
	border: 1px solid #b42318;
	border-radius: 4px;
	background: #fff;
	color: #b42318;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
}

.plv-empty-cart__button:hover,
.plv-empty-cart__button:focus {
	background: #b42318;
	color: #fff;
	text-decoration: none;
}

/* WooCommerce block checkout: keep the control visible above the form. */
.wp-block-woocommerce-checkout .plv-empty-cart,
body.woocommerce-checkout .plv-empty-cart {
	position: relative;
	z-index: 2;
}

/* Hide theme/page title — shortcode renders the only heading. */
body.plv-booking-summary-page .entry-title,
body.plv-booking-summary-page .page-title,
body.plv-booking-summary-page .et_pb_title_container,
body.plv-booking-summary-page .et_main_title,
body.plv-booking-summary-page .et_pb_post_title,
body.plv-booking-summary-page article.page > .entry-header,
body.plv-booking-summary-page .entry-header .entry-title {
	display: none !important;
}

.plv-booking-summary {
	max-width: 860px;
	margin: 0 auto;
	padding: 24px 16px 48px;
	color: #0f172a;
}

.plv-booking-summary__header {
	margin-bottom: 28px;
}

.plv-booking-summary__title {
	margin: 0 0 8px;
	font-size: clamp(1.75rem, 2.5vw, 2.25rem);
	line-height: 1.15;
}

.plv-booking-summary__intro {
	margin: 0;
	color: #475569;
	font-size: 1rem;
	line-height: 1.5;
}

.plv-booking-summary__card {
	margin: 0 0 20px;
	padding: 20px;
	border: 1px solid #d7dde5;
	background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.plv-booking-summary__hotel {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	margin-bottom: 20px;
}

.plv-booking-summary__thumb {
	width: 112px;
	height: 84px;
	object-fit: cover;
	flex: 0 0 auto;
	background: #e2e8f0;
}

.plv-booking-summary__eyebrow,
.plv-booking-summary__label {
	margin: 0 0 4px;
	color: #64748b;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.plv-booking-summary__hotel-name {
	margin: 0 0 4px;
	font-size: 1.35rem;
	line-height: 1.25;
}

.plv-booking-summary__meta,
.plv-booking-summary__value {
	margin: 0;
	font-size: 1rem;
	line-height: 1.4;
}

.plv-booking-summary__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px 20px;
	margin-bottom: 20px;
}

.plv-booking-summary__price {
	font-weight: 700;
	font-size: 1.15rem;
}

.plv-booking-summary__guests h3 {
	margin: 0 0 10px;
	font-size: 1rem;
}

.plv-booking-summary__guests ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.plv-booking-summary__guests li {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 10px 0;
	border-top: 1px solid #e2e8f0;
}

.plv-booking-summary__guests li span {
	color: #334155;
	font-size: 0.95rem;
}

.plv-booking-summary__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: flex-end;
	margin-top: 24px;
}

.plv-booking-summary__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 20px;
	border: 1px solid #0b3a6e;
	background: #0b3a6e;
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

.plv-booking-summary__button:hover,
.plv-booking-summary__button:focus {
	background: #082a52;
	color: #fff;
	text-decoration: none;
}

.plv-booking-summary__button--secondary {
	background: #fff;
	color: #0b3a6e;
}

.plv-booking-summary__button--secondary:hover,
.plv-booking-summary__button--secondary:focus {
	background: #eff6ff;
	color: #0b3a6e;
}

.plv-booking-summary__empty {
	padding: 28px 20px;
	border: 1px dashed #cbd5e1;
	text-align: center;
}

@media (max-width: 768px) {
	.plv-booking-summary__grid {
		grid-template-columns: 1fr 1fr;
	}

	.plv-booking-summary__hotel {
		flex-direction: column;
	}

	.plv-booking-summary__thumb {
		width: 100%;
		height: 160px;
	}

	.plv-booking-summary__actions {
		justify-content: stretch;
	}

	.plv-booking-summary__button {
		flex: 1 1 100%;
	}
}

.plv-hotel-search .flatpickr-calendar:not(.open),
body > .flatpickr-calendar:not(.open) {
	pointer-events: none !important;
}

.plv-hotel-search__cell--dates {
	cursor: pointer;
}

@media (max-width: 768px) {
	.plv-hotel-search__bar {
		flex-direction: column;
		min-height: 0;
	}

	.plv-hotel-search__cell {
		border-right: 0;
		border-bottom: 1px solid #e5e7eb;
		padding: 12px 14px;
	}

	.plv-hotel-search__cell--submit {
		border-bottom: 0;
		padding: 0;
	}

	.plv-hotel-search__submit {
		width: 100%;
		min-height: 48px;
		border-radius: 0 0 7px 7px;
	}

	.plv-hotel-search__guest-panel {
		left: 0;
		right: 0;
		width: auto;
	}
}

/*
 * Member city landing pages (Hilo, Kona, future Hawaii pages):
 * Shared phone layout for welcome + region title blocks after
 * [provelocal_hotel_search]. Uses structural selectors (not Divi
 * module numbers) so cloned landing pages inherit the same rules.
 */
@media only screen and (max-width: 767px) {
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		overflow: visible !important;
		margin: 0 !important;
		padding-top: 0.5rem !important;
		padding-bottom: 0.25rem !important;
		box-sizing: border-box !important;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section::after,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section::after {
		content: "";
		display: table;
		clear: both;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_row,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_row {
		display: flex !important;
		flex-direction: column !important;
		justify-content: flex-start !important;
		align-items: stretch !important;
		float: none !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		margin: 0 auto !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		padding: 0 1rem 0.15rem !important;
		box-sizing: border-box !important;
		top: auto !important;
		transform: none !important;
	}

	/*
	 * Flatten the Divi 3/4 + 1/4 columns so Sign out (side column)
	 * can sit under the pass block and above Hawaii Hotels titles
	 * when region titles live in the welcome section (Kona).
	 */
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section > .et_pb_row > .et_pb_column,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section > .et_pb_row > .et_pb_column {
		float: none !important;
		display: contents !important;
		width: auto !important;
		max-width: none !important;
		min-width: 0 !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		top: auto !important;
		transform: none !important;
		position: static !important;
		box-sizing: border-box !important;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:not(:has(h1)):not(:has(h2)):not(:has(h3)):not(:has(hr)),
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:not(:has(h1)):not(:has(h2)):not(:has(h3)):not(:has(hr)) {
		order: 1;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_divider,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_divider {
		order: 2;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h1):not(:has(p)),
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h1):not(:has(p)) {
		order: 3;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h1):has(p),
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h1):has(p) {
		order: 4;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(.plv-logout-link),
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h3 a),
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(.plv-logout-link),
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h3 a) {
		order: 5;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h2),
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h2) {
		order: 10;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(hr),
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(hr) {
		order: 11;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_sidebar_0,
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_widget_area,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_sidebar_0,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_widget_area {
		order: 20;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text,
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_module,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_module {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		height: auto !important;
		max-height: none !important;
		min-height: 0 !important;
		margin: 0.12rem auto !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		box-sizing: border-box !important;
		text-align: center !important;
	}

	/*
	 * Cap phantom-height Divi modules without relying on Hilo-only
	 * module indexes (et_pb_text_2 / _4 / _5).
	 */
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:not(:has(h1)):not(:has(h2)):not(:has(h3)):not(:has(hr)),
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:not(:has(h1)):not(:has(h2)):not(:has(h3)):not(:has(hr)) .et_pb_text_inner,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:not(:has(h1)):not(:has(h2)):not(:has(h3)):not(:has(hr)),
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:not(:has(h1)):not(:has(h2)):not(:has(h3)):not(:has(hr)) .et_pb_text_inner {
		height: auto !important;
		max-height: 2.5em !important;
		line-height: 1.25 !important;
		overflow: hidden !important;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h1):has(p),
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h1):has(p) .et_pb_text_inner,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h1):has(p),
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h1):has(p) .et_pb_text_inner {
		height: auto !important;
		max-height: 5.75rem !important;
		overflow: hidden !important;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text_inner p,
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text p,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text_inner p,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text p {
		height: auto !important;
		max-height: 3.25rem !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		line-height: 1.25 !important;
		overflow: hidden !important;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text > p:empty,
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_widget_area:empty,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text > p:empty,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_sidebar_0,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_widget_area:empty {
		display: none !important;
		height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	/* Hide Divi divider above Aloha & Welcome */
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_divider,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_divider {
		display: none !important;
		height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text_inner,
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section h1,
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section h2,
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section h3,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text_inner,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section h1,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section h2,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section h3 {
		text-align: center !important;
		max-width: 100% !important;
		height: auto !important;
		margin-top: 0 !important;
		margin-bottom: 0 !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text {
		font-size: 0.7rem !important;
		letter-spacing: 0.04em !important;
		line-height: 1.25 !important;
	}

	/* Aloha & Welcome — slightly larger, keep a single line on iPhone */
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text h1,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text h1 {
		font-size: clamp(1.7rem, 8.4vw, 2.2rem) !important;
		line-height: 1.05 !important;
		letter-spacing: 0.01em !important;
		white-space: nowrap !important;
		overflow-wrap: normal !important;
		word-break: normal !important;
		width: auto !important;
		max-width: 100% !important;
		margin-left: auto !important;
		margin-right: auto !important;
		text-align: center !important;
	}

	/* Name / pass block under Aloha */
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h1):has(p),
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h1):has(p) {
		margin-top: 0.1rem !important;
		margin-bottom: 0.15rem !important;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h1):has(p) h1,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h1):has(p) h1 {
		font-size: clamp(1.45rem, 7vw, 1.9rem) !important;
		white-space: nowrap !important;
	}

	/* Sign out / Member Portal */
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h3 a),
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_column .et_pb_module:last-child,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h3 a),
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_column .et_pb_module:last-child {
		margin-top: 0.1rem !important;
		margin-bottom: 0 !important;
		padding-bottom: 0 !important;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h3 a) h3,
	.et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h3 a) h3 {
		margin: 0 !important;
		padding: 0.05rem 0 !important;
		line-height: 1.15 !important;
		font-size: 1rem !important;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section + .et_pb_section,
	body:has(.plv-hotel-search) .et_pb_section:has(.plv-hotel-search) + .et_pb_section + .et_pb_section {
		clear: both;
		position: relative;
		z-index: 1;
		width: 100% !important;
		max-width: 100% !important;
		margin-top: 0 !important;
		margin-bottom: 0 !important;
		padding-top: 0.35rem !important;
		padding-bottom: 0.5rem !important;
		overflow: visible !important;
		box-sizing: border-box !important;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section + .et_pb_section .et_pb_row,
	body:has(.plv-hotel-search) .et_pb_section:has(.plv-hotel-search) + .et_pb_section + .et_pb_section .et_pb_row {
		margin-top: 0 !important;
		margin-bottom: 0 !important;
		margin-left: auto !important;
		margin-right: auto !important;
		width: 100% !important;
		max-width: 100% !important;
		padding: 0 1rem !important;
		box-sizing: border-box !important;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section + .et_pb_section .et_pb_column,
	body:has(.plv-hotel-search) .et_pb_section:has(.plv-hotel-search) + .et_pb_section + .et_pb_section .et_pb_column {
		float: none !important;
		width: 100% !important;
		max-width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section + .et_pb_section .et_pb_text,
	body:has(.plv-hotel-search) .et_pb_section:has(.plv-hotel-search) + .et_pb_section + .et_pb_section .et_pb_text {
		width: 100% !important;
		max-width: 100% !important;
		margin-top: 0 !important;
		margin-bottom: 0.05rem !important;
		margin-left: auto !important;
		margin-right: auto !important;
		padding: 0 !important;
		text-align: center !important;
		height: auto !important;
		min-height: 0 !important;
	}

	/*
	 * Region titles (HAWAII HOTELS & RESORTS / City Resorts Hotels).
	 * Hilo keeps these in the section after welcome; Kona (and some
	 * clones) place them inside the welcome section. Cover both.
	 */
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section h2,
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section + .et_pb_section h2,
	body:has(.plv-hotel-search) .et_pb_section:has(.plv-hotel-search) + .et_pb_section h2,
	body:has(.plv-hotel-search) .et_pb_section:has(.plv-hotel-search) + .et_pb_section + .et_pb_section h2 {
		width: 100% !important;
		max-width: 100% !important;
		text-align: center !important;
		font-size: clamp(1.15rem, 5.8vw, 1.55rem) !important;
		line-height: 1.05 !important;
		letter-spacing: normal !important;
		height: auto !important;
		max-height: 3.2em !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
		white-space: normal !important;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h2),
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section + .et_pb_section .et_pb_text:has(h2),
	body:has(.plv-hotel-search) .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(h2),
	body:has(.plv-hotel-search) .et_pb_section:has(.plv-hotel-search) + .et_pb_section + .et_pb_section .et_pb_text:has(h2) {
		margin-top: 0 !important;
		margin-bottom: 0.1rem !important;
		height: auto !important;
		max-height: none !important;
		overflow: visible !important;
	}

	/* Divider lines above/below region title block (either section) */
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(hr),
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section + .et_pb_section .et_pb_text:has(hr),
	body:has(.plv-hotel-search) .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text:has(hr),
	body:has(.plv-hotel-search) .et_pb_section:has(.plv-hotel-search) + .et_pb_section + .et_pb_section .et_pb_text:has(hr) {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		height: auto !important;
		min-height: 1px !important;
		max-height: none !important;
		margin: 0.5rem auto !important;
		padding: 0 !important;
		overflow: visible !important;
	}

	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text hr,
	body.plv-member-landing .et_pb_section:has(.plv-hotel-search) + .et_pb_section + .et_pb_section .et_pb_text hr,
	body:has(.plv-hotel-search) .et_pb_section:has(.plv-hotel-search) + .et_pb_section .et_pb_text hr,
	body:has(.plv-hotel-search) .et_pb_section:has(.plv-hotel-search) + .et_pb_section + .et_pb_section .et_pb_text hr {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		border-top: 1px solid #9a9a9a !important;
	}
}
