/* =========================================================
   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;
}

/* Property feature list (key / value items) — minimal, flexible wrap.
   Items flow 2-per-row when there's room and collapse to 1 when narrow. */
.pp-feature-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex !important;
	flex-wrap: wrap;
	justify-content: space-between;
	column-gap: 32px;
}
.pp-feature-item {
	flex: 1 1 230px;
	max-width: fit-content;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 3px 0;
	font-family: "Inter", Sans-serif;
	font-size: 12px !important;
}
.pp-features .pp-feature-list .pp-feature-label {
	font-size: 12px !important;
	color: #5E5E5E;
	line-height: 1.3;
}
.pp-features .pp-feature-list .pp-feature-value {
	font-size: 12px !important;
	font-weight: 600;
	color: #131E65;
	text-align: right;
	white-space: nowrap;
}
.pp-features .pp-feature-list .pp-feature-check {
	color: #131E65;
	font-size: 12px !important;
	font-weight: 700;
	line-height: 1;
}

/* ===== Tabbed property showcase ([wpl_property_tabs]) ===== */
.wpl-ptabs { margin: 0 0 24px; font-family: "Inter", Sans-serif; }
.wpl-ptabs-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 24px;
}
.wpl-ptab {
	border: 1px solid var(--wpl-border, #e2e2e2);
	background: #fff;
	color: var(--wpl-text, #333);
	padding: 9px 22px;
	border-radius: 6px;
	font-size: 14px;
	font-family: inherit;
	line-height: 1.2;
	cursor: pointer;
	transition: background .18s, color .18s, border-color .18s;
}
.wpl-ptab:hover { border-color: var(--wpl-primary, #131E65); color: var(--wpl-primary, #131E65); }
.wpl-ptab.is-active {
	background: var(--wpl-primary, #131E65);
	border-color: var(--wpl-primary, #131E65);
	color: #fff;
}
.wpl-ptab-panel { display: none; }
.wpl-ptab-panel.is-active { display: block; }
.wpl-ptab-loading {
	padding: 48px 0;
	text-align: center;
	color: #999;
}
.wpl-ptab-empty { text-align: center; padding: 44px 16px; }
.wpl-ptab-empty p { color: #888; margin: 0 0 18px; font-size: 16px; }
.wpl-ptab-cta { text-align: center; margin-top: 26px; }

/* 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. */
/* ===== Private (locked) property card in listings ===== */
.wpl-card-private .wpl-card-img {
	position: relative;
	background: var(--wpl-lightbg, #f3f4f8);
	overflow: hidden;
}
/* Real photo stays full opacity, but a frosted backdrop-blur sits over it. */
.wpl-card-private-blur {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	background: rgba(255, 255, 255, 0.5);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
/* Prominent overlay image (lock logo), centered on top of the blur. */
.wpl-card-img img.wpl-card-private-overlay {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	opacity: 1;
	z-index: 2;
}
/* Frosted-glass round lock icon, top-right corner. */
.wpl-card-lock-badge {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgb(20, 52, 121);
	border: 1px solid rgba(255, 255, 255, 0.55);
	color: #fff;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
	z-index: 3;
}
.wpl-card-lock-badge svg { width: 16px; height: 16px; display: block; }

.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 .wpl-locked-img,
.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.18);
	backdrop-filter: blur(3px) saturate(1.05);
	-webkit-backdrop-filter: blur(3px) saturate(1.05);
	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(19, 30, 101, 0.18); }
}
@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;
	/* Fixed layout = every property column gets an equal, deterministic width
	   instead of being sized by each image's intrinsic width (which made the
	   columns uneven and the Slick slides freeze at the wrong px width). */
	table-layout: fixed;
}
.wpl-compare-table th,
.wpl-compare-table td {
	padding: 14px 16px;
	border-bottom: 1px solid var(--wpl-border);
	vertical-align: top;
	text-align: left;
	/* With table-layout:fixed, wrap long unbroken values (e.g. reference codes)
	   instead of letting them blow the column width out. */
	overflow-wrap: anywhere;
	word-break: break-word;
}
.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; }
}
