:root {
	--pl-green: #145743;
	--pl-bg: #f0f0ef;
	--pl-text: #141414;
	--pl-muted: #4d4d4d;
	--pl-border: #d8d8d3;
	--pl-shadow: 0 26px 80px rgba(0, 0, 0, 0.25);
}

body.single-property {
	background: var(--pl-bg);
	color: var(--pl-text);
	overflow-x: hidden;
	overflow-x: clip;
}

body.single-property #page,
body.single-property .site,
body.single-property .site-main,
body.single-property .site-content {
	overflow-x: hidden;
	overflow-x: clip;
}

body.single-property.pl-media-open {
	overflow: hidden;
}

.pl-single {
	position: relative;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	background: var(--pl-bg);
	color: var(--pl-text);
	font-family: "Cormorant Garamond", "Times New Roman", serif;
	padding-bottom: 0;
}

.pl-single * {
	box-sizing: border-box;
}

.pl-hero {
	position: relative;
	height: 100vh;
	min-height: 620px;
	background: var(--pl-green);
	overflow: hidden;
}

.pl-hero-stage {
	position: relative;
	width: 100%;
	height: 100%;
}

.pl-hero-media-shell {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
	transform: none;
	border-radius: 0;
	overflow: hidden;
	box-shadow: none;
	transition: none;
}

.pl-single.is-intro-complete .pl-hero-media-shell {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transform: translate(0, 0);
	border-radius: 0;
	box-shadow: none;
}

