/* ==========================================================================
   Project Paradise — Listing pages
   Accommodation / search + Saved properties. Responsive layout on top of the
   guestwisely-plugin properties-list + search markup.
   ========================================================================== */

:root {
	--pp-ink: #262626;
	--pp-muted: #6b6560;
	--pp-line: #e7e3db;
	--pp-cream: #f7f4ee;
	--pp-radius: 16px;
}

/* --------------------------------------------------------------------------
   Page frame
   -------------------------------------------------------------------------- */
.paradise-listing-page .entry-content,
.paradise-listing-page .wp-block-post-content {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}

.paradise-listing-page .hostinger-ai-page-title {
	max-width: 1200px;
	margin: 8px auto 0;
	padding: 0 20px;
	font-size: clamp(1.8rem, 4vw, 2.6rem);
}

.paradise-listing-page .elementor-144,
.paradise-listing-page .elementor-188,
.paradise-listing-page .elementor > .e-con,
.paradise-listing-page .elementor .e-con-inner {
	--content-width: 100%;
}

/* Give both widgets a shared centered gutter */
.paradise-listing-page .elementor-widget-shortcode > .elementor-shortcode {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 20px;
	padding-right: 20px;
}

@media (max-width: 767px) {
	.paradise-listing-page .elementor-widget-shortcode > .elementor-shortcode {
		padding-left: 14px;
		padding-right: 14px;
	}
}

/* --------------------------------------------------------------------------
   Search bar (full search with filters) — clean card
   -------------------------------------------------------------------------- */
.paradise-listing-page ._villas-365-search._villas-365-search-full {
	background: #fff;
	border: 1px solid var(--pp-line);
	border-radius: var(--pp-radius);
	box-shadow: 0 10px 30px rgba(38, 38, 38, 0.06);
	padding: 18px;
	margin-bottom: 8px;
}

.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields {
	padding-left: 0;
	padding-right: 0;
}

/* Kill every negative-margin `.row` inside the search so nothing bleeds past
   the card → fixes the horizontal page overflow (esp. the filter panel). */
.paradise-listing-page ._villas-365-search._villas-365-search-full .row {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Strip the Aurora hero pill (white 2px border + 40px radius + rounded first/
   last cells) that only makes sense on the dark homepage hero. */
.paradise-listing-page ._villas-365-search._villas-365-search-full ._villas-365-field-container._villas-365-large {
	border: 0 !important;
	border-radius: 0 !important;
	width: 100%;
	margin: 0 !important;
}

.paradise-listing-page ._villas-365-search._villas-365-search-full ._villas-365-field-container._villas-365-large > div {
	background: transparent !important;
	border-radius: 0 !important;
	border-right: 0 !important;
	padding: 6px !important;
}

.paradise-listing-page ._villas-365-search._villas-365-search-full ._villas-365-field-container._villas-365-large > div:first-child {
	border-radius: 0 !important;
	padding-left: 6px !important;
}

.paradise-listing-page ._villas-365-search-form-filter-buttons {
	margin-top: 14px;
}

.paradise-listing-page ._villas-365-search-form-filter-buttons .d-flex {
	gap: 10px;
}

.paradise-listing-page ._villas-365-search #_villas-365-search-apply,
.paradise-listing-page ._villas-365-search ._villas-365-property-button {
	background-color: var(--pp-ink) !important;
	border-color: var(--pp-ink) !important;
	color: var(--pp-cream) !important;
	border-radius: 999px;
	padding: 10px 26px;
	font-weight: 600;
}

.paradise-listing-page ._villas-365-search #_villas-365-search-reset,
.paradise-listing-page ._villas-365-search ._villas-365-property-outline-button {
	border-color: var(--pp-ink) !important;
	color: var(--pp-ink) !important;
	background: transparent !important;
	border-radius: 999px;
	padding: 10px 26px;
	font-weight: 600;
}

.paradise-listing-page ._villas-365-search #_villas-365-search-reset:hover,
.paradise-listing-page ._villas-365-search ._villas-365-property-outline-button:hover {
	background: var(--pp-cream) !important;
}

/* The Aurora search css (villas-365-border-search.css) forces white text for
   the dark hero. On the light listing card that makes fields invisible — force
   readable dark text/placeholders here. */
.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields .input-group .form-control,
.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields .chosen-container.chosen-container-single .chosen-single,
.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields .chosen-container.chosen-container-active.chosen-with-drop .chosen-single,
.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields .input-group .input-group-append .input-group-text,
.paradise-listing-page ._villas-365-search._villas-365-search-full ._villas-365-option-container ._villas-365-option-checkbox-custom-text {
	color: var(--pp-ink) !important;
}

.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields .input-group .form-control::placeholder,
.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields .input-group .form-control::-moz-placeholder,
.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields .chosen-container .chosen-single span {
	color: var(--pp-muted) !important;
}

/* One clean pill per field. Only border the plain input-groups (dates) and the
   Chosen `.chosen-single` — NOT the `.chosen-input-group` wrapper, otherwise the
   select fields render a double border. */
.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields .input-group:not(.chosen-input-group),
.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields .chosen-container.chosen-container-single .chosen-single {
	border: 1px solid var(--pp-line) !important;
	border-radius: 999px !important;
	overflow: hidden;
	height: 48px;
	display: flex;
	align-items: center;
	background: #fff;
}

.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields .chosen-input-group {
	border: 0 !important;
	border-radius: 0 !important;
}

.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields .chosen-container,
.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields .chosen-container .chosen-single {
	width: 100% !important;
}

.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields .chosen-container.chosen-container-single .chosen-single {
	padding: 8px !important;
}

.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields .input-group .form-control {
	border: 0 !important;
	background: transparent;
	height: 46px;
	padding: 8px !important;
}
.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields .input-group .form-control::placeholder{
	color: var(--pp-ink) !important;
}

.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields .input-group .input-group-append,
.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-fields .input-group .input-group-append .input-group-text {
	background: transparent !important;
	border: 0 !important;
}

/* Filter panel: trim heavy padding and keep it inside the card */
.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-filter ._villas-365-search-form-filter-inner .container-fluid {
	padding: 18px 0 0 !important;
	width: fit-content !important;
}

.paradise-listing-page ._villas-365-search._villas-365-search-full #_villas-365-search-form-filter {
	overflow: hidden;
}

