/* =========================================================
   Wiley Property Listings — public styles
   Single-property CSS copied verbatim from wiley.html design.
   Additional rules at the bottom for listings grid, modals,
   password gate, wishlist, header overrides on property pages.
========================================================= */

:root {
	--wpl-primary: #131E65;
	--wpl-text:    #5E5E5E;
	--wpl-heading: #000000;
	--wpl-border:  #DDDDDD;
	--wpl-lightbg: #ECEDF3;
}

.pp-main *, .pp-page * { box-sizing: border-box; }

/* Give property pages breathing room under the fixed site header */
body.single-property .pp-main,
body.post-type-archive-property .pp-page { padding-top: 120px; }

/* Containment — prevent horizontal scroll created by overflow children.
   `overflow-x: clip` lets `position: sticky` still work inside. */
.pp-main, .pp-page { overflow-x: clip; }

.pp-container {
	width: 1470px;
	max-width: 95%;
	margin: auto;
}

/* ===== Breadcrumbs ===== */
.breadcrumbs_sec .breadcrumb {
	background: transparent;
	font-family: "Inter", Sans-serif;
	font-size: 18px;
	color: #5E5E5E;
	font-weight: 400;
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}
.breadcrumbs_sec .breadcrumb .breadcrumb-item { color: #5E5E5E; }
.breadcrumbs_sec .breadcrumb .breadcrumb-item a {
	color: #5E5E5E;
	font-family: "Inter", Sans-serif;
	font-size: 18px;
	font-weight: 400;
	text-decoration: none;
}
.breadcrumbs_sec .breadcrumb .breadcrumb-item a:hover { text-decoration: underline; }
.breadcrumbs_sec .breadcrumb .breadcrumb-item.active {
	font-family: "Inter", Sans-serif;
	font-size: 18px;
	color: #5E5E5E;
	font-weight: 400;
	text-decoration: none;
}
.breadcrumbs_sec .breadcrumb .breadcrumb-item + .breadcrumb-item::before {
	content: "/";
	padding: 0 6px;
	color: #999;
}
.breadcrumbs_sec .breadcrumb li img { vertical-align: middle; }

/* ===== Action icons row (wishlist, print, email, share) ===== */
.share-icons {
	display: flex;
	gap: 6px;
	align-items: center;
	justify-content: flex-end;
	padding-top: 20px;
	position: relative;
	z-index: 5;
}

/* Wrapper for buttons that have a hover dropdown */
.wpl-action { position: relative; display: inline-block; }

/* Unified action button — 42x42 circle, subtle hover */
.wpl-action-btn {
	width: 42px;
	height: 42px;
	border: 0;
	background: transparent;
	cursor: pointer;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	outline: none;
	line-height: 0;
	transition: background 0.2s ease, transform 0.15s ease;
	-webkit-tap-highlight-color: transparent;
	box-shadow: none;
}
.wpl-action-btn:focus,
.wpl-action-btn:focus-visible,
.wpl-action-btn:focus:not(:focus-visible),
.wpl-action-btn:active {
	outline: none !important;
	box-shadow: none !important;
	background: transparent !important;
	border: 0 !important;
}
.wpl-action-btn:hover { background: #ECEDF3 !important; }
.wpl-action-btn:active { transform: scale(0.92); }
/* When a dropdown is open keep the parent button quiet too */
.wpl-action:focus-within .wpl-action-btn,
.wpl-action:hover .wpl-action-btn { background: #ECEDF3 !important; }

.wpl-action-btn img,
.wpl-action-btn svg {
	width: 20px;
	height: 20px;
	display: block;
	pointer-events: none;
	transition: transform 0.2s ease;
}
.wpl-action-btn:hover img,
.wpl-action-btn:hover svg { transform: scale(1.08); }

/* Compare action SVG — outline default, solid navy fill when active */
.wpl-compare-btn svg {
	stroke: #131E65;
	fill: transparent;
	transition: fill 0.2s ease, stroke 0.2s ease, background 0.2s ease;
}
/* Active state: filled navy circle so users clearly see "added" state */
.wpl-action-btn.wpl-compare-btn.active {
	background: #131E65 !important;
}
.wpl-action-btn.wpl-compare-btn.active svg {
	stroke: #fff;
	fill: #fff;
}
.wpl-action-btn.wpl-compare-btn.active:hover {
	background: #0E1450 !important;
}

/* Wishlist SVG — outline default, filled red when active */
.wpl-wishlist-btn svg {
	fill: transparent;
	stroke: #131E65;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: fill 0.2s ease, stroke 0.2s ease, transform 0.2s ease;
}
.wpl-wishlist-btn.active svg {
	fill: #D32F2F;
	stroke: #D32F2F;
}

/* Dropdown menu — shared by wishlist + share */
.wpl-action-menu {
	display: none;
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	background: #fff;
	min-width: 200px;
	box-shadow: rgba(0, 0, 0, 0.18) 0px 8px 24px 0px;
	border: 1px solid var(--wpl-border);
	z-index: 9999;
	padding: 0;
	overflow: hidden;
}
.wpl-action-menu::before {
	content: '';
	position: absolute;
	top: -6px;
	right: 16px;
	width: 10px;
	height: 10px;
	background: #fff;
	border-left: 1px solid var(--wpl-border);
	border-top:  1px solid var(--wpl-border);
	transform: rotate(45deg);
}

/* Invisible hover bridge — prevents the menu from closing when the cursor
   crosses the gap between the button and the menu. */
.wpl-action::after {
	content: '';
	position: absolute;
	top: 100%;
	right: 0;
	height: 12px;
	width: 100%;
	min-width: 200px;
	pointer-events: none;
}
.wpl-action:hover::after,
.wpl-action:focus-within::after { pointer-events: auto; }

/* Show the menu on hover OR focus-within (keyboard + mobile tap) */
.wpl-action:hover .wpl-action-menu,
.wpl-action:focus-within .wpl-action-menu,
.wpl-action-menu.is-open {
	display: block;
	animation: wpl-menu-fade 0.18s ease-out;
}
@keyframes wpl-menu-fade {
	from { opacity: 0; transform: translateY(-6px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* Menu items — clean, sharp corners, subtle row hover (no rounded bubble) */
.wpl-action-menu a,
.wpl-action-menu button {
	display: block;
	width: 100%;
	text-align: left;
	padding: 12px 18px;
	background: transparent;
	border: 0;
	border-radius: 0;
	cursor: pointer;
	color: #1a1a1a;
	text-decoration: none;
	font-family: "Inter", sans-serif;
	font-size: 14px;
	line-height: 1.4;
	white-space: nowrap;
	transition: background 0.15s ease, color 0.15s ease;
	outline: none;
	box-shadow: none;
	margin: 0;
}
.wpl-action-menu a + a,
.wpl-action-menu a + button,
.wpl-action-menu button + a,
.wpl-action-menu button + button { border-top: 1px solid var(--wpl-border); }

.wpl-action-menu a:hover,
.wpl-action-menu button:hover,
.wpl-action-menu a:focus,
.wpl-action-menu button:focus {
	background: var(--wpl-lightbg);
	color: #131E65;
	outline: none;
}

/* ===== Heading ===== */
.heading-container {
	display: flex;
	align-items: start;
	justify-content: space-between;
	margin: 30px 0;
	flex-wrap: wrap;
	gap: 20px;
}
.heading-container ul {
	display: flex;
	align-items: start;
	gap: 10px;
	margin: 0;
	padding: 0;
}
.heading-container ul li {
	list-style-type: none;
	font-family: "Inter", Sans-serif;
	color: #5E5E5E;
	display: flex;
	gap: 5px;
	align-items: center;
}
.heading-container ul li img { width: 18px; height: 18px; }
.heading-container h6 {
	margin: 0 0 10px;
	font-family: "Inter", Sans-serif;
	font-size: 18px;
	color: #5E5E5E;
	font-weight: 400;
}
.heading-container h1 {
	margin: 0 0 10px;
	font-family: "Marcellus", serif;
	font-size: 50px;
	font-weight: 400;
	color: #000000;
	line-height: 60px;
}
.heading-container .right-info { text-align: right; }
.heading-container .right-info small {
	font-family: "Inter", Sans-serif;
	font-size: 18px;
	font-weight: 400;
	color: #5E5E5E;
	line-height: 28px;
	display: block;
}
.heading-container .right-info span {
	font-family: "Inter", Sans-serif;
	font-size: 18px;
	font-weight: 600;
	color: #131E65;
	margin-bottom: 10px;
	line-height: 28px;
	display: block;
}

/* ===== Top slider ===== */
.pp-slider { position: relative; overflow: hidden; z-index: 1; }
.pp-slider-track { display: none; width: 100%; }
.pp-slider-track.active { display: block; }
.pp-slider-inner {
	display: flex;
	width: 100%;
	transition: transform 0.5s ease;
}
.pp-slider-inner img {
	min-width: 100%;
	height: 520px;
	object-fit: cover;
	flex-shrink: 0;
	display: block;
	width: 100%;
}
.pp-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(26, 42, 108, 0.9);
	color: #fff;
	border: none;
	padding: 10px 14px;
	cursor: pointer;
	z-index: 10;
	font-size: 18px;
	line-height: 1;
}
.pp-arrow:hover { color: #000000; background: #ffffff; }
.pp-prev { left: 15px; }
.pp-next { right: 15px; }

.pp-slider-bottom {
	position: absolute;
	bottom: 15px;
	left: 15px;
	display: flex;
	gap: 10px;
	align-items: center;
	z-index: 10;
}
.pp-count {
	color: #fff;
	position: absolute;
	bottom: 55px;
	left: 15px;
	font-family: "Inter", Sans-serif;
	font-size: 15px;
	font-weight: 400;
	z-index: 10;
}
.pp-tab {
	padding: 6px 45px;
	border: none;
	cursor: pointer;
	background: rgba(255, 255, 255, 0.85);
	font-family: "Inter", Sans-serif;
	font-size: 18px;
	z-index: 10;
}
.pp-tab.active { background: #1a2a6c; color: #fff; }

/* ===== Content ===== */
.pp-content {
	display: flex;
	gap: 30px;
	margin: 50px 0;
}
.pp-details { border-right: 1px solid #dddddd; }
.pp-left    { flex: 2; min-width: 0; }
/* When no pp-right exists, let pp-left expand to full width. */
.pp-content .pp-left:only-child { flex: 1; }
.pp-left h2 {
	font-family: "Marcellus", serif;
	font-size: 30px;
	color: #000000;
	font-weight: 400;
}
.pp-left p {
	font-family: "Inter", Sans-serif;
	font-size: 18px;
	color: #5E5E5E;
	line-height: 28px;
	font-weight: 400;
}
.pp-right { flex: 1; min-width: 0; }

/* Details + Features two-column */
.pp-details-features {
	display: flex;
	gap: 40px;
	margin-top: 30px;
	position: relative;
}
.pp-details-features::after {
	position: absolute;
	content: "";
	width: 100%;
	top: 80px;
	background: #dddddd;
	height: 1px;
}
.pp-details h3, .pp-features h3 {
	font-family: "Marcellus", serif;
	font-size: 30px;
	line-height: 40px;
	color: #000000;
	font-weight: 400;
}
.pp-details, .pp-features { flex: 1; min-width: 0; }
.pp-details-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
}
.pp-details-grid div { width: calc(50% - 10px); }
.pp-details-features span,
.pp-details-features strong {
	font-family: "Inter", Sans-serif;
	font-size: 18px;
	color: #000000;
	display: block;
	line-height: 28px;
	font-weight: 400;
}
.pp-details-features strong { font-weight: 600; }

/* Accordion */
.pp-acc-item { border-bottom: 1px solid #ddd; }
.pp-acc-header {
	padding: 12px;
	cursor: pointer;
	position: relative;
}
.pp-acc-header h4 {
	font-family: "Marcellus", serif;
	font-size: 20px;
	color: #000000;
	display: block;
	line-height: 30px;
	font-weight: 400;
	margin: 0;
}
.pp-acc-header::after {
	content: "";
	background-image: url("/wileyandpartners/wp-content/uploads/2026/04/wiely-arrow-up.svg");
	width: 14px;
	height: 7px;
	background-size: contain;
	background-repeat: no-repeat;
	position: absolute;
	right: 10px;
	top: 22px;
}
.pp-acc-item.active .pp-acc-header::after {
	background-image: url("/wileyandpartners/wp-content/uploads/2026/04/wiely-arrow-down.svg");
}
.pp-acc-body { display: none; padding: 10px; }
.pp-acc-item.active .pp-acc-body { display: block; }
.pp-acc-body p {
	font-family: "Inter", Sans-serif;
	font-size: 18px;
	color: #5E5E5E;
	display: block;
	line-height: 28px;
	margin: 0;
	font-weight: 400;
}

/* Contact form */
.pp-form {
	background: #ffffff;
	padding: 20px;
	box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
}
.pp-form h3 {
	font-family: "Marcellus", serif;
	font-size: 30px;
	color: #000000;
	font-weight: 400;
	margin-top: 0;
}
.pp-form label {
	font-family: "Inter", Sans-serif;
	font-size: 15px;
	color: #000000;
	line-height: 25px;
	font-weight: 400;
}
.pp-form input,
.pp-form textarea,
.pp-select {
	width: 100%;
	padding: 10px;
	margin-bottom: 15px;
	border: 1px solid #D4D4D4;
}
.pp-form input:focus,
.pp-form textarea:focus,
.pp-select:focus { outline: none; box-shadow: unset; }
.pp-form input::placeholder,
.pp-form textarea::placeholder {
	color: #BDB6B6;
	font-family: "Inter", Sans-serif;
	font-size: 13px;
	font-weight: 400;
}
.agree { display: flex; align-items: start; gap: 5px; }
.agree input { width: 27px; height: 27px; }
.agree p {
	font-family: "Inter", Sans-serif;
	font-size: 15px;
	color: #000000;
	line-height: 25px;
	font-weight: 400;
	margin: 0;
}
.pp-form button {
	font-family: "Inter", Sans-serif;
	font-size: 18px;
	padding: 8px 15px;
	border: 1px solid #131E65;
	color: #ffffff;
	background-color: #131E65;
	line-height: 25px;
	font-weight: 500;
	margin-top: 15px;
	transition: 0.5s ease;
	cursor: pointer;
}
.pp-form button:hover { color: #131E65; background-color: #ffffff; }

/* Map */
.pp-map h3 {
	font-family: "Marcellus", serif;
	font-size: 30px;
	line-height: 40px;
	color: #000000;
	font-weight: 400;
	margin: 30px 0 10px;
}
#wpl-single-map, .pp-map iframe {
	width: 100%;
	height: 260px;
	margin-top: 15px;
}

/* Similar properties */
.pp-similar {
	background-color: #ECEDF3;
	width: 100%;
	padding: 60px 0;
}
.pp-similar h3 {
	margin: 0 0 10px;
	font-family: "Marcellus", serif;
	font-size: 50px;
	font-weight: 400;
	color: #000000;
	line-height: 60px;
	text-align: center;
}
.pp-similar .slick-slider { max-width: 1470px; margin: 40px auto 0; }
.pp-slick .slick-slide { background-color: #ffffff; margin: 0 20px; }
.pp-slick { margin: 0 -10px; }
.pp-slick img {
	width: 100%;
	height: 295px;
	object-fit: cover;
	max-width: 100%;
}
.pp-slick .ctnt { padding: 15px; }
.pp-slick .ctnt h4 {
	margin: 0 0 10px;
	font-family: "Marcellus", serif;
	font-size: 22px;
	font-weight: 400;
	color: #000000;
	line-height: 32px;
	text-align: left;
}
.pp-slick .ctnt h4 a { color: inherit; text-decoration: none; }
.pp-slick .ctnt p,
.pp-slick .ctnt small.sale {
	font-family: "Inter", Sans-serif;
	font-size: 18px;
	color: #5E5E5E;
	line-height: 28px;
	font-weight: 400;
	margin: 0 0 10px;
	display: block;
}
.pp-slick .ctnt span.amount {
	font-family: "Inter", Sans-serif;
	font-size: 18px;
	color: #131E65;
	line-height: 28px;
	font-weight: 600;
}
.pp-similar .slick-slider { position: relative; }
.pp-similar .slick-prev,
.pp-similar .slick-next {
	width: 40px;
	height: 60px;
	z-index: 5;
	background: transparent;
	margin-top: -30px;
	font-size: 0;
	line-height: 0;
	color: transparent;
	text-indent: -9999px;
	overflow: hidden;
}
.pp-similar .slick-prev { left: 0; }
.pp-similar .slick-next { right: 0; }
.pp-similar .slick-prev:before,
.pp-similar .slick-next:before {
	content: '';
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	width: 22px;
	height: 39px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	display: block;
	opacity: 1;
}
.pp-similar .slick-prev:before { background-image: url("/wileyandpartners/wp-content/uploads/2026/04/wiely-arrow-left.svg"); }
.pp-similar .slick-next:before { background-image: url("/wileyandpartners/wp-content/uploads/2026/04/wiely-arrow-right.svg"); }
.pp-similar .slick-list { padding: 0 40px; }

/* ===== Card (shared by listings + similar) — equal height ===== */
.wpl-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	color: var(--wpl-text);
	text-decoration: none;
	box-shadow: rgba(99,99,99,0.2) 0px 2px 8px 0px;
	overflow: hidden;
	transition: transform 0.2s;
	height: 100%;
}
.wpl-card:hover { transform: translateY(-4px); }
.wpl-card-img { flex-shrink: 0; background: var(--wpl-lightbg); height: 240px; overflow: hidden; position: relative; }
.wpl-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wpl-card-body  { padding: 16px; display: flex; flex-direction: column; flex: 1; }
.wpl-card-title { font-family: "Marcellus", serif; font-weight: 400; font-size: 20px; color: var(--wpl-heading); margin: 0 0 6px; line-height: 1.3; }
.wpl-card-loc   { font-size: 13px; margin: 0 0 8px; color: var(--wpl-text); }
.wpl-card-meta {
	list-style: none;
	padding: 0;
	margin: 0 0 10px;
	display: flex;
	gap: 14px;
	color: var(--wpl-text);
	font-size: 13px;
}
.wpl-card-meta li { display: inline-flex; align-items: center; gap: 4px; }
.wpl-card-meta li img { width: 14px; height: 14px; }
.wpl-card-ref   { font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: #888; margin: 0 0 6px; }
.wpl-card-price { font-family: "Marcellus", serif; font-size: 18px; color: var(--wpl-primary); margin: auto 0 0; }

/* Locked card variant — placeholder image + badge, no real data. */
.wpl-card-locked .wpl-card-img { background: var(--wpl-primary); }
.wpl-card-locked .wpl-card-img img { opacity: 0.55; }
.wpl-card-lock-badge {
	position: absolute;
	bottom: 12px;
	left: 12px;
	background: rgba(255,255,255,0.95);
	color: var(--wpl-primary);
	font-size: 11px;
	letter-spacing: 1px;
	text-transform: uppercase;
	padding: 6px 10px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 600;
}
.wpl-card-private-hint { font-style: italic; color: #888; font-size: 12px; }

.wpl-listings   { margin: 24px 0; }
.wpl-view-toggle { display: flex; gap: 4px; margin-bottom: 16px; }
.wpl-view-toggle a { padding: 8px 16px; border: 1px solid var(--wpl-border); text-decoration: none; color: var(--wpl-text); }
.wpl-view-toggle a.active { background: var(--wpl-primary); color: #fff; border-color: var(--wpl-primary); }
.wpl-grid { display: grid; gap: 24px; align-items: stretch; }
.wpl-grid.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wpl-grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wpl-grid.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.wpl-map { height: 600px; background: var(--wpl-lightbg); }
.wpl-pagination { display: flex; gap: 6px; justify-content: center; margin-top: 30px; flex-wrap: wrap; }
.wpl-pagination a, .wpl-pagination span { padding: 8px 14px; border: 1px solid var(--wpl-border); text-decoration: none; color: var(--wpl-text); font-size: 13px; transition: background 0.15s, color 0.15s, border-color 0.15s; }
.wpl-pagination a:hover { background: var(--wpl-lightbg); color: var(--wpl-primary); border-color: var(--wpl-primary); }
.wpl-pagination .current { background: var(--wpl-primary); color: #fff; border-color: var(--wpl-primary); }
.wpl-pagination .dots { border-color: transparent; }

/* Load More */
.wpl-load-more-wrap { display: flex; justify-content: center; margin-top: 30px; }
.wpl-load-more {
	background: var(--wpl-primary);
	color: #fff;
	border: 0;
	padding: 14px 32px;
	font-family: "Inter", sans-serif;
	font-size: 13px;
	letter-spacing: 2px;
	text-transform: uppercase;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	transition: opacity 0.2s, transform 0.15s;
}
.wpl-load-more:hover { opacity: 0.9; }
.wpl-load-more:active { transform: scale(0.97); }
.wpl-load-more .wpl-lm-spinner {
	width: 14px;
	height: 14px;
	border: 2px solid rgba(255,255,255,0.4);
	border-top-color: #fff;
	border-radius: 50%;
	display: none;
	animation: wpl-lm-spin 0.7s linear infinite;
}
.wpl-load-more.is-loading {
	cursor: progress;
	opacity: 0.85;
}
.wpl-load-more.is-loading .wpl-lm-label { opacity: 0.5; }
.wpl-load-more.is-loading .wpl-lm-spinner { display: inline-block; }
@keyframes wpl-lm-spin { to { transform: rotate(360deg); } }

/* Filter widget */
.wpl-filter { background: var(--wpl-lightbg); padding: 20px; position: relative; }

/* Toast shown when user tries to open Town with no County selected */
.wpl-filter-msg {
	position: absolute;
	left: 50%;
	bottom: -22px;
	transform: translate(-50%, 10px);
	background: linear-gradient(135deg, #FFB627 0%, #F39200 100%);
	color: #2a1a00;
	padding: 12px 22px 12px 18px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.4px;
	box-shadow: rgba(243, 146, 0, 0.45) 0px 10px 28px, rgba(0, 0, 0, 0.10) 0px 2px 6px;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.28s ease, transform 0.28s ease;
	z-index: 50;
	white-space: nowrap;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	border-radius: 0;
	animation: wpl-filter-msg-pulse 1.2s ease-in-out 1;
}
.wpl-filter-msg.is-visible {
	opacity: 1;
	transform: translate(-50%, 0);
}
.wpl-filter-msg::before {
	content: '';
	position: absolute;
	top: -5px;
	left: 50%;
	transform: translateX(-50%) rotate(45deg);
	width: 10px;
	height: 10px;
	background: #FFB627;
}
.wpl-filter-msg-icon {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #2a1a00;
	color: #FFB627;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 900;
	font-size: 14px;
	line-height: 1;
	flex-shrink: 0;
}
@keyframes wpl-filter-msg-pulse {
	0%, 100% { box-shadow: rgba(243, 146, 0, 0.45) 0px 10px 28px, rgba(0, 0, 0, 0.10) 0px 2px 6px; }
	50%      { box-shadow: rgba(243, 146, 0, 0.75) 0px 12px 36px, rgba(0, 0, 0, 0.15) 0px 4px 8px; }
}
.wpl-filter .form-row { margin: 0; }
.wpl-filter .form-row p {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin: 0 0 10px;
	align-items: stretch;
}
.wpl-filter input, .wpl-filter select {
	width: 100%;
	height: 44px;
	padding: 0 12px;
	border: 1px solid var(--wpl-border);
	background: #fff;
	font-family: "Inter", sans-serif;
	font-size: 14px;
	color: var(--wpl-text);
	border-radius: 0;
	box-sizing: border-box;
	margin: 0;
}
.wpl-filter-submit {
	background: var(--wpl-primary);
	color: #fff;
	height: 44px;
	padding: 0 22px;
	border: 0;
	cursor: pointer;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-family: "Inter", sans-serif;
	box-sizing: border-box;
}
.wpl-filter-submit:hover { opacity: 0.9; }
.wpl-filter .bottom-row p { grid-template-columns: repeat(5, minmax(0, 1fr)); }

/* ===== Wishlist page ===== */
.wpl-wishlist-page {
	padding: 40px 0 80px;
	font-family: "Inter", sans-serif;
	color: var(--wpl-text);
}

.wpl-wl-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	flex-wrap: wrap;
	gap: 20px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--wpl-border);
	margin-bottom: 36px;
}
.wpl-wl-head h1 {
	margin: 0 0 6px;
	font-family: "Marcellus", serif;
	font-weight: 400;
	color: var(--wpl-heading);
	font-size: 42px;
	line-height: 1.15;
}
.wpl-wl-subtitle {
	margin: 0;
	color: var(--wpl-text);
	font-size: 15px;
}
.wpl-wl-user {
	font-size: 14px;
	color: var(--wpl-text);
	display: flex;
	align-items: center;
	gap: 14px;
}
.wpl-wl-user strong { color: var(--wpl-heading); font-weight: 500; }
.wpl-wl-logout {
	color: var(--wpl-primary);
	text-decoration: none;
	font-weight: 500;
	border-bottom: 1px solid transparent;
}
.wpl-wl-logout:hover { border-bottom-color: var(--wpl-primary); }

/* Empty state */
.wpl-wl-empty {
	text-align: center;
	padding: 80px 20px;
	max-width: 520px;
	margin: 0 auto;
}
.wpl-wl-empty-icon {
	fill: transparent;
	stroke: var(--wpl-primary);
	stroke-width: 1.5;
	opacity: 0.5;
	margin-bottom: 20px;
}
.wpl-wl-empty h2 {
	font-family: "Marcellus", serif;
	font-weight: 400;
	color: var(--wpl-heading);
	font-size: 28px;
	margin: 0 0 10px;
}
.wpl-wl-empty p {
	color: var(--wpl-text);
	font-size: 15px;
	margin: 0 0 24px;
}
.wpl-wl-empty .wpl-btn-primary {
	display: inline-block;
	text-decoration: none;
	padding: 14px 32px;
	background: var(--wpl-primary);
	color: #fff;
	font-size: 14px;
	font-family: inherit;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	border: 0;
	cursor: pointer;
	transition: opacity 0.2s;
}
.wpl-wl-empty .wpl-btn-primary:hover { opacity: 0.9; }

/* Login box (empty state) + banner (with items) */
.wpl-wl-login-box {
	margin-top: 40px;
	padding: 24px;
	background: var(--wpl-lightbg);
	text-align: center;
}
.wpl-wl-login-box p { margin: 0 0 14px; font-size: 14px; color: var(--wpl-text); }
.wpl-wl-login-banner {
	display: flex;
	gap: 14px;
	align-items: center;
	flex-wrap: wrap;
	padding: 14px 20px;
	background: var(--wpl-lightbg);
	margin-bottom: 28px;
	font-size: 14px;
}
.wpl-wl-login-banner > span { color: var(--wpl-text); }
.wpl-wishlist-login {
	display: flex;
	gap: 8px;
	max-width: 420px;
	flex: 1;
	min-width: 260px;
	margin: 0 auto;
}
.wpl-wishlist-login input {
	flex: 1;
	padding: 12px 14px;
	border: 1px solid var(--wpl-border);
	background: #fff;
	font-family: inherit;
	font-size: 14px;
}
.wpl-wishlist-login button {
	padding: 0 22px;
	background: var(--wpl-primary);
	color: #fff;
	border: 0;
	cursor: pointer;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	font-family: inherit;
}

/* Card extras specific to wishlist page */
.wpl-wishlist-card { position: relative; }
.wpl-wishlist-card .wpl-card-img { position: relative; }
.wpl-wishlist-card.is-disabled {
	pointer-events: none;
	opacity: 0.6;
	filter: grayscale(0.8);
}
.wpl-wishlist-card.is-disabled .wpl-wishlist-unsave { pointer-events: auto; }
.wpl-wishlist-unsave {
	position: absolute;
	top: 10px;
	right: 10px;
	width: 30px;
	height: 30px;
	background: rgba(255,255,255,0.95);
	color: #1a1a1a;
	border: 0;
	border-radius: 50%;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	z-index: 3;
	box-shadow: rgba(0,0,0,0.15) 0px 2px 6px 0px;
	transition: background 0.2s, color 0.2s;
}
.wpl-wishlist-unsave:hover {
	background: #D32F2F;
	color: #fff;
}
.wpl-wl-badge {
	position: absolute;
	top: 10px;
	left: 10px;
	padding: 4px 10px;
	font-size: 10px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #fff;
	z-index: 2;
}
.wpl-wl-badge-revoked { background: #D32F2F; }
.wpl-wl-badge-locked  { background: #131E65; }

/* Wishlist header icon (shortcode-based) */
.wpl-wishlist-icon {
	text-decoration: none;
	color: var(--wpl-primary);
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.wpl-wishlist-icon svg {
	width: 22px;
	height: 22px;
	fill: transparent;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.wpl-wishlist-icon .wpl-count {
	position: absolute;
	top: -4px;
	right: -10px;
	background: var(--wpl-primary);
	color: #fff;
	font-size: 11px;
	min-width: 18px;
	height: 18px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 4px;
}
.wpl-wishlist-icon .wpl-count[data-count="0"] { display: none; }
.wpl-wishlist-icon.is-floating {
	position: fixed;
	bottom: 30px;
	right: 30px;
	width: 56px;
	height: 56px;
	background: #fff;
	border-radius: 50%;
	box-shadow: rgba(99,99,99,0.3) 0px 4px 16px 0px;
	z-index: 9998;
}

/* ===== Lock overlay on a private property ===== */
body.wpl-locked { overflow: hidden; }

/* While locked, hide everything that could leak: action buttons, etc. */
body.wpl-locked .share-icons { display: none !important; }

/* Locked placeholder hero — no real photos in DOM */
.wpl-locked-hero { position: relative; }
.wpl-locked-hero .pp-slider-inner img {
	width: 100%;
	height: 480px;
	object-fit: cover;
	display: block;
}
.wpl-locked-hero .pp-arrow,
.wpl-locked-hero .pp-slider-bottom { display: none !important; }
.wpl-locked-shell { min-height: 60px; }
.wpl-locked-title { font-family: "Marcellus", serif; font-weight: 400; }

.wpl-lock-overlay {
	position: fixed;
	inset: 0;
	z-index: 99999;
	background: rgba(19, 30, 101, 0.45);
	backdrop-filter: blur(16px) saturate(1.1);
	-webkit-backdrop-filter: blur(16px) saturate(1.1);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	animation: wpl-lock-fade 0.35s ease-out;
}
@supports not (backdrop-filter: blur(1px)) {
	.wpl-lock-overlay { background: rgba(255, 255, 255, 0.92); }
}
@keyframes wpl-lock-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}

.wpl-lock-popup {
	max-width: 460px;
	width: 100%;
	background: #ffffff;
	padding: 48px 40px 36px;
	text-align: center;
	box-shadow: rgba(0, 0, 0, 0.25) 0px 20px 60px 0px;
	animation: wpl-lock-pop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes wpl-lock-pop {
	from { opacity: 0; transform: translateY(20px) scale(0.96); }
	to   { opacity: 1; transform: translateY(0)    scale(1); }
}

.wpl-lock-icon {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: var(--wpl-lightbg);
	color: var(--wpl-primary);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
}

.wpl-lock-popup h2 {
	font-family: "Marcellus", serif;
	font-weight: 400;
	color: var(--wpl-heading);
	font-size: 26px;
	margin: 0 0 10px;
	line-height: 1.2;
}
.wpl-lock-popup > p {
	color: var(--wpl-text);
	font-size: 14px;
	margin: 0 0 24px;
}
.wpl-lock-popup .wpl-password-form {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.wpl-lock-popup input[type="password"] {
	width: 100%;
	padding: 14px 16px;
	border: 1px solid var(--wpl-border);
	font-size: 15px;
	font-family: "Inter", sans-serif;
	text-align: center;
	letter-spacing: 2px;
	outline: none;
	transition: border-color 0.2s;
}
.wpl-lock-popup input[type="password"]:focus { border-color: var(--wpl-primary); }

.wpl-btn-primary {
	background: var(--wpl-primary);
	color: #fff;
	border: 0;
	padding: 14px 28px;
	cursor: pointer;
	font-size: 13px;
	font-family: "Inter", sans-serif;
	text-transform: uppercase;
	letter-spacing: 2px;
	transition: opacity 0.2s;
}
.wpl-btn-primary:hover { opacity: 0.88; }

.wpl-error-msg {
	color: #D32F2F;
	font-size: 13px;
	min-height: 18px;
	margin: 0;
}

.wpl-lock-hint {
	margin: 22px 0 0 !important;
	padding-top: 20px;
	border-top: 1px solid var(--wpl-border);
	color: #888 !important;
	font-size: 12px !important;
}

@media (max-width: 500px) {
	.wpl-lock-popup { padding: 36px 24px 28px; }
	.wpl-lock-popup h2 { font-size: 22px; }
}

/* ===== Modal ===== */
.wpl-modal { position: fixed; inset: 0; background: rgba(0,0,0,0.55); display: flex; align-items: center; justify-content: center; z-index: 100000; }
.wpl-modal[hidden] { display: none; }
.wpl-modal-body { background: #fff; padding: 30px; max-width: 460px; width: 90%; position: relative; }
.wpl-modal-close { position: absolute; top: 8px; right: 12px; background: transparent; border: 0; font-size: 24px; cursor: pointer; }
.wpl-email-form label { display: block; margin-bottom: 12px; font-size: 13px; color: var(--wpl-text); }
.wpl-email-form input, .wpl-email-form textarea { width: 100%; padding: 10px; border: 1px solid var(--wpl-border); font-family: inherit; }
.wpl-email-status { min-height: 18px; font-size: 13px; margin-top: 8px; }
.wpl-share-links { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 10px; }
.wpl-share-links a, .wpl-share-links button { display: block; padding: 10px; text-align: center; border: 1px solid var(--wpl-border); color: var(--wpl-text); text-decoration: none; background: #fff; cursor: pointer; font-family: inherit; }
.wpl-share-links a:hover, .wpl-share-links button:hover { background: var(--wpl-primary); color: #fff; border-color: var(--wpl-primary); }

/* ===== Site header override on property pages ===== */
body.single-property .elementor-location-header,
body.post-type-archive-property .elementor-location-header,
body.single-property .elementor-location-header .e-con,
body.post-type-archive-property .elementor-location-header .e-con,
body.single-property #myHeader,
body.post-type-archive-property #myHeader {
	background-color: #000000 !important;
}
body.single-property .elementor-location-header a,
body.post-type-archive-property .elementor-location-header a,
body.single-property .elementor-location-header h5,
body.post-type-archive-property .elementor-location-header h5 {
	color: #ffffff !important;
}

/* ===== Responsive ===== */
@media (max-width: 1500px) {
	.pp-similar .slick-slider { max-width: 90%; margin: 40px auto 0; }
}
@media (max-width: 1024px) {
	.pp-content { flex-direction: column; }
	.pp-details-features { flex-direction: column; }
	.pp-slider-inner img { height: 420px; }
	.pp-details-features::after { display: none; }
	.pp-details { border-right: unset; }
	.wpl-grid.cols-3, .wpl-grid.cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
	.pp-slider-inner img { height: 280px; }
	.pp-details-grid div { width: 100%; }
	#wpl-single-map, .pp-map iframe { height: 200px; }
	.heading-container { flex-direction: column; }
	.heading-container h1, .pp-similar h3 { font-size: 30px; line-height: 40px; }
	.pp-slick .ctnt h4 { font-size: 20px; line-height: 30px; }
	.wpl-filter .form-row p, .wpl-filter .bottom-row p { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
	.wpl-grid.cols-2, .wpl-grid.cols-3, .wpl-grid.cols-4 { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
	.pp-slider-inner img { height: 220px; }
}

/* ======================================================================
   Compare — floating tray, page, table, toast
   ====================================================================== */
.wpl-compare-tray {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 99990;
	background: #fff;
	border-top: 3px solid var(--wpl-primary);
	box-shadow: rgba(0, 0, 0, 0.18) 0px -8px 24px;
	transform: translateY(100%);
	opacity: 0;
	transition: transform 0.32s ease, opacity 0.32s ease;
	pointer-events: none;
}
.wpl-compare-tray.is-visible {
	transform: translateY(0);
	opacity: 1;
	pointer-events: auto;
}
.wpl-compare-tray-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 14px 20px;
	display: flex;
	gap: 22px;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
}
.wpl-compare-tray-thumbs { display: flex; gap: 10px; align-items: center; }
.wpl-compare-slot {
	width: 64px;
	height: 64px;
	background: var(--wpl-lightbg);
	border: 1px dashed var(--wpl-border);
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #aaa;
	font-size: 26px;
	font-weight: 300;
	font-family: 'Inter', sans-serif;
	overflow: hidden;
	text-decoration: none;
	line-height: 1;
}
.wpl-compare-slot.is-filled { border-style: solid; border-color: var(--wpl-primary); background: #fff; }
a.wpl-compare-slot-empty { cursor: pointer; transition: background 0.18s, color 0.18s, border-color 0.18s, transform 0.15s; }
a.wpl-compare-slot-empty::before { content: '+'; }
a.wpl-compare-slot-empty:hover {
	background: var(--wpl-primary);
	color: #fff;
	border-color: var(--wpl-primary);
	border-style: solid;
	transform: scale(1.05);
}
.wpl-compare-slot img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wpl-compare-slot-remove {
	position: absolute;
	top: -6px;
	right: -6px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--wpl-primary);
	color: #fff;
	border: 0;
	cursor: pointer;
	font-size: 14px;
	line-height: 1;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.wpl-compare-tray-cta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.wpl-compare-tray-count { color: var(--wpl-text); font-size: 13px; }
.wpl-compare-go { padding: 12px 22px; font-size: 13px; }
.wpl-compare-tray-browse {
	color: var(--wpl-primary);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	border: 1px solid var(--wpl-primary);
	padding: 11px 18px;
	transition: background 0.2s, color 0.2s;
}
.wpl-compare-tray-browse:hover {
	background: var(--wpl-primary);
	color: #fff;
}
.wpl-compare-tray-clear {
	background: transparent;
	border: 0;
	color: #888;
	cursor: pointer;
	font-size: 13px;
	text-decoration: underline;
	padding: 0;
}
.wpl-compare-tray-clear:hover { color: var(--wpl-primary); }

/* Compare toast (status feedback for blocked/full/added) — sits above the tray */
.wpl-compare-toast {
	position: fixed;
	left: 50%;
	bottom: 130px;
	transform: translate(-50%, 12px);
	background: var(--wpl-primary);
	color: #fff;
	padding: 14px 26px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.4px;
	box-shadow: rgba(19, 30, 101, 0.45) 0px 14px 36px;
	z-index: 100000;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.28s ease, transform 0.28s ease;
}
.wpl-compare-toast.is-visible {
	opacity: 1;
	transform: translate(-50%, 0);
}

/* Compare page */
.wpl-compare-page { padding: 60px 20px 100px; max-width: 1200px; margin: 0 auto; }
.wpl-compare-head { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 28px; }
.wpl-compare-head h1 { font-family: 'Marcellus', serif; font-weight: 400; color: var(--wpl-heading); font-size: 36px; margin: 0; }
.wpl-compare-subtitle { color: #888; margin: 6px 0 0; font-size: 13px; }
.wpl-compare-clear.button { background: transparent; border: 1px solid var(--wpl-primary); color: var(--wpl-primary); padding: 10px 18px; cursor: pointer; }

.wpl-compare-empty { text-align: center; padding: 80px 20px; background: var(--wpl-lightbg); }
.wpl-compare-empty svg { color: var(--wpl-primary); opacity: 0.45; }
.wpl-compare-empty h2 { font-family: 'Marcellus', serif; color: var(--wpl-heading); font-weight: 400; font-size: 26px; margin: 18px 0 8px; }
.wpl-compare-empty p { color: #888; margin: 0 0 22px; }

.wpl-compare-table-wrap { overflow-x: auto; }
.wpl-compare-table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	min-width: 720px;
}
.wpl-compare-table th,
.wpl-compare-table td {
	padding: 14px 16px;
	border-bottom: 1px solid var(--wpl-border);
	vertical-align: top;
	text-align: left;
}
.wpl-compare-rowlabel {
	width: 160px;
	background: var(--wpl-lightbg);
	color: var(--wpl-primary);
	font-family: 'Marcellus', serif;
	font-weight: 400;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 1px;
}
.wpl-compare-table thead th { padding: 22px 16px; }
.wpl-compare-col { position: relative; }
.wpl-compare-thumb {
	display: block;
	margin-bottom: 12px;
	width: 100%;
	height: 200px;
	overflow: hidden;
	background: var(--wpl-lightbg);
	position: relative;
}
.wpl-compare-thumb img { width: 100%; height: 200px; object-fit: cover; display: block; }
.wpl-compare-thumb-empty { display: block; }

/* Per-property image slider in the compare table */
.wpl-compare-slider { position: relative; }
.wpl-compare-slider .wpl-compare-slide,
.wpl-compare-slider .slick-slide,
.wpl-compare-slider .slick-slide > div { line-height: 0; }
.wpl-compare-slider img { width: 100%; height: 200px; object-fit: cover; display: block; }
.wpl-compare-slider .slick-prev,
.wpl-compare-slider .slick-next {
	width: 32px;
	height: 32px;
	background: rgba(255, 255, 255, 0.92) !important;
	border: 0;
	border-radius: 50%;
	z-index: 4;
	font-size: 0;
	color: transparent;
	box-shadow: rgba(0,0,0,0.18) 0px 2px 8px;
	transition: background 0.2s;
}
.wpl-compare-slider .slick-prev:hover,
.wpl-compare-slider .slick-next:hover { background: var(--wpl-primary) !important; }
.wpl-compare-slider .slick-prev { left: 8px; }
.wpl-compare-slider .slick-next { right: 8px; }
.wpl-compare-slider .slick-prev::before,
.wpl-compare-slider .slick-next::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 8px;
	height: 8px;
	border-top: 2px solid var(--wpl-primary);
	border-right: 2px solid var(--wpl-primary);
	transition: border-color 0.2s;
	opacity: 1;
	font-size: 0;
}
.wpl-compare-slider .slick-prev::before { transform: translate(-30%, -50%) rotate(-135deg); }
.wpl-compare-slider .slick-next::before { transform: translate(-70%, -50%) rotate(45deg); }
.wpl-compare-slider .slick-prev:hover::before,
.wpl-compare-slider .slick-next:hover::before { border-color: #fff; }
.wpl-compare-slider .slick-dots {
	position: absolute;
	bottom: 8px;
	left: 0;
	right: 0;
	margin: 0;
	padding: 0;
	display: flex;
	justify-content: center;
	gap: 6px;
	list-style: none;
}
.wpl-compare-slider .slick-dots li { width: auto; height: auto; margin: 0; }
.wpl-compare-slider .slick-dots li button {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.55);
	font-size: 0;
	color: transparent;
	cursor: pointer;
	transition: background 0.2s;
}
.wpl-compare-slider .slick-dots li button::before { display: none; }
.wpl-compare-slider .slick-dots li.slick-active button { background: #fff; }
.wpl-compare-title {
	display: block;
	font-family: 'Marcellus', serif;
	color: var(--wpl-heading);
	font-size: 16px;
	text-decoration: none;
}
.wpl-compare-remove {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.95);
	color: var(--wpl-primary);
	border: 1px solid var(--wpl-border);
	cursor: pointer;
	font-size: 16px;
	line-height: 1;
	padding: 0;
	z-index: 2;
}
.wpl-compare-remove:hover { background: var(--wpl-primary); color: #fff; border-color: var(--wpl-primary); }
.wpl-compare-dash { color: #ccc; }

/* Make sure the tray doesn't cover the bottom of long pages */
body.has-compare-tray { padding-bottom: 100px; }

/* Mobile cards view — hidden by default, shown in place of the table on phones */
.wpl-compare-cards { display: none; }
.wpl-compare-card {
	background: #fff;
	border: 1px solid var(--wpl-border);
	padding: 16px;
	margin-bottom: 16px;
	position: relative;
}
.wpl-compare-card .wpl-compare-remove {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 28px;
	height: 28px;
}
.wpl-compare-card .wpl-compare-thumb,
.wpl-compare-card .wpl-compare-slider,
.wpl-compare-card .wpl-compare-slider img,
.wpl-compare-card .wpl-compare-thumb img { height: 220px; }
.wpl-compare-card-title {
	display: block;
	font-family: 'Marcellus', serif;
	color: var(--wpl-heading);
	font-size: 20px;
	text-decoration: none;
	margin: 14px 0 12px;
	line-height: 1.25;
}
.wpl-compare-card-fields {
	margin: 0;
	padding: 12px 0 0;
	border-top: 1px solid var(--wpl-border);
	display: grid;
	grid-template-columns: 110px 1fr;
	row-gap: 8px;
	column-gap: 12px;
	font-size: 13px;
}
.wpl-compare-card-fields dt {
	color: var(--wpl-primary);
	font-family: 'Marcellus', serif;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	font-weight: 400;
	align-self: center;
}
.wpl-compare-card-fields dd { margin: 0; color: var(--wpl-text); align-self: center; }
.wpl-compare-card-fields dd strong { color: var(--wpl-primary); font-weight: 700; }

/* ======================================================================
   Mobile responsive — single source of polish for every plugin block
   ====================================================================== */

/* Tablets (≤ 1024px) */
@media (max-width: 1024px) {
	/* Single property page */
	.pp-content { display: block; }
	.pp-left, .pp-right { width: 100%; padding: 0; }
	.pp-right { margin-top: 24px; }
	.pp-details-features { display: block; }
	.pp-details, .pp-features { width: 100%; margin-bottom: 24px; }
	.heading-container { flex-direction: column; align-items: flex-start; gap: 16px; }
	.heading-container .right-info { text-align: left; }

	/* Filter widget — wrap into two rows */
	.wpl-filter .form-row p { flex-wrap: wrap; gap: 8px; }
	.wpl-filter select, .wpl-filter input { min-width: calc(50% - 4px); flex: 1 1 calc(50% - 4px); }

	/* Compare table — narrower thumbs */
	.wpl-compare-thumb,
	.wpl-compare-thumb img,
	.wpl-compare-slider img { height: 160px; }
	.wpl-compare-table thead th { padding: 16px 10px; }
	.wpl-compare-table th, .wpl-compare-table td { padding: 12px 10px; font-size: 13px; }
}

/* Phones landscape (≤ 768px) */
@media (max-width: 768px) {
	.pp-container { padding: 0 16px; }

	/* Action buttons row — center, slightly smaller */
	.share-icons { gap: 4px; flex-wrap: wrap; justify-content: center; }
	.wpl-action-btn { width: 38px; height: 38px; }
	.wpl-action-btn img, .wpl-action-btn svg { width: 18px; height: 18px; }
	.wpl-action-menu { right: auto; left: 0; min-width: 180px; }
	.wpl-action-menu::before { right: auto; left: 16px; }

	/* Heading */
	.heading-container h1 { font-size: 28px; line-height: 1.2; }
	.heading-container .right-info span { font-size: 22px; }

	/* Slider */
	.pp-slider-inner img { height: 280px; }
	.pp-arrow { width: 36px; height: 36px; font-size: 18px; }

	/* Filter widget — full width fields */
	.wpl-filter { padding: 14px; }
	.wpl-filter select, .wpl-filter input { min-width: 100%; flex: 1 1 100%; }
	.wpl-filter-submit { width: 100%; }
	.wpl-filter-msg { white-space: normal; max-width: 90%; text-align: center; }

	/* Listings grid — single column with smaller cards */
	.wpl-grid.cols-2, .wpl-grid.cols-3, .wpl-grid.cols-4 { grid-template-columns: 1fr; gap: 16px; }
	.wpl-card-img { height: 220px; }

	/* Compare — swap to stacked cards layout (table hidden) */
	.wpl-compare-page { padding: 30px 16px 100px; }
	.wpl-compare-head { flex-direction: column; align-items: flex-start; gap: 12px; }
	.wpl-compare-head h1 { font-size: 26px; }
	.wpl-compare-table-wrap { display: none; }
	.wpl-compare-cards { display: block; }

	/* Compare tray — stack content */
	.wpl-compare-tray-inner { padding: 12px 14px; gap: 12px; flex-direction: column; align-items: stretch; }
	.wpl-compare-tray-thumbs { justify-content: center; flex-wrap: wrap; }
	.wpl-compare-slot { width: 56px; height: 56px; }
	.wpl-compare-tray-cta { justify-content: center; }
	.wpl-compare-go { padding: 10px 18px; }
	.wpl-compare-tray-browse { padding: 9px 14px; font-size: 12px; }

	/* Wishlist page */
	.wpl-wishlist-page { padding: 24px 16px; }
	.wpl-wl-head { flex-direction: column; align-items: flex-start; gap: 10px; }

	/* Lock overlay popup — smaller padding on phone */
	.wpl-lock-popup { padding: 32px 22px 24px; }

	/* Modal */
	.wpl-modal-body { padding: 20px; max-width: 92%; }

	/* Pagination + load more */
	.wpl-pagination a, .wpl-pagination span { padding: 6px 10px; font-size: 12px; }
	.wpl-load-more { padding: 12px 22px; font-size: 12px; letter-spacing: 1.5px; }

	/* Wishlist toast moves to bottom-center */
	.wpl-compare-toast { width: 92%; max-width: 360px; text-align: center; bottom: 220px; }
}

/* Phones portrait (≤ 480px) */
@media (max-width: 480px) {
	.pp-slider-inner img { height: 220px; }
	.heading-container h1 { font-size: 24px; }
	.heading-container .right-info span { font-size: 20px; }
	.wpl-card-img { height: 200px; }
	.wpl-compare-tray { border-top-width: 2px; }
	.wpl-compare-slot { width: 48px; height: 48px; }
	.wpl-lock-popup h2 { font-size: 20px; }
	/* Tighter compare cards */
	.wpl-compare-card { padding: 12px; }
	.wpl-compare-card .wpl-compare-thumb,
	.wpl-compare-card .wpl-compare-slider,
	.wpl-compare-card .wpl-compare-slider img,
	.wpl-compare-card .wpl-compare-thumb img { height: 180px; }
	.wpl-compare-card-title { font-size: 18px; margin: 12px 0 10px; }
	.wpl-compare-card-fields { grid-template-columns: 95px 1fr; row-gap: 7px; font-size: 12px; }
	.wpl-compare-card-fields dt { font-size: 11px; }
	.wpl-compare-slider .slick-prev,
	.wpl-compare-slider .slick-next { width: 26px; height: 26px; }
}