.pl-hero-media {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pl-hero-media-placeholder {
	display: grid;
	place-items: center;
	background: linear-gradient(140deg, #1d6b53, #0f4736);
	color: #ffffff;
	font-size: clamp(1.1rem, 2.5vw, 1.5rem);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.pl-sticky-actions {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	height: 74px;
	background: #f7f7f5;
	border-top: 1px solid #ccccbf;
	border-bottom: 1px solid #ccccbf;
	display: grid;
	grid-template-columns: minmax(120px, 1fr) minmax(110px, 1fr) minmax(260px, 2fr) minmax(110px, 1fr) minmax(130px, 1fr);
	align-items: center;
	gap: 10px;
	padding: 0 clamp(14px, 2.2vw, 26px);
	z-index: 70;
	opacity: 0;
	transform: translateY(110%);
	pointer-events: none;
	transition: opacity 0.35s ease, transform 0.35s ease;
}

.pl-single.is-intro-complete .pl-sticky-actions {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

.pl-sticky-actions.is-hidden {
	opacity: 0;
	transform: translateY(110%);
	pointer-events: none;
}

.pl-single.is-intro-complete .pl-sticky-actions.is-hidden {
	opacity: 0;
	transform: translateY(110%);
	pointer-events: none;
}

.pl-action-link,
.pl-action-title {
	margin: 0;
	font-family: "Nunito Sans", "Segoe UI", sans-serif;
	font-size: 12px;
	letter-spacing: 0.11em;
	text-transform: uppercase;
	text-align: center;
	line-height: 1;
}

.pl-action-link {
	color: #1a1a1a !important;
	text-decoration: none !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	outline: none;
}

.pl-action-link:hover,
.pl-action-link:focus-visible {
	color: #1a1a1a !important;
	text-decoration: none !important;
	box-shadow: none !important;
	opacity: 0.72;
}

.pl-action-link:focus,
.pl-action-link:active {
	outline: none;
	border: 0 !important;
	box-shadow: none !important;
}

.pl-action-link-muted {
	color: #8f8f8f;
	cursor: default;
}

.pl-action-title {
	font-family: "Cormorant Garamond", "Times New Roman", serif;
	font-size: clamp(1.05rem, 1.9vw, 1.9rem);
	letter-spacing: 0;
	text-transform: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.pl-action-media {
	font: inherit;
}

.pl-media-slider {
	--pl-media-top: 0px;
	--pl-media-bottom: 74px;
	position: fixed;
	left: 0;
	right: 0;
	top: var(--pl-media-top);
	bottom: var(--pl-media-bottom);
	background: rgba(240, 240, 238, 0.97);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.32s ease;
	z-index: 64;
}

.pl-media-slider.is-open {
	opacity: 1;
	pointer-events: auto;
}

.pl-media-slider-shell {
	position: absolute;
	right: 0;
	top: clamp(12px, 2vw, 22px);
	bottom: clamp(12px, 2vw, 22px);
	width: min(42vw, 620px);
	max-width: 100%;
	display: grid;
	grid-template-columns: clamp(52px, 6.5vw, 92px) minmax(0, 1fr) clamp(52px, 6.5vw, 92px);
	align-items: center;
	transform: translate3d(108%, 0, 0);
	transition: transform 0.36s ease, width 0.46s cubic-bezier(0.34, 1, 0.66, 1), left 0.46s cubic-bezier(0.34, 1, 0.66, 1), right 0.46s cubic-bezier(0.34, 1, 0.66, 1);
}

.pl-media-slider.is-stage-1 .pl-media-slider-shell {
	transform: translate3d(0, 0, 0);
}

.pl-media-slider.is-stage-2 .pl-media-slider-shell {
	width: 100%;
	left: 0;
	right: 0;
}

.pl-media-nav {
	width: clamp(44px, 4.8vw, 66px);
	height: clamp(44px, 4.8vw, 66px);
	border: 0 !important;
	background: transparent !important;
	color: #121212;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	margin: 0 auto;
	padding: 0 !important;
	box-shadow: none !important;
	outline: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
}

.pl-media-nav:hover,
.pl-media-nav:focus,
.pl-media-nav:focus-visible,
.pl-media-nav:active {
	border: 0 !important;
	background: transparent !important;
	opacity: 0.75;
	outline: none !important;
	box-shadow: none !important;
}

.pl-media-nav img {
	display: block;
	width: clamp(15px, 1.7vw, 24px);
	height: clamp(15px, 1.7vw, 24px);
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.pl-media-viewport {
	position: relative;
	width: 100%;
	height: 100%;
	min-height: min(74vh, 760px);
	overflow: hidden;
}

.pl-media-slide {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	visibility: hidden;
	transform: translate3d(10px, 0, 0);
	transition: opacity 0.32s ease, transform 0.32s ease, visibility 0s linear 0.32s;
}

.pl-media-slide.is-active {
	opacity: 1;
	visibility: visible;
	transform: translate3d(0, 0, 0);
	transition-delay: 0s;
}

.pl-media-slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.pl-editorial,
.pl-location,
.pl-related {
	padding: clamp(40px, 6vw, 74px) clamp(16px, 4vw, 42px);
}

.pl-editorial {
	background: #f6f6f4;
}

.pl-editorial-inner {
	max-width: 980px;
	margin: 0 auto;
}

.pl-editorial-copy {
	max-width: 700px;
	margin: 0 auto 22px;
	font-size: clamp(1.08rem, 1.48vw, 1.32rem);
	line-height: 1.7;
	color: #1f1f1f;
}

.pl-editorial-copy p {
	margin: 0;
}

.pl-inline-figure {
	margin: 20px auto 0;
	max-width: 100%;
	border: 1px solid var(--pl-border);
	background: #ffffff;
	overflow: hidden;
}

.pl-inline-figure img {
	display: block;
	width: 100%;
	height: auto;
}

.pl-gallery-pin {
	position: relative;
	background: #ececeb;
}

.pl-gallery-sticky {
	position: sticky;
	top: 0;
	height: 100vh;
	display: flex;
	align-items: center;
	overflow: hidden;
}

.pl-gallery-track {
	display: flex;
	gap: clamp(14px, 1.6vw, 24px);
	padding: 0 clamp(12px, 1.8vw, 24px);
	will-change: transform;
	transform: translate3d(0, 0, 0);
}

.pl-gallery-frame {
	flex: 0 0 min(80vw, 1100px);
	width: min(80vw, 1100px);
	height: min(72vh, 760px);
	margin: 0;
	background: #d9d9d4;
	overflow: hidden;
	position: relative;
}

.pl-gallery-frame img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pl-gallery-frame figcaption {
	position: absolute;
	right: 14px;
	bottom: 14px;
	background: rgba(255, 255, 255, 0.85);
	padding: 6px 10px;
	font-family: "Nunito Sans", "Segoe UI", sans-serif;
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pl-section-heading {
	max-width: 1220px;
	margin: 0 auto 18px;
}

.pl-section-heading h2 {
	margin: 0;
	font-family: "Nunito Sans", "Segoe UI", sans-serif;
	font-size: 11px;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.pl-location {
	background: #f1f1ef;
	padding: clamp(44px, 5.6vw, 72px) 0;
}

.pl-location-shell {
	max-width: none;
	margin: 0;
	padding-left: clamp(76px, 5.2vw, 100px);
	padding-right: clamp(76px, 5.2vw, 100px);
}

.pl-location-grid {
	width: 100%;
	margin: 0;
	display: grid;
	grid-template-columns: minmax(340px, 36%) minmax(0, 64%);
	gap: clamp(24px, 2.5vw, 38px);
	align-items: start;
}

.pl-location-copy {
	max-width: 660px;
	font-size: clamp(0.95rem, 0.92vw, 1.05rem);
	line-height: 1.62;
	color: #202020;
	margin-left: 0;
	padding-left: 0;
}

.pl-location-copy p {
	margin: 0 0 12px;
}

.pl-location-heading {
	max-width: none;
	margin: 0 0 18px;
	padding: 0;
}

.pl-location-heading h2 {
	display: inline-flex;
	align-items: center;
	border: 0;
	padding: 0;
	font-family: "Nunito Sans", "Segoe UI", sans-serif;
	font-size: clamp(1.44rem, 1.8vw, 2.12rem) !important;
	letter-spacing: 0.12em;
	font-weight: 700;
	text-transform: uppercase;
	line-height: 1;
}

.pl-transport-list {
	list-style: none;
	margin: 8px 0 0;
	padding: 0;
	display: grid;
	gap: 10px;
}

.pl-transport-list li {
	display: grid;
	grid-template-columns: 26px minmax(0, 1fr);
	align-items: center;
	gap: 10px;
}

.pl-transport-icon {
	width: 26px;
	height: 26px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.pl-transport-icon svg {
	width: 20px;
	height: 20px;
	display: block;
}

.pl-transport-icon circle,
.pl-transport-icon path {
	stroke: #121212;
	fill: none;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.pl-transport-text {
	display: block;
}

.pl-tenure-note,
.pl-status-note {
	font-family: "Nunito Sans", "Segoe UI", sans-serif;
	font-size: 12px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.pl-map-wrap {
	--pl-map-clip: 100%;
	--pl-map-shift: 36px;
	--pl-map-opacity: 0.2;
	min-height: clamp(430px, 58vh, 740px);
	border: 0;
	background: #e6e6e2;
	position: relative;
	overflow: hidden;
	clip-path: inset(var(--pl-map-clip) 0 0 0);
	transform: translateY(var(--pl-map-shift));
	opacity: var(--pl-map-opacity);
	will-change: clip-path, opacity, transform;
	transition: clip-path 0.08s linear, transform 0.08s linear, opacity 0.08s linear;
}

.pl-map-wrap.is-map-visible {
	--pl-map-clip: 0%;
	--pl-map-shift: 0px;
	--pl-map-opacity: 1;
}

.pl-osm-map {
	width: 100%;
	height: 100%;
	min-height: clamp(430px, 58vh, 740px);
}

.pl-osm-map.is-map-unavailable {
	display: none;
}

.pl-map-wrap .leaflet-container {
	width: 100%;
	height: 100%;
	background: #e6e6e2;
	outline: 0;
}

.pl-map-wrap .leaflet-control-container,
.pl-map-wrap .leaflet-marker-pane,
.pl-map-wrap .leaflet-overlay-pane {
	opacity: 0;
	transition: opacity 0.22s ease;
}

.pl-map-wrap.is-map-visible .leaflet-control-container,
.pl-map-wrap.is-map-visible .leaflet-marker-pane,
.pl-map-wrap.is-map-visible .leaflet-overlay-pane {
	opacity: 1;
}

.pl-map-wrap .leaflet-control-attribution {
	font-family: "Nunito Sans", "Segoe UI", sans-serif;
	font-size: 10px;
}

.pl-map-fallback {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 20px;
	font-family: "Nunito Sans", "Segoe UI", sans-serif;
	font-size: 14px;
	color: var(--pl-muted);
	background: #e4e4df;
}

.pl-map-fallback[hidden] {
	display: none;
}

.pl-related {
	--pl-related-column-gap: 35px;
	--pl-related-image-height: 346px;
	--pl-related-info-gap: 10px;
	--pl-related-text-size: 14px;
	--pl-related-title-size: 15px;
	--pl-related-location-size: 15px;
	background: #ececea;
	padding: clamp(52px, 5.4vw, 74px) 0 clamp(26px, 3vw, 38px);
}

.pl-related .pl-section-heading {
	width: min(100%, calc(100vw - 10%));
	max-width: none;
	margin: 0 auto clamp(20px, 2.2vw, 30px);
	text-align: center;
}

.pl-related .pl-section-heading h2 {
	font-family: "Nunito Sans", "Segoe UI", sans-serif;
	font-size: clamp(11px, 0.9vw, 14px);
	letter-spacing: 0.17em;
	font-weight: 500;
}

.pl-related-grid {
	width: min(100%, calc(100vw - 10%));
	max-width: none;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--pl-related-column-gap);
}

.pl-related-card {
	background: #f5f5f2;
	border: 1px solid var(--pl-border);
}

.pl-related-card a {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
	color: inherit;
}

.pl-related-thumb {
	height: var(--pl-related-image-height);
	aspect-ratio: auto;
	background: #ececeb;
	overflow: hidden;
}

.pl-related-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pl-related-content {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	column-gap: clamp(8px, 0.75vw, 14px);
	align-items: start;
	padding: var(--pl-related-info-gap) 10px 10px;
	min-height: 0;
}

.pl-related-left h3 {
	margin: 0;
	font-family: "Roboto", "Segoe UI", sans-serif;
	font-size: var(--pl-related-title-size);
	line-height: 1;
	font-weight: 700;
	text-transform: capitalize;
}

.pl-related-location,
.pl-related-status,
.pl-related-price,
.pl-related-tenure {
	margin: 0;
	font-family: "Roboto", "Segoe UI", sans-serif;
	font-size: var(--pl-related-text-size);
	line-height: 1;
	font-weight: 400;
	color: #0f0f0f;
}

.pl-related-location,
.pl-related-tenure {
	margin-top: 4px;
	font-size: var(--pl-related-location-size);
	line-height: 1;
}

.pl-related-center {
	text-align: center;
	white-space: nowrap;
	align-self: start;
}

.pl-related-right {
	text-align: right;
	white-space: nowrap;
	align-self: start;
}

.pl-empty-note {
	font-family: "Nunito Sans", "Segoe UI", sans-serif;
	font-size: 14px;
	color: var(--pl-muted);
}

.js-reveal {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.75s ease, transform 0.75s ease;
}

.js-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

body.single-property footer.elementor-location-footer {
	margin-top: 0 !important;
}

body.single-property footer.elementor-location-footer .elementor-element.footer {
	margin-top: 0 !important;
	padding-top: clamp(42px, 5vw, 72px) !important;
	padding-bottom: 0 !important;
}

body.single-property footer.elementor-location-footer.pl-footer-reveal-ready {
	opacity: 0;
	transform: translateY(44px);
	transition: opacity 0.62s ease, transform 0.62s ease;
}

body.single-property footer.elementor-location-footer.pl-footer-reveal-ready.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@media (max-width: 1100px) {
	.pl-sticky-actions {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		height: auto;
		padding: 12px 14px;
		gap: 12px;
	}

	.pl-action-title {
		grid-column: 1 / -1;
		order: -1;
	}

	.pl-single {
		padding-bottom: 0;
	}

	.pl-gallery-frame {
		flex-basis: min(88vw, 900px);
		width: min(88vw, 900px);
	}

	.pl-media-slider-shell {
		width: min(56vw, 680px);
	}

	.pl-location-shell {
		padding-left: clamp(22px, 4.3vw, 44px);
		padding-right: clamp(22px, 4.3vw, 44px);
	}

	.pl-related-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pl-related-content {
		grid-template-columns: minmax(0, 1fr) auto;
		row-gap: 7px;
	}

	.pl-related-center {
		display: none;
	}
}

@media (max-width: 767px) {
	.pl-hero {
		min-height: 480px;
	}

	.pl-hero-media-shell {
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		transform: none;
	}

	.pl-media-slider {
		--pl-media-bottom: 104px;
	}

	.pl-media-slider-shell {
		top: 8px;
		bottom: 8px;
		width: 100%;
		grid-template-columns: 48px minmax(0, 1fr) 48px;
	}

	.pl-media-nav {
		width: 40px;
		height: 40px;
		font-size: 1.8rem;
	}

	.pl-editorial-copy {
		font-size: 1.02rem;
	}

	.pl-location-grid,
	.pl-related-grid {
		grid-template-columns: 1fr;
	}

	.pl-location {
		padding: clamp(30px, 8vw, 42px) 0;
	}

	.pl-location-shell {
		padding-left: clamp(16px, 4vw, 24px);
		padding-right: clamp(16px, 4vw, 24px);
	}

	.pl-location-heading h2 {
		font-size: clamp(1.14rem, 6.2vw, 1.4rem) !important;
		letter-spacing: 0.1em;
	}

	.pl-location-copy {
		font-size: 0.98rem;
	}

	.pl-related {
		padding: clamp(34px, 7vw, 44px) 0 clamp(20px, 4vw, 30px);
	}

	.pl-related .pl-section-heading,
	.pl-related-grid {
		width: min(100%, calc(100vw - 30px));
	}

	.pl-related-content {
		grid-template-columns: 1fr;
		row-gap: 8px;
	}

	.pl-related-right {
		text-align: left;
	}

	.pl-related-left h3 {
		font-size: 15px;
	}

	.pl-related-location,
	.pl-related-tenure,
	.pl-related-price {
		font-size: 14px;
	}

	.pl-gallery-frame {
		height: min(58vh, 520px);
	}
}