.paradise-listing-page ._villas-365-search._villas-365-search-full ._villas-365-option-checkbox-custom {
	border-color: var(--pp-line) !important;
}

/* Search + filter buttons in the field row */
.paradise-listing-page ._villas-365-search._villas-365-search-full ._villas-365-large ._villas-365-search-button.btn {
	background-color: var(--pp-ink) !important;
	border-color: var(--pp-ink) !important;
	color: var(--pp-cream) !important;
	border-radius: 999px !important;
	height: 48px;
	font-weight: 600;
	flex: 1;
}

.paradise-listing-page ._villas-365-search._villas-365-search-full ._villas-365-large ._villas-365-filter-button.btn {
	background-color: #fff !important;
	border: 1px solid var(--pp-line) !important;
	color: var(--pp-ink) !important;
	flex: 0 0 48px;
	margin-right: 8px;
	padding: 0;
}

.paradise-listing-page ._villas-365-search._villas-365-search-full ._villas-365-large .col-lg-2 > .d-flex {
	gap: 0;
}

/* --------------------------------------------------------------------------
   Results header (count + view/sort controls)
   -------------------------------------------------------------------------- */
.paradise-listing-page ._villas-365-properties-header {
	margin-top: 8px;
}

.paradise-listing-page ._villas-365-properties-header .container {
	padding-left: 0;
	padding-right: 0;
	max-width: none;
}

.paradise-listing-page ._villas-365-properties-title {
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--pp-ink);
	margin: 0 0 4px;
}

.paradise-listing-page ._villas-365-properties-title-separator {
	display: none;
}

.paradise-listing-page ._villas-365-properties-view-controls,
.paradise-listing-page ._villas-365-properties-sort-controls {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.paradise-listing-page ._villas-365-properties-view-control-title,
.paradise-listing-page ._villas-365-properties-sort-control-label {
	color: var(--pp-muted);
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.paradise-listing-page ._villas-365-properties-view-button {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border: 1px solid var(--pp-line);
	border-radius: 999px;
	padding: 7px 14px;
	color: var(--pp-ink);
	font-size: 0.85rem;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.paradise-listing-page ._villas-365-properties-view-button:hover {
	border-color: var(--pp-ink);
}

.paradise-listing-page ._villas-365-properties-view-button.active {
	background: var(--pp-ink);
	border-color: var(--pp-ink);
	color: var(--pp-cream);
}

/* Map view is broken without a Google Maps key — hide the map toggle */
.paradise-listing-page ._villas-365-properties-view-button[href*="view=map"] {
	display: none;
}

.paradise-listing-page .chosen-container.chosen-container-single .chosen-single,
.paradise-listing-page ._villas-365-properties-sort-control {
	border-radius: 999px !important;
	border: 1px solid var(--pp-line) !important;
	height: auto;
	min-height: 40px;
}

/* --------------------------------------------------------------------------
   Grid of cards — flatten the plugin's chunked rows into ONE responsive grid.
   The plugin outputs multiple `.row`s (one per `perrow` chunk) plus a trailing
   `.row.mt-5` for pagination. `display:contents` hoists every card into a
   single grid so gaps are consistent both directions.
   -------------------------------------------------------------------------- */
.paradise-listing-page ._villas-365-properties-grid > .container,
.paradise-listing-page ._villas-365-properties-list > .container {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}

.paradise-listing-page ._villas-365-properties-grid > .container.mt-4 {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(288px, 1fr));
	gap: 30px;
}

.paradise-listing-page ._villas-365-properties-grid > .container.mt-4 > .row:not(.mt-5) {
	display: contents;
}

/* pagination row spans the whole grid width */
.paradise-listing-page ._villas-365-properties-grid > .container.mt-4 > .row.mt-5 {
	grid-column: 1 / -1;
	margin: 12px 0 0;
}

/* hide the empty placeholder columns the plugin adds to pad the last chunk
   (they carry `col-md` but not `_villas-365-property`) */
.paradise-listing-page ._villas-365-properties-grid > .container.mt-4 > .row > .col-md:not(._villas-365-property) {
	display: none;
}

.paradise-listing-page ._villas-365-properties-grid ._villas-365-property.col-md {
	width: auto !important;
	max-width: none !important;
	flex: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.paradise-listing-page ._villas-365-properties-grid ._villas-365-property-inner {
	height: 100%;
	border: 1px solid var(--pp-line);
	border-radius: var(--pp-radius);
	background: #fff;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
	display: flex;
	flex-direction: column;
	padding: 12px;
}

.paradise-listing-page ._villas-365-properties-grid ._villas-365-property-inner:hover {
	box-shadow: 0 16px 34px rgba(38, 38, 38, 0.11);
	transform: translateY(-3px);
}

/* kill bootstrap gutters inside the card so everything aligns to the padding */
.paradise-listing-page ._villas-365-properties-grid ._villas-365-property-inner .row {
	margin: 0;
}

.paradise-listing-page ._villas-365-properties-grid ._villas-365-property-inner .row > [class*="col"] {
	padding: 12px !important;
}

.paradise-listing-page ._villas-365-properties-grid ._villas-365-property-inner > .row.h-100 {
	height: auto !important;
	flex-direction: column;
	flex: 1;
}

/* inset, rounded image that respects the card padding */
.paradise-listing-page ._villas-365-properties-grid ._villas-365-property-image {
	border-radius: 12px;
	overflow: hidden;
	min-height: 0;
}

.paradise-listing-page ._villas-365-properties-grid ._villas-365-property-image-link {
	height: 200px !important;
	border-radius: 12px;
}

.paradise-listing-page ._villas-365-properties-grid ._villas-365-property-image img.img-fluid {
	border-radius: 12px;
	width: 100%;
	height: 200px;
	object-fit: cover;
}

.paradise-listing-page ._villas-365-properties-grid ._villas-365-property-name {
	margin: 14px 0 6px;
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.3;
}

.paradise-listing-page ._villas-365-properties-grid ._villas-365-property-name a {
	color: var(--pp-ink);
}

.paradise-listing-page ._villas-365-properties-grid ._villas-365-property-city {
	color: var(--pp-muted);
	font-size: 0.9rem;
	margin-bottom: 10px !important;
}

.paradise-listing-page ._villas-365-properties-grid ._villas-365-property-summary {
	color: #4a4640;
	font-size: 0.9rem;
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin-bottom: 4px;
}

.paradise-listing-page ._villas-365-properties-grid ._villas-365-property-rooms {
	height: auto !important;
	margin: 14px 0 4px;
}

.paradise-listing-page ._villas-365-properties-grid ._villas-365-property-footer,
.paradise-listing-page ._villas-365-properties-grid ._villas-365-property-button-container {
	margin-top: auto;
	padding-top: 12px;
}

.paradise-listing-page ._villas-365-properties-grid ._villas-365-property-button {
	background-color: var(--pp-ink) !important;
	border-color: var(--pp-ink) !important;
	color: var(--pp-cream) !important;
	border-radius: 999px !important;
	text-transform: none !important;
	width: 100%;
	font-weight: 600;
}

/* --------------------------------------------------------------------------
   Pagination (_villas-365-navigation)
   -------------------------------------------------------------------------- */
.paradise-listing-page ._villas-365-navigation {
	border-top: 1px solid var(--pp-line);
	padding-top: 24px;
}

.paradise-listing-page ._villas-365-navigation .row {
	align-items: center;
}

.paradise-listing-page ._villas-365-navigation-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 22px;
	border: 1px solid var(--pp-ink);
	border-radius: 999px;
	color: var(--pp-ink);
	font-weight: 600;
	text-decoration: none;
	transition: background 0.15s ease, color 0.15s ease;
}

.paradise-listing-page ._villas-365-navigation-link:hover {
	background: var(--pp-ink);
	color: var(--pp-cream);
}

.paradise-listing-page ._villas-365-navigation .col.text-center {
	color: var(--pp-muted);
	font-size: 0.92rem;
	font-weight: 600;
}

/* --------------------------------------------------------------------------
   Map view — sticky map + scrollable list, stacks on mobile
   -------------------------------------------------------------------------- */
.paradise-listing-page ._villas-365-properties-map > .container {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}

.paradise-listing-page ._villas-365-map-properties-container {
	max-height: 80vh;
	overflow-y: auto;
	padding-right: 6px;
}

.paradise-listing-page ._villas-365-properties-map .map-container {
	position: sticky;
	top: 96px;
	height: 80vh;
	border-radius: var(--pp-radius);
	overflow: hidden;
}

@media (max-width: 991px) {
	.paradise-listing-page ._villas-365-map-properties-container {
		max-height: none;
		overflow: visible;
	}

	.paradise-listing-page ._villas-365-properties-map .map-container {
		position: static;
		height: 320px;
		margin-bottom: 20px;
	}
}

/* horizontal cards in the map list */
.paradise-listing-page ._villas-365-properties-map ._villas-365-property-inner {
	border: 1px solid var(--pp-line);
	border-radius: var(--pp-radius);
	overflow: hidden;
	background: #fff;
	transition: box-shadow 0.2s ease;
}

.paradise-listing-page ._villas-365-properties-map ._villas-365-property-inner:hover {
	box-shadow: 0 12px 26px rgba(38, 38, 38, 0.1);
}

/* --------------------------------------------------------------------------
   Room pills (match card treatment used site-wide)
   -------------------------------------------------------------------------- */
.paradise-listing-page ._villas-365-property-rooms {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.paradise-listing-page ._villas-365-property-rooms ._villas-365-property-room {
	background-color: var(--pp-ink) !important;
	color: #fff !important;
	padding: 4px 10px !important;
	border-radius: 999px;
	margin: 0 !important;
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
}

.paradise-listing-page ._villas-365-property-rooms ._villas-365-property-room span,
.paradise-listing-page ._villas-365-property-rooms ._villas-365-property-room > ._villas-365-property-room-icon {
	color: #fff !important;
	font-size: 0.85rem;
}

/* --------------------------------------------------------------------------
   Saved properties page
   -------------------------------------------------------------------------- */
.paradise-saved-page ._villas-365-saved-properties {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 auto 8px;
	padding: 10px 20px;
	border: 1px solid var(--pp-line);
	border-radius: 999px;
	background: #fff;
	color: var(--pp-ink);
	font-weight: 600;
	text-decoration: none;
}

.paradise-saved-page .elementor-widget-shortcode:first-child .elementor-shortcode {
	text-align: center;
}

/* Empty state (no saved / no results) */
.paradise-listing-page ._villas-365-properties:not([class*="-grid"]):not([class*="-list"]):not([class*="-map"]) .container .row .col {
	text-align: center;
	color: var(--pp-muted);
	font-size: 1.05rem;
	padding: 56px 20px;
	border: 1px dashed var(--pp-line);
	border-radius: var(--pp-radius);
	background: #fff;
}

.paradise-listing-page ._villas-365-properties:not([class*="-grid"]):not([class*="-list"]):not([class*="-map"]) .container .row .col::before {
	content: "\f004"; /* far fa-heart */
	font-family: "Font Awesome 5 Free", "Font Awesome 6 Free", "FontAwesome";
	font-weight: 400;
	display: block;
	font-size: 2.4rem;
	color: var(--pp-line);
	margin-bottom: 14px;
}

/* --------------------------------------------------------------------------
   Save (heart) button on cards
   -------------------------------------------------------------------------- */
.paradise-listing-page ._villas-365-property-save-button {
	background: rgba(255, 255, 255, 0.92) !important;
	color: var(--pp-ink) !important;
	border-radius: 999px;
}
