/* ==========================================================================
   Design Tokens And Base Typography
   ========================================================================== */

/*
 * Stylesheet policy:
 * - Let Elementor own section spacing, typography, colours and simple layout controls wherever possible.
 * - Keep this file for shared tokens, dynamic states, shortcode/plugin markup, loop-card mechanics and
 *   responsive behaviours that Elementor cannot model consistently across reusable components.
 * - Avoid generated Elementor IDs/classes; target semantic classes added in Elementor instead.
 */

:root {
	--owl-ink: #373737;
	--owl-ink-rgb: 55, 55, 55;
	--owl-charcoal: #373737;
	--owl-gold: #c1a01e;
	/* Brand gold darkened to the same hue and saturation. #c1a01e on white is
	   only 2.53:1, so it cannot be used for text or icons; this is 4.97:1. */
	--owl-gold-deep: #846e15;
	--owl-white: #ffffff;
	--owl-cream: #faf8f0;
	--owl-line: #cfcfcf;
	/* The same grey the site plan gives a sold plot, so a status reads the same
	   whichever way a buyer meets it. Mirrors owl_homes_get_site_plan_sold_colour(). */
	--owl-sold: #b0b0b0;
	--owl-shadow: 0 28px 65px rgba(18, 34, 45, 0.22);
	--owl-shadow-soft: 0 16px 30px rgba(18, 34, 45, 0.14);
	--owl-radius-pill: 999px;
	--owl-container-width: 1250px;
	--owl-container-gutter: 20px;
	--owl-text-font: "nexa-text", sans-serif;
	--owl-display-font: "ogg-text", sans-serif;
}

html {
	scroll-behavior: smooth;
}

body {
	font-family: var(--owl-text-font);
	color: var(--owl-ink);
	background: var(--owl-white);
}

h2,
h3,
h4,
h5,
h6 {
	font-family: var(--owl-display-font);
	color: var(--owl-ink);
	line-height: 1.2;
	letter-spacing: 0.01em;
}

@media (max-width: 1024px) {
	h2,
	h3,
	h4,
	h5,
	h6 {
		letter-spacing: 0;
	}
}

.elementor-heading-title {
	line-height: 1.2;
}

p,
li,
a,
button,
input,
select,
textarea {
	font-family: var(--owl-text-font);
}

a {
	color: inherit;
}

/* ==========================================================================
   Shared Elementor Button Normalisation
   ========================================================================== */

:is(
	.owl-button--primary,
	.owl-homes-intro-button,
	.owl-homes-news-updates-button,
	.owl-homes-developments-cta,
	.owl-homes-browse-region-button,
	.owl-homes-customer-centre-button,
	.owl-homes-offer-feature-button,
	.owl-development-single-button,
	.owl-plot-single-image-cta__button,
	.owl-plot-single-brochure-download__button,
	.owl-footer-call-to-action__button
) {
	--owl-button-icon-gap: 15px;
	--owl-button-icon-width: 13px;
	--owl-button-icon-height: 20px;
	--owl-button-min-height: 45px;
	--owl-button-padding: 10px 20px;
}

:is(
	.owl-button--primary,
	.owl-homes-intro-button,
	.owl-homes-news-updates-button,
	.owl-homes-developments-cta,
	.owl-homes-browse-region-button,
	.owl-homes-customer-centre-button,
	.owl-homes-offer-feature-button,
	.owl-development-single-button,
	.owl-plot-single-image-cta__button,
	.owl-plot-single-brochure-download__button,
	.owl-footer-call-to-action__button
) .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--owl-button-min-height);
	padding: var(--owl-button-padding);
	box-sizing: border-box;
	box-shadow: none;
}

.owl-homes-news-updates-button .elementor-button {
	max-width: none;
}

:is(
	.owl-button--primary,
	.owl-homes-intro-button,
	.owl-homes-news-updates-button,
	.owl-homes-developments-cta,
	.owl-homes-browse-region-button,
	.owl-homes-customer-centre-button,
	.owl-homes-offer-feature-button,
	.owl-development-single-button,
	.owl-plot-single-image-cta__button,
	.owl-plot-single-brochure-download__button,
	.owl-footer-call-to-action__button
) .elementor-button .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--owl-button-icon-gap);
}

:is(
	.owl-button--primary,
	.owl-homes-intro-button,
	.owl-homes-news-updates-button,
	.owl-homes-developments-cta,
	.owl-homes-browse-region-button,
	.owl-homes-customer-centre-button,
	.owl-homes-offer-feature-button,
	.owl-development-single-button,
	.owl-plot-single-image-cta__button,
	.owl-plot-single-brochure-download__button,
	.owl-footer-call-to-action__button
) .elementor-button .elementor-button-text {
	display: block;
	white-space: nowrap;
	line-height: 1;
}

:is(
	.owl-button--primary,
	.owl-homes-intro-button,
	.owl-homes-news-updates-button,
	.owl-homes-developments-cta,
	.owl-homes-browse-region-button,
	.owl-homes-customer-centre-button,
	.owl-homes-offer-feature-button,
	.owl-development-single-button,
	.owl-plot-single-image-cta__button,
	.owl-plot-single-brochure-download__button,
	.owl-footer-call-to-action__button
) .elementor-button .elementor-button-icon {
	display: inline-flex;
	align-items: center;
	margin: 0;
	line-height: 0;
}

:is(
	.owl-button--primary,
	.owl-homes-intro-button,
	.owl-homes-news-updates-button,
	.owl-homes-developments-cta,
	.owl-homes-browse-region-button,
	.owl-homes-customer-centre-button,
	.owl-homes-offer-feature-button,
	.owl-development-single-button,
	.owl-plot-single-image-cta__button,
	.owl-plot-single-brochure-download__button,
	.owl-footer-call-to-action__button
) .elementor-button .elementor-button-icon svg {
	display: block;
	width: var(--owl-button-icon-width);
	height: var(--owl-button-icon-height);
}

.owl-homes-offer-feature-button .elementor-button .elementor-button-icon svg path {
	fill: currentColor;
}

.owl-development-single-button .elementor-button .elementor-button-icon svg path {
	fill: currentColor;
}

.owl-plot-single-image-cta__button .elementor-button .elementor-button-icon svg path,
.owl-plot-single-brochure-download__button .elementor-button .elementor-button-icon svg path {
	fill: currentColor;
}

.owl-footer-call-to-action__button .elementor-button .elementor-button-icon svg path {
	fill: var(--owl-charcoal);
}

.owl-homes-customer-centre-read-more .elementor-button {
	display: inline-flex;
	width: auto;
	min-width: 0;
	padding: 0;
	background: transparent;
	box-shadow: none;
}

.owl-homes-customer-centre-read-more .elementor-button:hover,
.owl-homes-customer-centre-read-more .elementor-button:focus {
	background: transparent;
	color: var(--owl-charcoal);
	box-shadow: none;
}

.owl-homes-customer-centre-read-more .elementor-button .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
}

.owl-homes-customer-centre-read-more .elementor-button .elementor-button-text {
	display: block;
	line-height: 1;
}

.owl-homes-customer-centre-read-more .elementor-button .elementor-button-icon {
	display: inline-flex;
	align-items: center;
	margin: 0;
	line-height: 0;
}

.owl-homes-customer-centre-read-more .elementor-button .elementor-button-icon svg {
	display: block;
	width: 13px;
	height: 20px;
}

.owl-homes-customer-centre-read-more .elementor-button .elementor-button-icon svg path {
	fill: var(--owl-gold);
}

.owl-homes-search-button .elementor-button {
	display: inline-flex;
	width: auto;
	max-width: 100%;
	min-height: 45px;
	padding: 10px 20px;
	justify-content: center;
	align-items: center;
	border: 0;
	text-align: center;
}

.owl-homes-search-button .elementor-button .elementor-button-content-wrapper {
	display: inline-flex;
	width: 100%;
	align-items: center;
	justify-content: center;
	gap: 15px;
}

.owl-homes-search-button .elementor-button .elementor-button-text {
	flex: 0 1 auto;
	text-align: center;
	white-space: nowrap;
}

.owl-homes-find-home-toggle {
	width: auto;
}

.owl-homes-find-home-toggle .elementor-button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 45px;
	padding: 10px 20px;
	box-sizing: border-box;
}

.owl-homes-find-home-toggle .elementor-button .elementor-button-text {
	display: block;
	white-space: nowrap;
	line-height: 1;
}

@media (max-width: 1024px) {
	.owl-homes-news-updates-button {
		--owl-button-min-height: 40px;
	}

	.owl-homes-browse-region-button {
		--owl-button-min-height: 40px;
	}

	.owl-development-single-button {
		--owl-button-min-height: 40px;
	}

	.owl-footer-call-to-action__button {
		--owl-button-min-height: 40px;
	}

	.owl-homes-find-home-toggle .elementor-button {
		min-height: 40px;
		padding: 10px 20px;
		box-shadow: none;
	}

}

@media (max-width: 1024px) {
	.owl-homes-developments-cta .elementor-button {
		width: 100%;
	}
}

/* ==========================================================================
   Shared Component Helpers
   ========================================================================== */

:is(
	.owl-homes-offer-feature-badge,
	.owl-homes-customer-centre-video-label,
	.owl-homes-customer-centre-guide-label
) .elementor-heading-title {
	display: inline-flex;
	min-height: 35px;
	padding: 10px 20px;
	box-sizing: border-box;
	align-items: center;
	justify-content: center;
	border-radius: 100px;
	line-height: 1;
}

.owl-homes-offer-feature-badge.elementor-widget-heading .elementor-heading-title {
	background: var(--owl-gold);
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 16px;
	font-style: normal;
	font-weight: 400;
}

.owl-homes-customer-centre-video-label .elementor-heading-title {
	background: var(--owl-white);
}

.owl-homes-customer-centre-guide-label .elementor-heading-title {
	background: var(--owl-charcoal);
}

:is(
	.owl-homes-content-media-asset,
	.owl-homes-why-choose-card-image-asset,
	.owl-homes-customer-stories-image-asset,
	.owl-homes-customer-centre-guide-image-asset,
	.owl-homes-offer-feature-image
),
:is(
	.owl-homes-content-media-asset,
	.owl-homes-why-choose-card-image-asset,
	.owl-homes-customer-stories-image-asset,
	.owl-homes-customer-centre-guide-image-asset,
	.owl-homes-offer-feature-image
) :is(.elementor-widget-container, .elementor-image) {
	display: block;
	height: 100%;
}

:is(
	.owl-homes-content-media-asset,
	.owl-homes-why-choose-card-image-asset,
	.owl-homes-customer-stories-image-asset,
	.owl-homes-customer-centre-guide-image-asset,
	.owl-homes-offer-feature-image
) img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.owl-homes-intro-title .elementor-heading-title {
	text-wrap: balance;
}

:is(
	.owl-homes-intro-overline,
	.owl-homes-customer-centre-video-title,
	.owl-homes-customer-centre-guide-title,
	.owl-homes-news-updates-overline
) .elementor-heading-title {
	margin: 0;
}

:is(
	.owl-homes-intro-overline,
	.owl-homes-browse-region-overline,
	.owl-homes-customer-centre-overline,
	.owl-homes-customer-stories-overline,
	.owl-homes-news-updates-overline,
	.owl-homes-why-choose-overline,
	.owl-development-single-nearby__overline,
	.owl-plot-single-hero__eyebrow,
	.owl-plot-single-text-text__overline,
	.owl-plot-single-ways-to-buy__overline,
	.elementor-element-dsIntroOver,
	.elementor-element-dsHomesOverline,
	.elementor-element-dsLocalOver,
	.elementor-element-dsNearOver,
	.elementor-element-dsFeatOver
).elementor-widget-heading .elementor-heading-title {
	font-size: 18px !important;
	line-height: 1.2 !important;
}

:is(
	.elementor-element-dsIntroTitle,
	.elementor-element-dsLocalTitle,
	.elementor-element-dsWaysTt,
	.elementor-element-dsNearTitle
).elementor-widget-heading {
	margin-bottom: 20px !important;
}

.elementor-element-dsLocalOver.elementor-widget-heading {
	margin-bottom: 10px !important;
}

.owl-homes-intro-body .elementor-widget-container > *:first-child,
.owl-homes-intro-body .elementor-widget-container > *:last-child {
	margin: 0;
}

.owl-homes-offer-feature-title .elementor-heading-title {
	text-wrap: balance;
}

.owl-homes-offer-feature-body .elementor-widget-container,
.owl-homes-offer-feature-body .elementor-widget-container p {
	margin: 0;
}

.owl-homes-offer-feature-media {
	min-width: 0;
}

:is(.owl-homes-hero-title, .owl-homes-browse-region-title) .elementor-heading-title {
	text-wrap: balance;
}

:is(
	.owl-homes-hero-title,
	.owl-homes-browse-region-title,
	.owl-homes-customer-centre-title,
	.owl-homes-news-updates-title
) .elementor-heading-title {
	margin: 0;
}

.owl-homes-why-choose-title .elementor-heading-title {
	text-wrap: balance;
}

:is(
	.owl-homes-why-choose-body,
	.owl-homes-customer-centre-body,
	.owl-homes-browse-region-body
) .elementor-widget-container,
:is(
	.owl-homes-why-choose-body,
	.owl-homes-customer-centre-body,
	.owl-homes-browse-region-body
) .elementor-widget-container p {
	margin: 0;
}

.owl-homes-customer-centre-play .elementor-icon-wrapper {
	display: flex;
	justify-content: center;
}

.owl-homes-customer-centre-play .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.owl-homes-customer-centre-play .elementor-icon i {
	display: none;
}

.owl-homes-customer-centre-play .elementor-icon svg {
	width: 50px;
	height: 50px;
}

.owl-contact-card-chevron .elementor-icon,
.owl-contact-detail-icon .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 80px;
}

.owl-contact-card-chevron .elementor-icon {
	background: var(--owl-charcoal);
}

.owl-contact-card-chevron .elementor-icon svg {
	width: 13px;
	height: 20px;
}

.owl-contact-card-chevron .elementor-icon svg path {
	fill: var(--owl-white);
}

.owl-contact-detail-icon .elementor-icon {
	border: 1px solid var(--owl-gold);
}

.owl-contact-detail-icon .elementor-icon i {
	font-size: 20px;
}

.owl-contact-detail-icon .elementor-icon svg {
	width: 20px;
	height: 20px;
}

.elementor-element-54432779 .elementor-icon svg,
.elementor-element-429e6632 .elementor-icon svg {
	fill: none !important;
	stroke: currentColor;
}

.owl-contact-link-text a {
	color: inherit;
	text-decoration: none;
}

@media (min-width: 1025px) {
	.owl-homes-news-updates-row {
		flex-wrap: nowrap;
		gap: clamp(20px, 3vw, 40px);
	}
}

@media (max-width: 1024px) {
	.owl-homes-offer-feature-badge.elementor-widget-heading .elementor-heading-title,
	.owl-homes-customer-centre-video-label .elementor-heading-title,
	.owl-homes-customer-centre-guide-label .elementor-heading-title {
		min-height: 30px;
		font-size: 14px;
	}

	.owl-homes-news-updates-title .elementor-heading-title br {
		display: none;
	}

	.owl-homes-browse-region-row {
		flex-direction: column;
		gap: 30px;
	}
}

/* ==========================================================================
   Global Header And Find Your Home Panel
   ========================================================================== */

.elementor-location-header {
	position: relative;
	z-index: 30;
}

body.single-development_plot .elementor-location-header,
body.single-development_plot .elementor-location-header .owl-homes-header,
body.single-development_plot .elementor-location-header .owl-homes-header-row {
	background: var(--owl-cream);
}

@media (min-width: 1025px) {
	body.single-post .elementor-element.elementor-element-nsphero1 {
		min-height: calc(85svh - 123px);
	}
	body.single-development_plot .elementor-element.elementor-element-plHeroIn {
		min-height: calc(85svh - 78px);
	}
}

@media (max-width: 1024px) {
	body.owl-has-overlay-header .elementor-element.elementor-element-1362ce3a,
	body.owl-has-overlay-header .elementor-element.elementor-element-1898e615,
	body.owl-has-overlay-header .elementor-element.elementor-element-dshHero0 {
		min-height: 76svh;
	}
	body.single-post .elementor-element.elementor-element-nsphero1 {
		min-height: 0;
	}
	body.single-post .elementor-element.elementor-element-nspmedia1 {
		flex: 0 0 auto;
		height: 320px;
		aspect-ratio: auto;
		position: relative;
	}
	body.single-post .elementor-element-nspmedia1 .elementor-element-nspimage1,
	body.single-post .elementor-element-nspmedia1 .owl-news-single-hero-image {
		position: static;
		height: 100%;
	}
	body.single-post .elementor-element-nspmedia1 img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		aspect-ratio: auto;
		object-fit: cover;
	}
}

.owl-has-overlay-header .elementor-location-header {
	position: absolute;
	inset: 0 0 auto;
	z-index: 30;
}

.admin-bar.owl-has-overlay-header .elementor-location-header {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar.owl-has-overlay-header .elementor-location-header {
		top: 46px;
	}
}

.owl-homes-header-logo-open {
	display: none !important;
}

@media (max-width: 1024px) {
	.elementor-location-header .owl-homes-header-row {
		width: 100%;
		flex: 1 1 auto;
		align-items: center;
		justify-content: space-between;
		gap: 20px;
	}

	.elementor-location-header .owl-homes-header-logo-slot {
		order: 1;
		width: 90px;
		max-width: 90px;
		flex: 0 0 90px;
	}

	.elementor-location-header .owl-homes-header-logo-slot :is(.elementor-widget-image, .elementor-widget-container, a) {
		display: block;
		width: 90px;
		max-width: 90px;
	}

	.elementor-location-header .owl-homes-header-logo-slot img {
		display: block;
		width: 90px;
		max-width: 90px;
		height: auto;
	}

	.elementor-location-header .owl-homes-header-cta-slot {
		order: 2;
		width: auto;
		flex: 0 1 auto;
		margin-left: auto;
	}

	.elementor-location-header .owl-homes-header-menu-slot {
		order: 3;
		width: 40px;
		max-width: 40px;
		flex: 0 0 40px;
		align-items: center;
		justify-content: flex-end;
	}

	.elementor-location-header .owl-homes-header-menu-slot .elementor-widget-nav-menu {
		position: relative;
		width: 40px;
		max-width: 40px;
		margin: 0;
	}

	.elementor-location-header .owl-homes-header-menu-slot .elementor-menu-toggle {
		position: relative;
		display: flex;
		width: 40px;
		min-width: 40px;
		height: 40px;
		min-height: 40px;
		align-items: center;
		justify-content: center;
		padding: 0;
		border-radius: 100px;
		background: var(--owl-charcoal);
		color: var(--owl-white);
		line-height: 1;
		box-shadow: none;
		transition: background-color 180ms ease, transform 180ms ease;
	}

	.elementor-location-header .owl-homes-header-menu-slot .elementor-menu-toggle:hover,
	.elementor-location-header .owl-homes-header-menu-slot .elementor-menu-toggle:focus {
		background: var(--owl-charcoal);
		color: var(--owl-white);
	}

	.elementor-location-header .owl-homes-header-menu-slot .elementor-menu-toggle :is(i, svg, img) {
		opacity: 0;
	}

	.elementor-location-header .owl-homes-header-menu-slot .elementor-menu-toggle::before,
	.elementor-location-header .owl-homes-header-menu-slot .elementor-menu-toggle::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		display: block;
		width: 16px;
		height: 2px;
		border-radius: 2px;
		background: var(--owl-white);
		transform: translate(-50%, -50%);
		transition: box-shadow 180ms ease, opacity 180ms ease, transform 180ms ease;
	}

	.elementor-location-header .owl-homes-header-menu-slot .elementor-menu-toggle::before {
		box-shadow: 0 -5px 0 var(--owl-white), 0 5px 0 var(--owl-white);
	}

	.elementor-location-header .owl-homes-header-menu-slot .elementor-menu-toggle::after {
		opacity: 0;
	}

	.elementor-location-header .owl-homes-header-menu-slot .elementor-menu-toggle:is(.elementor-active, [aria-expanded="true"])::before {
		box-shadow: none;
		transform: translate(-50%, -50%) rotate(45deg);
	}

	.elementor-location-header .owl-homes-header-menu-slot .elementor-menu-toggle:is(.elementor-active, [aria-expanded="true"])::after {
		opacity: 1;
		transform: translate(-50%, -50%) rotate(-45deg);
	}

	.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--dropdown {
		position: absolute;
		top: 50px;
		right: 0;
		left: auto;
		width: calc(100vw - 40px);
		min-width: calc(100vw - 40px);
		max-width: calc(100vw - 40px);
		padding: 10px;
		overflow: hidden;
		border: 1px solid rgba(var(--owl-ink-rgb), 0.08);
		border-radius: 25px;
		background: var(--owl-cream);
		box-shadow: 0 18px 45px rgba(var(--owl-ink-rgb), 0.14);
	}

	.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--dropdown .elementor-nav-menu {
		display: flex;
		flex-direction: column;
		gap: 5px;
	}

	.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--dropdown li {
		border: 0;
	}

	.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--dropdown a {
		display: flex;
		min-height: 45px;
		align-items: center;
		justify-content: flex-start;
		gap: 0;
		border-radius: 15px;
		color: var(--owl-charcoal);
		font-family: var(--owl-text-font);
		font-size: 18px;
		font-weight: 400;
		line-height: 1.2;
		text-decoration: none;
	}

	.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--dropdown a:hover,
	.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--dropdown a:focus,
	.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--dropdown a.highlighted {
		background: transparent !important;
		color: var(--owl-charcoal);
	}

	.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--dropdown a.elementor-item-active {
		background: var(--owl-white);
		color: var(--owl-charcoal);
	}

	.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--dropdown a::after {
		display: none !important;
		content: none !important;
	}
}

.owl-header-dark-text .elementor-location-header .owl-homes-header-logo-default {
	display: none !important;
}

.owl-header-dark-text .elementor-location-header .owl-homes-header-logo-open {
	display: block !important;
}

.owl-header-dark-text .elementor-location-header .elementor-widget-nav-menu .elementor-item {
	color: var(--owl-charcoal) !important;
}

.elementor-location-header.owl-homes-find-home-open {
	background: var(--owl-cream);
	box-shadow: none;
}

.elementor-location-header.owl-homes-find-home-open .owl-homes-header-logo-default {
	display: none !important;
}

.elementor-location-header.owl-homes-find-home-open .owl-homes-header-logo-open {
	display: block !important;
}

.elementor-location-header.owl-homes-find-home-open .elementor-widget-nav-menu .elementor-item {
	color: var(--owl-charcoal) !important;
}

.elementor-location-header.owl-homes-find-home-open .owl-homes-find-home-toggle .elementor-button {
	background: var(--owl-charcoal) !important;
	color: var(--owl-white) !important;
	box-shadow: none !important;
	gap: 15px;
}

.elementor-location-header.owl-homes-find-home-open .owl-homes-find-home-toggle .elementor-button::after {
	content: "";
	display: inline-block;
	margin-left: 0;
	width: 12px;
	height: 16px;
	background: url("../img/times.svg") center / contain no-repeat;
	flex: 0 0 auto;
}

.owl-homes-find-home-mega {
	display: none;
	background: var(--owl-white);
	border-top: 0;
}

.elementor-location-header.owl-homes-find-home-open .owl-homes-find-home-mega {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 20;
	display: flex;
	width: 100%;
	box-shadow: none;
}

.owl-homes-find-home-regions-list {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	width: 100%;
}

.owl-homes-find-home-header-regions,
.owl-homes-find-home-header-regions .elementor-widget-container {
	width: 100%;
}

.owl-homes-find-home-region-tile {
	display: flex;
	width: 170px;
	flex: 0 0 170px;
	flex-direction: column;
	gap: 5px;
	margin: 0;
	color: var(--owl-charcoal);
	text-decoration: none;
	cursor: pointer;
}

.owl-homes-find-home-region-tile:focus-visible {
	outline: 2px solid var(--owl-gold);
	outline-offset: 4px;
}

.owl-homes-find-home-region-image,
.owl-homes-find-home-region-image :is(.elementor-widget-container, picture, img) {
	display: block;
	width: 100%;
}

.owl-homes-find-home-region-image {
	height: 170px;
	overflow: hidden;
	border-radius: 10px;
}

.owl-homes-find-home-region-image img {
	width: 100%;
	height: 170px;
	object-fit: cover;
	object-position: center center;
}

.owl-homes-find-home-region-title {
	margin: 0;
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 20px;
	font-style: normal;
	font-weight: 700;
	line-height: 40px;
	letter-spacing: 0;
}

.owl-homes-find-home-regions-button .elementor-button {
	display: inline-flex;
	width: auto;
	padding: 0;
	background: transparent;
	box-shadow: none;
}

.owl-homes-find-home-regions-button .elementor-button:hover,
.owl-homes-find-home-regions-button .elementor-button:focus {
	background: transparent;
	color: var(--owl-charcoal);
	box-shadow: none;
}

.owl-homes-find-home-regions-button .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	flex-direction: row-reverse;
	gap: 10px;
}

.owl-homes-find-home-regions-button .elementor-button-text {
	line-height: 1;
	white-space: nowrap;
}

.owl-homes-find-home-regions-button .elementor-button-icon {
	display: inline-flex;
	align-items: center;
	margin: 0;
	line-height: 0;
}

.owl-homes-find-home-regions-button .elementor-button-icon svg {
	display: block;
	width: 13px;
	height: 20px;
}

.owl-homes-find-home-regions-button .elementor-button-icon svg path {
	fill: var(--owl-gold);
}

.owl-homes-find-home-panel-form {
	width: 100%;
	max-width: 320px;
}

.owl-homes-find-home-panel-search {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.owl-homes-find-home-field,
.owl-homes-find-home-select {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	height: 45px;
	border: 1px solid var(--owl-line);
	border-radius: 100px;
	background: var(--owl-white);
	box-sizing: border-box;
}

.owl-homes-find-home-field::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 15px;
	width: 16px;
	height: 16px;
	transform: translateY(-50%);
	background: url("../img/search.svg") center / contain no-repeat;
	pointer-events: none;
}

.owl-homes-find-home-select::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 15px;
	width: 16px;
	height: 16px;
	transform: translateY(-50%);
	background: url("../img/chevron-down.svg") center / contain no-repeat;
	pointer-events: none;
}

.owl-homes-find-home-field input,
.owl-homes-find-home-select select {
	width: 100%;
	height: 100%;
	padding: 10px 15px;
	border: 0;
	background: transparent;
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 14px;
	font-style: normal;
	font-weight: 400;
	line-height: normal;
	box-sizing: border-box;
}

.owl-homes-find-home-field input::placeholder {
	color: var(--owl-charcoal);
	opacity: 1;
}

.owl-homes-find-home-select select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	padding-right: 36px;
}

.owl-homes-find-home-select select::-ms-expand {
	display: none;
}

.owl-homes-find-home-panel-button .elementor-button {
	display: inline-flex;
	width: 100%;
	min-width: 0;
	min-height: 45px;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	border: 0;
	border-radius: 100px;
	background: var(--owl-gold) !important;
	color: var(--owl-charcoal) !important;
	box-shadow: none !important;
}

.owl-homes-find-home-panel-button .elementor-button .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.owl-homes-find-home-panel-button .elementor-button .elementor-button-text {
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 16px;
	font-style: normal;
	font-weight: 400;
	line-height: 1;
}

.owl-homes-find-home-panel-link {
	margin-top: 15px;
	display: flex;
	justify-content: center;
}

.owl-homes-find-home-panel-link .elementor-button {
	display: inline-flex;
	padding: 0;
	border: 0;
	background: transparent !important;
	min-height: 0;
	height: auto;
	color: var(--owl-charcoal);
	box-shadow: none;
}

.owl-homes-find-home-panel-link .elementor-button .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 15px;
}

.owl-homes-find-home-panel-link .elementor-button .elementor-button-text {
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 16px;
	font-style: normal;
	font-weight: 400;
	line-height: 1;
}

.owl-homes-find-home-panel-link .elementor-button .elementor-button-content-wrapper::after {
	content: "";
	display: inline-block;
	width: 13px;
	height: 20px;
	background: url("../img/chevron-right.svg") center / contain no-repeat;
}

@media (max-width: 1024px) {
	.owl-homes-find-home-mega {
		display: none;
	}

	.elementor-location-header.owl-homes-find-home-open .owl-homes-find-home-mega {
		display: block;
	}

	.owl-homes-find-home-panel-link .elementor-button .elementor-button-content-wrapper {
		justify-content: center;
	}
}

/* ==========================================================================
   Homepage Hero And Shared Search Bar
   ========================================================================== */

.home .site-main {
	padding-top: 0;
}

.owl-homes-hero {
	--owl-hero-foreground-image: none;
	--owl-hero-copy-travel: 480px;
	--owl-hero-copy-scroll-range: 720px;
	--owl-hero-copy-offset: 0px;
	position: relative;
	height: 100vh;
	height: 100svh;
	min-height: max(100vh, 480px);
	min-height: max(100svh, 480px);
	padding: 160px 0 60px;
	overflow: hidden;
	box-sizing: border-box;
}

.owl-homes-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background-image: var(--owl-hero-foreground-image);
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}

.owl-homes-hero > .elementor-container,
.owl-homes-hero > .e-con-inner {
	position: relative;
	height: 100%;
}

.owl-homes-hero-inner {
	height: 100%;
	justify-content: space-between !important;
}

.owl-homes-hero .owl-homes-hero-search {
	width: 100%;
	position: relative;
	z-index: 3;
	margin-top: auto;
}

.owl-homes-hero-copy {
	max-width: 860px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
	transform: translate3d(0, var(--owl-hero-copy-offset), 0);
	transition: none !important;
	will-change: transform;
}

.owl-homes-hero .owl-homes-hero-foreground {
	position: absolute;
	inset: 0;
	z-index: 0;
	opacity: 0;
	pointer-events: none;
}

.owl-homes-hero .owl-homes-hero-foreground .elementor-widget-container,
.owl-homes-hero .owl-homes-hero-foreground .elementor-image,
.owl-homes-hero .owl-homes-hero-foreground-picture {
	height: 100%;
}

/* <picture> is inline by default, which leaves the img inside it with no
   definite height to resolve its own 100% against. */
.owl-homes-hero .owl-homes-hero-foreground-picture {
	display: block;
}

.owl-homes-hero .owl-homes-hero-foreground img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

@media (prefers-reduced-motion: reduce) {
	.owl-homes-hero-copy {
		transform: none;
		will-change: auto;
	}
}

.owl-homes-search-shell {
	width: 100%;
	margin-top: 0;
}

.owl-homes-search-card {
	width: min(1250px, 100%);
	margin: 0 auto;
	padding: 10px 20px;
	border-radius: var(--owl-radius-pill);
	background: var(--owl-white);
}

.owl-homes-search-form {
	--owl-search-control-height: 45px;
	display: grid;
	grid-template-columns: minmax(280px, 2.4fr) minmax(190px, 0.9fr) auto auto;
	align-items: center;
	gap: 15px;
}

.owl-homes-field,
.owl-homes-select,
.owl-homes-search-link {
	min-height: var(--owl-search-control-height);
	border-radius: var(--owl-radius-pill);
}

.owl-homes-field,
.owl-homes-select {
	box-sizing: border-box;
	position: relative;
	display: flex;
	height: var(--owl-search-control-height);
	align-items: center;
	border: 1px solid var(--owl-line);
	background: var(--owl-white);
}

.owl-homes-search-button .elementor-button {
	box-sizing: border-box;
	min-height: var(--owl-search-control-height);
}

.owl-homes-field::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 22px;
	transform: translateY(-50%);
	width: 16px;
	height: 16px;
	background: url("../img/search.svg") center / contain no-repeat;
	pointer-events: none;
}

.owl-homes-field:has(.owl-homes-locate)::after,
.owl-homes-find-home-field:has(.owl-homes-locate)::after {
	display: none;
}

.owl-homes-field .owl-homes-locate,
.owl-homes-find-home-field .owl-homes-locate {
	position: absolute;
	top: 50%;
	right: 18px;
	transform: translateY(-50%);
	width: 16px;
	min-width: 0;
	height: 16px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	cursor: pointer;
	flex: 0 0 auto;
	appearance: none;
}

.owl-homes-field .owl-homes-locate:hover,
.owl-homes-field .owl-homes-locate:focus,
.owl-homes-find-home-field .owl-homes-locate:hover,
.owl-homes-find-home-field .owl-homes-locate:focus {
	background: none;
	box-shadow: none;
	transform: translateY(-50%);
}

.owl-homes-locate::before {
	content: "";
	display: block;
	width: 16px;
	height: 16px;
	background: var(--owl-gold);
	mask: url("../img/map-marker-alt.svg") center / contain no-repeat;
	-webkit-mask: url("../img/map-marker-alt.svg") center / contain no-repeat;
}

.owl-homes-field .owl-homes-locate.is-locating {
	opacity: 0.45;
	cursor: progress;
}

.owl-homes-field:has(.owl-homes-locate) input,
.owl-homes-find-home-field:has(.owl-homes-locate) input {
	padding-right: 48px;
}

.owl-homes-field input,
.owl-homes-select select {
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	border: 0;
	padding: 10px 20px;
	background: transparent;
	color: var(--owl-ink);
	font-family: var(--owl-text-font);
	font-size: 14px;
	font-style: normal;
	font-weight: 400;
	line-height: normal;
	outline: none;
	min-height: 45px;
}

.owl-homes-field input::placeholder {
	color: var(--owl-charcoal);
	opacity: 1;
	font-family: var(--owl-text-font);
	font-size: 14px;
	font-style: normal;
	font-weight: 400;
	line-height: normal;
}

.owl-homes-select {
	position: relative;
}

.owl-homes-select::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
	width: 16px;
	height: 16px;
	background: url("../img/chevron-down.svg") center / contain no-repeat;
	pointer-events: none;
}

.owl-homes-select select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background-image: none;
}

.owl-homes-search-button .elementor-button {
	background: var(--owl-gold);
	color: var(--owl-charcoal);
	line-height: 1;
}

.owl-homes-search-button,
.owl-homes-search-link {
	display: flex;
}

.owl-homes-search-link .elementor-button {
	display: inline-flex;
	width: auto;
	min-width: 0;
	height: auto;
	padding: 0;
	justify-content: center;
	align-items: center;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 16px;
	font-style: normal;
	font-weight: 400;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
}

.owl-homes-search-link .elementor-button .elementor-button-content-wrapper {
	display: inline-flex;
	width: auto;
	align-items: center;
	justify-content: center;
	gap: 15px;
}

.owl-homes-search-link .elementor-button .elementor-button-text {
	flex: 0 1 auto;
	text-align: center;
}

.owl-homes-search-link .elementor-button .elementor-button-content-wrapper::after {
	content: "";
	display: block;
	align-self: center;
	width: 13px;
	height: 20px;
	background: url("../img/chevron-right.svg") center / contain no-repeat;
	flex: 0 0 auto;
}

/* ==========================================================================
   News Archive Filters
   ========================================================================== */

.owl-news-archive-filters {
	display: grid;
	width: 100%;
	min-height: 65px;
	padding: 10px;
	box-sizing: border-box;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 15px;
	border-radius: 100px;
	background: var(--owl-white);
	box-shadow: 0 0 30px rgba(0, 0, 0, 0.02);
}

.owl-news-archive-filters__toggle,
.owl-news-archive-filters__panel-header,
.owl-news-archive-filters__submit,
.owl-news-archive-filters__clear {
	display: none;
}

.owl-news-archive-filters__panel,
.owl-news-archive-filters__fields {
	display: contents;
}

.owl-news-archive-filters,
.owl-homes-news-archive-listing,
.owl-homes-home-hub-listing {
	transition: opacity 0.18s ease;
}

.owl-news-archive-filters.is-loading,
.owl-homes-news-archive-listing.is-loading,
.owl-homes-home-hub-listing.is-loading {
	opacity: 0.55;
	pointer-events: none;
}

.owl-news-archive-filters__field {
	display: block;
	margin: 0;
}

.owl-news-archive-filters select {
	width: 100%;
	height: 45px;
	padding: 0 46px 0 15px;
	border: 1px solid var(--owl-line);
	border-radius: 100px;
	appearance: none;
	background: var(--owl-white) url("../img/chevron-down.svg") right 15px center / 15px auto no-repeat;
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 14px;
	font-style: normal;
	font-weight: 400;
	line-height: 1.4;
}

.owl-news-archive-filters__field.is-active select {
	font-weight: 800;
}

.owl-news-archive-filters-shortcode .elementor-widget-container,
.owl-news-archive-filters-shortcode .elementor-shortcode {
	width: 100%;
}

.owl-news-archive-filters-shortcode .elementor-shortcode {
	display: block;
}

@media (max-width: 1024px) {
	body.owl-news-filters-open,
	body.owl-home-hub-filters-open,
	body.owl-developments-filters-open,
	body.owl-development-plots-filters-open {
		overflow: hidden;
	}

	.owl-news-archive-filters {
		display: block;
		min-height: 65px;
		padding: 10px;
		border-radius: 100px;
	}

	.owl-news-archive-filters.is-open,
	.owl-developments-filters.is-open {
		position: fixed;
		inset: 0;
		z-index: 10000;
		width: 100%;
		min-height: 100dvh;
		padding: 86px 0 0;
		border-radius: 0;
		background: rgba(0, 0, 0, 0.3);
		box-shadow: none;
		overflow: hidden;
	}

	.admin-bar .owl-news-archive-filters.is-open,
	.admin-bar .owl-developments-filters.is-open {
		top: 32px;
		min-height: calc(100dvh - 32px);
	}

	.owl-news-archive-filters__toggle-icon,
	.owl-developments-filters__toggle-icon {
		display: block;
		width: 16px;
		height: 16px;
		flex: 0 0 auto;
		background: var(--owl-gold);
		mask: url("../img/filter-sliders.svg") center / contain no-repeat;
		-webkit-mask: url("../img/filter-sliders.svg") center / contain no-repeat;
	}

	.owl-news-archive-filters__panel,
	.owl-developments-filters__advanced-panel {
		display: none;
	}

	.owl-news-archive-filters.is-open .owl-news-archive-filters__panel,
	.owl-developments-filters.is-open .owl-developments-filters__advanced-panel {
		display: flex;
		width: 100%;
		min-height: calc(100dvh - 86px);
		padding: 20px;
		box-sizing: border-box;
		flex-direction: column;
		gap: 15px;
		border-radius: 0;
		background: var(--owl-white);
		box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	.admin-bar .owl-news-archive-filters.is-open .owl-news-archive-filters__panel,
	.admin-bar .owl-developments-filters.is-open .owl-developments-filters__advanced-panel {
		min-height: calc(100dvh - 118px);
	}

	@media (max-width: 782px) {
		.admin-bar .owl-news-archive-filters.is-open,
		.admin-bar .owl-developments-filters.is-open {
			top: 46px;
			min-height: calc(100dvh - 46px);
		}

		.admin-bar .owl-news-archive-filters.is-open .owl-news-archive-filters__panel,
		.admin-bar .owl-developments-filters.is-open .owl-developments-filters__advanced-panel {
			min-height: calc(100dvh - 132px);
		}
	}

	.owl-news-archive-filters__panel-header,
	.owl-developments-filters__panel-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
	}

	.owl-news-archive-filters__panel-title,
	.owl-developments-filters__panel-title {
		display: inline-flex;
		align-items: center;
		gap: 10px;
		color: var(--owl-charcoal);
		font-family: var(--owl-text-font);
		font-size: 22px;
		font-weight: 400;
		line-height: 1;
	}

	.owl-news-archive-filters__count,
	.owl-developments-filters__count {
		display: inline-flex;
		width: 25px;
		height: 25px;
		align-items: center;
		justify-content: center;
		border: 1px solid var(--owl-gold);
		border-radius: 100px;
		color: var(--owl-charcoal);
		font-size: 16px;
		line-height: 1;
	}

	.owl-news-archive-filters .owl-news-archive-filters__close,
	.owl-developments-filters .owl-developments-filters__close {
		display: inline-flex;
		width: 35px;
		height: 35px;
		min-width: 35px;
		min-height: 35px;
		padding: 0;
		box-sizing: border-box;
		align-items: center;
		justify-content: center;
		border: 0;
		border-radius: 100px;
		background: var(--owl-charcoal) url("../img/times.svg") center / 12px 12px no-repeat;
		color: transparent;
		font-size: 0;
		line-height: 0;
		box-shadow: none;
		appearance: none;
		cursor: pointer;
	}

	.owl-news-archive-filters .owl-news-archive-filters__close:hover,
	.owl-news-archive-filters .owl-news-archive-filters__close:focus,
	.owl-developments-filters .owl-developments-filters__close:hover,
	.owl-developments-filters .owl-developments-filters__close:focus {
		border: 0;
		background: var(--owl-charcoal) url("../img/times.svg") center / 12px 12px no-repeat;
		color: transparent;
		box-shadow: none;
		text-decoration: none;
		transform: none;
	}

	.owl-news-archive-filters__fields,
	.owl-developments-filters__advanced-fields {
		display: flex;
		flex-direction: column;
		gap: 15px;
	}

	.owl-news-archive-filters .owl-news-archive-filters__submit,
	.owl-developments-filters .owl-developments-filters__submit {
		display: inline-flex;
		width: 100%;
		min-height: 40px;
		padding: 10px 20px;
		box-sizing: border-box;
		align-items: center;
		justify-content: center;
		border: 0;
		border-radius: 100px;
		background: var(--owl-charcoal);
		color: var(--owl-white);
		font-family: var(--owl-text-font);
		font-size: 16px;
		font-weight: 400;
		line-height: 1;
	}

	.owl-news-archive-filters .owl-news-archive-filters__submit:hover,
	.owl-news-archive-filters .owl-news-archive-filters__submit:focus,
	.owl-developments-filters .owl-developments-filters__submit:hover,
	.owl-developments-filters .owl-developments-filters__submit:focus {
		border: 0;
		background: var(--owl-charcoal);
		color: var(--owl-white);
		box-shadow: none;
		text-decoration: none;
		transform: none;
	}

	.owl-news-archive-filters .owl-news-archive-filters__toggle {
		display: flex;
		width: 100%;
		height: 45px;
		padding: 10px 15px;
		box-sizing: border-box;
		align-items: center;
		justify-content: space-between;
		border: 1px solid var(--owl-line);
		border-radius: 100px;
		background: var(--owl-white);
		color: var(--owl-charcoal);
		font-family: var(--owl-text-font);
		font-size: 14px;
		font-weight: 400;
		line-height: 1;
		box-shadow: none;
	}

	.owl-news-archive-filters.is-open .owl-news-archive-filters__toggle {
		display: none;
	}

	.owl-news-archive-filters__toggle-copy,
	.owl-news-archive-filters__panel-title {
		display: inline-flex;
		align-items: center;
		gap: 10px;
	}

	.owl-news-archive-filters__toggle-copy {
		gap: 12px;
	}

	.owl-news-archive-filters__toggle-chevron {
		display: block;
		width: 16px;
		height: 16px;
		background: url("../img/chevron-down.svg") center / contain no-repeat;
	}

	.owl-news-archive-filters[data-active-count="0"] .owl-news-archive-filters__count {
		display: none;
	}

	.owl-news-archive-filters__fields {
		margin-top: 10px;
	}

	.owl-news-archive-filters__field {
		width: 100%;
	}

	.owl-news-archive-filters select {
		padding-right: 46px;
		padding-left: 20px;
		background-position: right 20px center;
	}

	.owl-news-archive-filters .owl-news-archive-filters__submit {
		height: 40px;
	}

	.owl-news-archive-filters__clear {
		display: inline-flex;
		min-height: 40px;
		align-items: center;
		justify-content: center;
		gap: 10px;
		color: var(--owl-charcoal);
		font-family: var(--owl-text-font);
		font-size: 16px;
		font-weight: 400;
		line-height: 1;
		text-decoration: none;
	}

	.owl-news-archive-filters__clear span:last-child {
		display: block;
		width: 12px;
		height: 12px;
		background: var(--owl-gold);
		mask: url("../img/times.svg") center / contain no-repeat;
		-webkit-mask: url("../img/times.svg") center / contain no-repeat;
	}
}

/* ==========================================================================
   Development Card Loop Item
   ========================================================================== */

.owl-development-loop-item {
	height: 100%;
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	padding: 0;
}

.owl-development-loop-item > .e-con-inner {
	padding: 0;
}

.owl-development-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	border-radius: 10px;
	overflow: hidden;
}

.owl-development-card .elementor-widget {
	margin-bottom: 0;
}

.owl-development-card__media {
	position: relative;
	height: 330px;
	line-height: 0;
	background: #e7e1d3 url(../img/development-placeholder.webp) center / cover no-repeat;
	overflow: hidden;
}

.owl-development-card__image-widget,
.owl-development-card__image-widget .elementor-widget-container {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.owl-development-card__image-widget a {
	display: block;
	width: 100%;
	height: 100%;
}

.owl-development-card__image-widget img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.owl-development-card__status {
	display: flex;
	align-items: center;
	justify-content: center;
	width: auto;
	min-height: 35px;
	box-sizing: border-box;
	white-space: nowrap;
}

.owl-development-card__offer {
	display: flex;
	width: 100%;
	height: 45px;
	min-height: 45px;
	padding: 0 10px;
	box-sizing: border-box;
	justify-content: center;
	align-items: center;
	gap: 10px;
	border-top: 2px solid var(--owl-white);
	background: var(--owl-gold);
	color: var(--owl-charcoal);
	text-align: center;
}

.owl-development-card__offer .elementor-heading-title {
	color: var(--owl-charcoal);
}

.owl-development-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 30px;
}

.owl-development-card > .owl-development-card__body {
	--flex-grow: 1;
	flex-grow: 1;
}

.owl-development-card__title {
	margin: 0 0 10px;
	line-height: 1.2;
}

.owl-development-card__title .elementor-heading-title {
	margin: 0;
	color: inherit;
}

.owl-development-card__title a {
	font-family: var(--owl-display-font);
	color: inherit;
	text-decoration: none;
}

.owl-development-card__location {
	margin: 0 0 10px;
	line-height: 35px;
}

.owl-development-card__bedrooms {
	margin: 0;
	gap: 12px;
	align-items: flex-start;
}

.owl-development-card__bedrooms-icon {
	display: inline-flex;
	width: 20px;
	height: 16px;
	margin-top: 4px;
	flex: 0 0 auto;
}

.owl-development-card__bedrooms-icon .elementor-widget-container,
.owl-development-card__bedrooms-icon img {
	display: block;
	width: 100%;
	height: 100%;
}

.owl-development-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: auto;
	padding-top: 20px;
}

.owl-development-card__price {
	line-height: 24px;
}

.owl-development-card__arrow {
	display: flex;
	flex: 0 0 auto;
	line-height: 0;
}

.owl-development-card__footer > .owl-development-card__arrow {
	margin-left: auto;
}

.owl-development-card__arrow .elementor-icon {
	display: flex;
	width: 40px;
	height: 40px;
	flex: 0 0 auto;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	border-radius: 100px;
	background: var(--owl-gold) url("../img/chevron-right-charcoal.svg") center / 13px 20px no-repeat;
}

.owl-development-card__arrow svg {
	display: none;
}

.elementor.elementor .elementor-element.owl-development-single-nearby__intro.elementor-widget-text-editor {
	max-width: 920px;
}

/* ==========================================================================
   Developments Nearby — wide horizontal cards (Figma 1708-2634)
   Scoped to the development-single "Developments nearby" loop grid only,
   desktop (>1024px). Below 1024px the base vertical card layout applies.
   ========================================================================== */

@media (min-width: 1025px) {
	.owl-development-single-nearby__loop-grid .owl-development-card {
		position: relative;
		display: grid;
		grid-template-columns: 282px minmax(0, 1fr);
		grid-template-rows: minmax(283px, auto);
		background: var(--owl-white);
	}

	.owl-development-single-nearby__loop-grid .owl-development-card__media {
		height: 100%;
		aspect-ratio: auto;
	}

	.owl-development-single-nearby__loop-grid .owl-development-card__offer {
		position: absolute;
		left: 0;
		bottom: 0;
		width: 282px;
		min-height: 0;
		height: 38px;
		padding: 8px 10px;
		border-top: 2px solid var(--owl-white);
		border-radius: 0 0 0 10px;
		z-index: 2;
	}

	.owl-development-single-nearby__loop-grid .owl-development-card__body {
		height: 100%;
		padding: 30px 22px;
	}

	.owl-development-single-nearby__loop-grid .owl-development-card__bedrooms {
		align-items: center;
	}

	.owl-development-single-nearby__loop-grid .owl-development-card__bedrooms-icon {
		margin-top: 0;
	}

	.owl-development-single-nearby__loop-grid .owl-development-card__title .elementor-heading-title,
	.owl-development-single-nearby__loop-grid .owl-development-card__title a {
		font-size: 28px;
	}
}

.owl-development-single-nearby-elementor .elementor-button .elementor-button-icon svg path {
	fill: var(--owl-white);
}

.elementor.elementor .elementor-element.owl-development-single-nearby__header {
	margin-bottom: 50px;
}

.elementor.elementor .elementor-element.elementor-element-dsNearButtonWrap {
	margin-top: 60px;
}

@media (max-width: 1024px) {
	.elementor.elementor .elementor-element.owl-development-single-nearby__header {
		margin-bottom: 30px;
	}

	.elementor.elementor .elementor-element.elementor-element-dsNearButtonWrap {
		margin-top: 30px;
	}

	.owl-development-single-nearby__loop-grid .elementor-loop-container.owl-development-single-nearby-swiper {
		display: block;
		width: calc(100% + 40px);
		margin-left: -20px;
		margin-right: -20px;
		overflow: hidden;
	}

	.owl-development-single-nearby__loop-grid .owl-development-single-nearby-swiper .swiper-wrapper {
		align-items: stretch;
	}

	.owl-development-single-nearby__loop-grid .owl-development-single-nearby-swiper .swiper-slide {
		display: flex;
		height: auto;
	}
}

/* ==========================================================================
   Developments Archive And Map View
   ========================================================================== */

.owl-developments-hero {
	position: relative;
	overflow: visible;
}

.owl-developments-hero > .e-con-inner {
	position: relative;
	z-index: 1;
}

@media (min-width: 1025px) {
	.owl-developments-hero > .e-con-inner,
	.owl-developments-hero > .e-con-inner > .e-con {
		min-height: var(--min-height);
	}

	.owl-developments-filters-shortcode {
		position: absolute;
		right: var(--owl-container-gutter);
		bottom: 50px;
		left: var(--owl-container-gutter);
		width: auto;
	}
}

.owl-developments-hero-title .elementor-heading-title {
	color: var(--owl-white);
}

.owl-developments-finder {
	position: relative;
	width: 100%;
}

.owl-developments-filters {
	width: 100%;
	margin: 0;
}

.owl-developments-filters__toggle,
.owl-developments-filters__panel-header,
.owl-developments-filters__submit {
	display: none;
}

.owl-developments-filters__advanced-panel,
.owl-developments-filters__advanced-fields {
	display: contents;
}

.owl-developments-filters__bar {
	display: grid;
	grid-template-columns: minmax(260px, 2.45fr) minmax(145px, 1.15fr) repeat(4, minmax(125px, 1fr));
	gap: 10px;
	align-items: center;
	min-height: 65px;
	padding: 10px;
	box-sizing: border-box;
	border-radius: 100px;
	background: var(--owl-white);
	box-shadow: 0 20px 30px rgba(0, 0, 0, 0.25);
}

.owl-developments-filters__field {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 45px;
	margin: 0;
	border: 1px solid var(--owl-line);
	border-radius: 100px;
	background: var(--owl-white);
}

.owl-developments-filters__field input,
.owl-developments-filters__field select {
	width: 100%;
	min-height: 43px;
	padding: 10px 42px 10px 20px;
	border: 0;
	background: transparent;
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 14px;
	font-weight: 400;
	line-height: 1;
	outline: 0;
}

.owl-developments-filters__field.has-value input,
.owl-developments-filters__field.has-value select {
	font-weight: 800;
}

.owl-developments-filters__field.is-invalid {
	border-color: var(--owl-gold);
	box-shadow: 0 0 0 2px rgba(193, 160, 30, 0.25);
}

.owl-developments-filters__field select {
	appearance: none;
	background: url("../img/chevron-down.svg") right 20px center / 14px 8px no-repeat;
	cursor: pointer;
}

.owl-developments-filters__search,
.owl-developments-filters__location-clear {
	position: absolute;
	top: 50%;
	right: 18px;
	width: 18px;
	height: 18px;
	padding: 0;
	border: 0;
	background: var(--owl-gold);
	mask: url("../img/search.svg") center / contain no-repeat;
	-webkit-mask: url("../img/search.svg") center / contain no-repeat;
	transform: translateY(-50%);
	cursor: pointer;
}

.owl-developments-filters__location-clear {
	display: block;
	mask-image: url("../img/times.svg");
	-webkit-mask-image: url("../img/times.svg");
}

.owl-developments-filters[data-active-count="0"] .owl-developments-filters__count,
.owl-developments-filters[data-active-count="0"] .owl-developments-filters__clear-all {
	display: none;
}

.owl-developments-filters__clear-all {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	display: inline-flex;
	align-items: center;
	gap: 15px;
	color: var(--owl-white);
	font-family: var(--owl-text-font);
	font-size: 16px;
	font-weight: 800;
	line-height: 1;
	text-decoration: none;
}

.owl-developments-filters__clear-all:hover,
.owl-developments-filters__clear-all:focus {
	color: var(--owl-white);
	text-decoration: none;
}

.owl-developments-filters__clear-all span[aria-hidden="true"] {
	display: block;
	width: 20px;
	height: 15px;
	background: currentColor;
	mask: url("../img/times.svg") center / contain no-repeat;
	-webkit-mask: url("../img/times.svg") center / contain no-repeat;
}

.owl-developments-filters__validation {
	position: absolute;
	top: calc(100% + 10px);
	left: 0;
	max-width: min(520px, 100%);
	margin: 0;
	color: var(--owl-white);
	font-family: var(--owl-text-font);
	font-size: 16px;
	font-weight: 800;
	line-height: 1.2;
}

.owl-developments-filters__validation[hidden] {
	display: none;
}

.owl-developments-results-header {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: nowrap;
}

.owl-developments-results-summary {
	margin: 0;
	min-width: 0;
	flex: 1 1 auto;
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 18px;
	font-weight: 400;
	line-height: normal;
	white-space: normal;
}

.owl-developments-results-summary strong {
	font-weight: 800;
}

.owl-developments-view-toggle {
	display: inline-flex;
	flex: 0 0 auto;
}

.owl-developments-view-toggle__item {
	display: inline-flex;
	min-height: 45px;
	padding: 10px 20px;
	align-items: center;
	justify-content: center;
	gap: 10px;
	box-sizing: border-box;
	border: 1px solid var(--owl-line);
	background: var(--owl-white);
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 14px;
	font-weight: 400;
	line-height: 1;
	white-space: nowrap;
	text-decoration: none;
}

.owl-developments-view-toggle__item--list {
	border-radius: 100px 0 0 100px;
}

.owl-developments-view-toggle__item--map {
	margin-left: -1px;
	border-radius: 0 100px 100px 0;
}

.owl-developments-view-toggle__item.is-active {
	border-color: var(--owl-charcoal);
	background: var(--owl-charcoal);
	color: var(--owl-white);
}

.owl-developments-view-toggle__item span {
	display: block;
	flex: 0 0 auto;
	background: var(--owl-gold);
}

.owl-developments-view-toggle__item--list span {
	width: 18px;
	height: 15px;
	mask: url("../img/list.svg") center / contain no-repeat;
	-webkit-mask: url("../img/list.svg") center / contain no-repeat;
}

.owl-developments-view-toggle__item--map span {
	width: 14px;
	height: 19px;
	mask: url("../img/map-marker-alt.svg") center / contain no-repeat;
	-webkit-mask: url("../img/map-marker-alt.svg") center / contain no-repeat;
}

.owl-developments-layout {
	width: 100%;
	gap: 40px;
}

.owl-developments-listing-inner {
	--owl-developments-list-gap: 40px;
	--owl-developments-list-card-width: calc(
		(
			min(var(--owl-container-width), 100vw) -
			(var(--owl-container-gutter) * 2) -
			var(--owl-developments-list-gap)
		) / 2
	);
	align-items: flex-start;
	gap: var(--owl-developments-list-gap);
	box-sizing: border-box;
}

.owl-developments-view-map .owl-developments-listing-inner {
	width: 100% !important;
	max-width: none !important;
	padding-left: max(var(--owl-container-gutter), calc(((100vw - var(--owl-container-width)) / 2) + var(--owl-container-gutter)));
	padding-right: 0 !important;
}

.owl-developments-results,
.owl-developments-map-column {
	min-width: 0;
}

.owl-developments-map-column {
	position: sticky;
	top: 0;
	flex: 1 1 auto;
	align-self: flex-start;
	max-width: none !important;
}

.owl-developments-view-map .owl-developments-results {
	flex: 0 0 var(--owl-developments-list-card-width) !important;
	width: var(--owl-developments-list-card-width) !important;
}

.admin-bar .owl-developments-map-column {
	top: 32px;
}

.owl-developments-view-list .owl-developments-results {
	flex: 1 1 100%;
	width: 100%;
}

.owl-developments-view-list .owl-developments-map-column {
	display: none;
}

.owl-developments-map {
	position: relative;
	height: 970px;
	overflow: hidden;
	background: #f4f2ea;
}

.owl-developments-map .leaflet-tile-pane {
	filter: grayscale(0.75) sepia(0.08) saturate(0.75) contrast(0.95) brightness(1.03);
}

.owl-developments-map.is-vector-map .maplibregl-canvas {
	outline: none;
}

.owl-developments-map .leaflet-control-attribution {
	padding: 3px 6px;
	background: rgba(255, 255, 255, 0.72);
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 10px;
	line-height: 1.3;
	opacity: 0.72;
	transition: opacity 180ms ease;
}

.owl-developments-map .leaflet-control-attribution:hover,
.owl-developments-map .leaflet-control-attribution:focus-within {
	opacity: 1;
}

.owl-developments-map .maplibregl-ctrl-attrib {
	padding: 3px 6px;
	background: rgba(255, 255, 255, 0.72);
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 10px;
	line-height: 1.3;
	opacity: 0.72;
	transition: opacity 180ms ease;
}

.owl-developments-map .maplibregl-ctrl-attrib:hover,
.owl-developments-map .maplibregl-ctrl-attrib:focus-within {
	opacity: 1;
}

.owl-developments-map-marker {
	background: transparent;
}

.owl-developments-map-marker span {
	display: block;
	width: 23px;
	height: 31px;
	background: var(--owl-gold);
	filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.18));
	transform-origin: 50% 100%;
	transition:
		background-color 180ms ease,
		filter 180ms ease,
		transform 180ms ease;
	mask: url("../img/map-marker-development.svg") center / contain no-repeat;
	-webkit-mask: url("../img/map-marker-development.svg") center / contain no-repeat;
}

.owl-developments-map-marker.is-map-active span,
.owl-developments-map-marker.is-map-hovered span {
	background: var(--owl-charcoal);
	filter: drop-shadow(0 12px 18px rgba(0, 0, 0, 0.22));
	transform: scale(1.2);
}

.owl-developments-map-card {
	display: none;
}

.owl-developments-map-card[hidden] {
	display: none !important;
}

.owl-developments-map__empty {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 1;
	width: min(280px, calc(100% - 40px));
	margin: 0;
	padding: 20px;
	border-radius: 10px;
	background: var(--owl-white);
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 16px;
	line-height: 1.4;
	text-align: center;
	box-shadow: var(--owl-shadow-soft);
	transform: translate(-50%, -50%);
}

.owl-development-archive-loop-item {
	height: 100%;
	padding: 0;
}

.owl-development-archive-loop-item > .e-con-inner {
	padding: 0;
}

.owl-development-archive-card {
	display: flex;
	min-height: 285px;
	height: 100%;
	overflow: hidden;
	border-radius: 10px;
	background: var(--owl-cream);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.owl-development-archive-card.is-map-active {
	box-shadow: 0 0 0 2px var(--owl-gold), var(--owl-shadow-soft);
	transform: translateY(-2px);
}

.owl-development-archive-card .elementor-widget {
	margin-bottom: 0;
}

.owl-development-archive-card__media {
	position: relative;
	flex: 0 0 285px;
	min-height: 285px;
	overflow: hidden;
	background: #e7e1d3 url(../img/development-placeholder.webp) center / cover no-repeat;
}

.owl-development-archive-card__image-widget,
.owl-development-archive-card__image-widget .elementor-widget-container,
.owl-development-archive-card__image-widget a {
	display: block;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.owl-development-archive-card__image-widget img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.owl-development-archive-card__status {
	display: flex;
	align-items: center;
	justify-content: center;
	width: auto;
	min-height: 35px;
	box-sizing: border-box;
	white-space: nowrap;
}

.owl-development-archive-card__offer {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	display: flex;
	min-height: 40px;
	padding: 10px;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	border-top: 2px solid var(--owl-white);
	background: var(--owl-gold);
	color: var(--owl-charcoal);
	text-align: center;
}

.owl-development-archive-card__offer .elementor-heading-title {
	color: var(--owl-charcoal);
}

.owl-development-archive-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
	padding: 45px 28px 28px;
}

.owl-development-archive-card__title {
	margin: 0 0 10px;
	line-height: 1.2;
}

.owl-development-archive-card__distance {
	margin: 0 0 10px;
	color: #727272;
	font-family: var(--owl-text-font);
	font-size: 14px;
	font-weight: 400;
	line-height: 14px;
}

.owl-development-archive-card__title .elementor-heading-title {
	margin: 0;
	color: inherit;
}

.owl-development-archive-card__title a {
	font-family: var(--owl-display-font);
	color: inherit;
	text-decoration: none;
}

.owl-development-archive-card__location {
	margin: 0 0 10px;
	line-height: 1.35;
}

.owl-development-archive-card__bedrooms {
	margin: 0;
	gap: 10px;
	align-items: flex-start;
}

.owl-development-archive-card__bedrooms-icon {
	display: inline-flex;
	width: 20px;
	height: 16px;
	margin-top: 4px;
	flex: 0 0 auto;
}

.owl-development-archive-card__bedrooms-icon .elementor-widget-container,
.owl-development-archive-card__bedrooms-icon img {
	display: block;
	width: 100%;
	height: 100%;
}

.owl-development-archive-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: auto;
	padding-top: 20px;
}

.owl-development-archive-card__price {
	line-height: 1.2;
}

.owl-development-archive-card__arrow {
	display: flex;
	flex: 0 0 auto;
	line-height: 0;
}

.owl-development-archive-card__footer > .owl-development-archive-card__arrow {
	margin-left: auto;
}

@media (max-width: 1024px) {
	.owl-development-archive-card > .owl-development-archive-card__body {
		--flex-grow: 1;
		flex-grow: 1;
	}
}

.owl-development-archive-card__arrow .elementor-icon {
	display: flex;
	width: 40px;
	height: 40px;
	align-items: center;
	justify-content: center;
	border-radius: 100px;
	background: var(--owl-gold) url("../img/chevron-right-charcoal.svg") center / 13px 20px no-repeat;
}

.owl-development-archive-card__arrow svg {
	display: none;
}

.owl-developments-loop-grid .elementor-loop-container {
	align-items: stretch;
}

body.owl-developments-view-map .owl-developments-loop-grid {
	--grid-columns: 1 !important;
}

body.owl-developments-view-map .owl-developments-loop-grid .elementor-loop-container {
	grid-template-columns: 1fr !important;
}

.owl-developments-loop-grid .e-loop-item,
.owl-developments-loop-grid .e-loop-item > .e-con {
	height: 100%;
}

.owl-developments-loop-grid .e-loop__load-more .elementor-button {
	display: inline-flex;
	min-height: 45px;
	padding: 10px 20px;
	align-items: center;
	justify-content: center;
	border-radius: 100px;
	background: var(--owl-charcoal);
	color: var(--owl-white);
	fill: var(--owl-white);
	font-family: var(--owl-text-font);
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
	box-shadow: none;
}

.owl-developments-loop-grid .e-loop__load-more .elementor-button:hover,
.owl-developments-loop-grid .e-loop__load-more .elementor-button:focus {
	background: var(--owl-charcoal);
	color: var(--owl-white);
	fill: var(--owl-white);
}

.owl-developments-loop-grid .e-loop__load-more .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 15px;
}

.owl-developments-loop-grid .e-loop__load-more .elementor-button-icon {
	margin: 0;
	line-height: 0;
}

.owl-developments-loop-grid .e-loop__load-more .elementor-button-icon svg {
	display: block;
	width: 18px;
	height: 20px;
}

@media (max-width: 1024px) {
	.owl-developments-hero {
		min-height: 560px;
	}

	body.owl-developments-filters-open .owl-developments-hero {
		z-index: 10002;
	}

	.owl-developments-finder {
		display: flex;
		flex-direction: column;
		align-items: stretch;
	}

	.owl-developments-filters__bar {
		grid-template-columns: minmax(0, 1fr) minmax(170px, 192px) auto;
		border-radius: 100px;
	}

	.owl-developments-filters.is-open .owl-developments-filters__bar {
		display: block;
		min-height: 0;
		padding: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
	}

	.owl-developments-filters .owl-developments-filters__toggle {
		display: inline-flex;
		min-height: 45px;
		padding: 10px;
		box-sizing: border-box;
		align-items: center;
		justify-content: center;
		gap: 10px;
		border: 0;
		border-radius: 100px;
		background: transparent;
		color: var(--owl-charcoal);
		font-family: var(--owl-text-font);
		font-size: 16px;
		font-weight: 400;
		line-height: 1;
		white-space: nowrap;
		cursor: pointer;
	}

	.owl-developments-filters .owl-developments-filters__toggle:hover,
	.owl-developments-filters .owl-developments-filters__toggle:focus {
		border: 0;
		background: transparent;
		color: var(--owl-charcoal);
		box-shadow: none;
		text-decoration: none;
		transform: none;
	}

	.owl-developments-filters.is-open .owl-developments-filters__field--location,
	.owl-developments-filters.is-open .owl-developments-filters__field--radius,
	.owl-developments-filters.is-open .owl-developments-filters__toggle {
		display: none;
	}

	.owl-developments-filters__advanced-panel {
		display: none;
	}

	.owl-developments-filters.is-open .owl-developments-filters__advanced-panel {
		position: static;
		display: flex;
		max-height: none;
		margin: 0;
		transform: none;
	}

	.owl-developments-filters__panel-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		margin-bottom: 10px;
	}

	.owl-developments-filters__advanced-fields {
		display: flex;
		flex-direction: column;
		gap: 15px;
	}

	.owl-developments-filters .owl-developments-filters__submit {
		cursor: pointer;
	}

	.owl-developments-filters__validation {
		position: static;
		margin-top: 10px;
	}

	.owl-developments-filters__clear-all {
		position: static;
		display: inline-flex !important;
		align-self: center;
		min-height: 45px;
		margin-top: 0;
		justify-content: center;
		color: var(--owl-charcoal);
		font-weight: 400;
	}

	.owl-developments-filters__clear-all:hover,
	.owl-developments-filters__clear-all:focus {
		background: transparent;
		color: var(--owl-charcoal);
		box-shadow: none;
		text-decoration: none;
		transform: none;
	}

	.owl-developments-filters__clear-all span[aria-hidden="true"] {
		background: var(--owl-gold);
	}

	.owl-developments-layout {
		flex-direction: column !important;
		gap: 30px;
	}

	.owl-developments-results-header {
		flex-wrap: wrap;
	}

	.owl-developments-view-toggle-shortcode,
	.owl-developments-view-toggle {
		width: 100%;
	}

	.owl-developments-results-summary {
		white-space: normal;
	}

	.owl-developments-listing-inner {
		--owl-developments-list-gap: 30px;
		flex-direction: column;
		padding-left: var(--owl-container-gutter);
		padding-right: var(--owl-container-gutter) !important;
	}

	.owl-developments-view-map .owl-developments-listing-inner {
		width: 100% !important;
		padding-left: var(--owl-container-gutter);
		padding-right: var(--owl-container-gutter) !important;
	}

	.owl-developments-view-list .owl-developments-results {
		display: block !important;
		flex: 0 0 auto !important;
		width: 100% !important;
	}

	.owl-developments-results {
		flex: 0 0 auto !important;
		width: 100% !important;
	}

	.owl-developments-map-column {
		flex: 1 1 auto !important;
		width: 100% !important;
	}

	.owl-developments-view-map .owl-developments-results,
	.owl-developments-view-map .owl-developments-map-column {
		flex: 1 1 auto !important;
		width: 100% !important;
	}

	.owl-developments-map-column,
	.admin-bar .owl-developments-map-column {
		position: relative;
		top: auto;
	}

	.owl-developments-map {
		height: 420px;
	}

	.owl-development-archive-card {
		flex-direction: column;
		position: relative;
	}

	.owl-development-archive-card__body,
	.owl-development-archive-card__title {
		position: static;
	}

	.owl-development-archive-card__title a::after,
	.owl-developments-map-card__title-link::after {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 1;
	}

	/*
	 * The homepage carousel card only answered on its photo, its name and the
	 * arrow, which left the status, the offer band, the address, the bedrooms
	 * and the price all dead to a tap. Barely half the card did anything, so a
	 * tap on the lower half looked like a broken link. Same stretched link the
	 * archive card above already uses, so the whole card is one target.
	 */
	.owl-development-card {
		position: relative;
	}

	.owl-development-card__title {
		position: static;
	}

	.owl-development-card__title a::after {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 1;
	}

	/* Keeps the arrow above the stretched link so it stays its own target. */
	.owl-development-card__arrow {
		position: relative;
		z-index: 2;
	}

	/* Both are labels with nothing to click, so taps pass through to the card. */
	.owl-development-card__status,
	.owl-development-card__offer {
		pointer-events: none;
	}

	/*
	 * Both regional email addresses are wider than the room left beside their
	 * icon, 295px of text into 275px, so each dropped onto the line underneath
	 * it. A step down in size is the only lever that keeps the address whole and
	 * on one line, since trimming the gap alone does not claw back enough.
	 */
	.owl-homes-contact-locations .owl-contact-detail-icon ~ .elementor-widget-text-editor,
	.owl-homes-contact-locations .owl-contact-detail-icon ~ .elementor-widget-text-editor p,
	.owl-homes-contact-locations .owl-contact-detail-icon ~ .elementor-widget-text-editor a {
		font-size: 16px;
	}

	.owl-development-archive-card__media {
		flex-basis: auto;
		width: 100%;
		aspect-ratio: 1 / 1;
		min-height: 0;
	}

	.owl-development-archive-card__body {
		padding: 25px;
	}

	/* Figma pairs the name and address as consecutive lines, then spaces the rest
	   at 20px, so the container gap is dropped and the spacing set per row. */
	.owl-development-archive-card > .owl-development-archive-card__body {
		--row-gap: 0px;
	}

	.owl-development-archive-card > .owl-development-archive-card__body > .owl-development-archive-card__location,
	.owl-development-archive-card > .owl-development-archive-card__body > .owl-development-archive-card__bedrooms {
		margin-bottom: 20px;
	}

	.owl-development-archive-card__footer {
		padding-top: 0;
	}
}

@media (max-width: 1024px) {
	.owl-developments-hero,
	.owl-developments-hero > .e-con-inner,
	.owl-developments-hero > .e-con-inner > .e-con {
		min-height: 75svh;
	}

	body.owl-developments-radius-invalid .owl-developments-hero,
	body.owl-developments-radius-invalid .owl-developments-hero > .e-con-inner,
	body.owl-developments-radius-invalid .owl-developments-hero > .e-con-inner > .e-con {
		min-height: 80svh;
	}

	.owl-developments-hero > .e-con-inner > .e-con {
		position: relative;
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
		gap: 22px;
		padding-bottom: 30px;
		box-sizing: border-box;
	}

	.owl-developments-hero-title {
		text-align: center;
	}

	.owl-developments-filters-shortcode {
		width: 100%;
	}

	.owl-developments-filters__bar {
		grid-template-columns: 1fr;
		min-height: 160px;
		border-radius: 25px;
	}

	.owl-developments-filters .owl-developments-filters__toggle {
		justify-self: center;
		width: auto;
		min-height: 25px;
		padding: 0;
		border: 0;
		background: transparent;
	}

	.owl-developments-filters .owl-developments-filters__toggle:hover,
	.owl-developments-filters .owl-developments-filters__toggle:focus {
		border: 0;
		background: transparent;
	}
}

@media (max-width: 1024px) {
	.owl-developments-results-header {
		gap: 15px;
	}

	.owl-developments-view-toggle {
		display: flex;
		min-height: 40px;
	}

	.owl-developments-view-toggle__item {
		flex: 1 1 50%;
		min-height: 40px;
		padding: 10px 20px;
	}

	body.owl-developments-view-map .owl-developments-results {
		display: contents;
	}

	body.owl-developments-view-map .owl-developments-listing-inner {
		gap: 20px;
	}

	body.owl-developments-view-map .owl-developments-listing-section {
		padding-bottom: 0;
	}

	body.owl-developments-view-map .owl-developments-view-toggle-shortcode {
		margin-bottom: 0 !important;
	}

	body.owl-developments-view-map .owl-developments-results-header {
		order: 1;
		width: 100%;
	}

	body.owl-developments-view-map .owl-developments-map-column {
		order: 2;
		width: calc(100% + (var(--owl-container-gutter) * 2)) !important;
		margin-right: calc(var(--owl-container-gutter) * -1);
		margin-left: calc(var(--owl-container-gutter) * -1);
	}

	body.owl-developments-view-map .owl-developments-loop-grid {
		order: 3;
		width: 100%;
		display: none;
	}

	body.owl-developments-view-map .owl-developments-map {
		height: 535px;
	}

	.owl-developments-map-card {
		position: absolute;
		right: var(--owl-container-gutter);
		bottom: var(--owl-container-gutter);
		left: var(--owl-container-gutter);
		z-index: 5;
		display: block;
		height: 155px;
		min-height: 155px;
		padding: 0;
		box-sizing: border-box;
		overflow: hidden;
		border-radius: 8px;
		background: var(--owl-white);
		box-shadow: 0 15px 30px rgba(0, 0, 0, 0.18);
	}

	.owl-developments-map-card__close {
		position: absolute;
		top: 5px;
		right: 5px;
		z-index: 2;
		width: 25px !important;
		max-width: 25px;
		height: 25px;
		min-width: 25px;
		min-height: 25px;
		padding: 0 !important;
		border: 0;
		border-radius: 50%;
		background: var(--owl-charcoal) url("../img/times.svg") center / 10px 10px no-repeat;
		color: transparent;
		font-size: 0;
		line-height: 0;
		box-shadow: none;
		cursor: pointer;
	}

	.owl-developments-map-card__close:hover,
	.owl-developments-map-card__close:focus {
		background: var(--owl-charcoal) url("../img/times.svg") center / 10px 10px no-repeat;
		color: transparent;
		box-shadow: none;
		transform: none;
	}

	.owl-developments-map-card__media {
		position: absolute;
		top: 0;
		left: 0;
		display: block;
		width: 131px;
		height: 131px;
		overflow: hidden;
		border-radius: 8px 0 0;
		background: #f4f2ea;
	}

	.owl-developments-map-card__image {
		display: block;
		width: 100%;
		height: 100% !important;
		object-fit: cover;
		object-position: center center;
	}

	.owl-developments-map-card__image[hidden] {
		display: none !important;
	}

	.owl-developments-map-card__body {
		position: absolute;
		top: 28px;
		right: 4px;
		left: 147px;
		display: flex;
		min-width: 0;
		flex-direction: column;
		gap: 0;
	}

	.owl-developments-map-card__status,
	.owl-developments-map-card__offer,
	.owl-developments-map-card__title,
	.owl-developments-map-card__location,
	.owl-developments-map-card__bedrooms,
	.owl-developments-map-card__price {
		margin: 0;
	}

	.owl-developments-map-card__status {
		position: absolute;
		top: 5px;
		left: 5px;
		z-index: 2;
		display: inline-flex;
		width: fit-content;
		min-height: 25px;
		padding: 5px 10px;
		align-items: center;
		border-radius: 100px;
		background: var(--owl-white);
		color: var(--owl-charcoal);
		font-family: var(--owl-text-font);
		font-size: 12px;
		line-height: 1;
	}

	.owl-developments-map-card__offer {
		position: absolute;
		right: 0;
		bottom: 0;
		left: 0;
		display: flex;
		height: 25px;
		align-items: center;
		justify-content: center;
		border-top: 1px solid var(--owl-white);
		border-radius: 0 0 8px 8px;
		background: var(--owl-gold);
		font-family: var(--owl-text-font);
		font-size: 12px;
		font-weight: 800;
		line-height: 1;
		color: var(--owl-charcoal);
	}

	.owl-developments-map-card__title {
		color: var(--owl-charcoal);
		font-family: var(--owl-display-font);
		font-size: 16px;
		font-weight: 400;
		line-height: 20px;
	}

	.owl-developments-map-card__title-link {
		display: -webkit-box;
		overflow: hidden;
		color: inherit;
		font-family: inherit;
		text-decoration: none;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 1;
	}

	.owl-developments-map-card__location,
	.owl-developments-map-card__bedrooms {
		display: -webkit-box;
		overflow: hidden;
		color: var(--owl-charcoal);
		font-family: var(--owl-text-font);
		font-size: 12px;
		font-weight: 400;
		line-height: 20px;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 1;
	}

	.owl-developments-map-card__bedrooms {
		display: flex;
		align-items: center;
		gap: 7px;
		margin-top: 8px;
		line-height: 1;
		white-space: nowrap;
	}

	.owl-developments-map-card__bedrooms::before {
		width: 13px;
		height: 12px;
		flex: 0 0 13px;
		background: var(--owl-gold);
		content: "";
		mask: url("../img/bed.svg") center / contain no-repeat;
		-webkit-mask: url("../img/bed.svg") center / contain no-repeat;
	}

	.owl-developments-map-card__price {
		margin-top: 12px;
		color: var(--owl-charcoal);
		font-family: var(--owl-text-font);
		font-size: 14px;
		font-weight: 800;
		line-height: 20px;
	}

	.owl-developments-finder.has-validation .owl-developments-filters__validation {
		position: absolute;
		top: calc(100% + 12px);
		left: 0;
		z-index: 2;
		width: 100%;
		max-width: none;
		padding: 8px 10px;
		box-sizing: border-box;
		border-radius: 100px;
		background: rgba(var(--owl-ink-rgb), 0.92);
		color: var(--owl-white);
		font-size: 13px;
		font-weight: 800;
		line-height: 1.2;
		text-align: center;
		box-shadow: 0 10px 20px rgba(0, 0, 0, 0.18);
	}

}

/* ==========================================================================
   News Loop And Card Components
   ========================================================================== */

.owl-news-updates-loop-grid {
	width: 100%;
}

.owl-news-updates-loop-grid .elementor-loop-container {
	align-items: stretch;
}

.owl-news-updates-loop-grid .e-loop-item,
.owl-news-updates-loop-grid .e-loop-item > .e-con {
	height: 100%;
}

.owl-news-updates-loop-grid .e-loop__load-more .elementor-button {
	display: inline-flex;
	min-height: 45px;
	padding: 10px 20px;
	align-items: center;
	justify-content: center;
	border-radius: 100px;
	background: var(--owl-charcoal);
	color: var(--owl-white);
	fill: var(--owl-white);
	font-family: var(--owl-text-font);
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
	box-shadow: none;
}

.owl-news-updates-loop-grid .e-loop__load-more .elementor-button:hover,
.owl-news-updates-loop-grid .e-loop__load-more .elementor-button:focus {
	background: var(--owl-charcoal);
	color: var(--owl-white);
	fill: var(--owl-white);
}

.owl-news-updates-loop-grid .e-loop__load-more .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 15px;
}

.owl-news-updates-loop-grid .e-loop__load-more .elementor-button-icon {
	margin: 0;
	line-height: 0;
}

.owl-news-updates-loop-grid .e-loop__load-more .elementor-button-icon svg {
	display: block;
	width: 18px;
	height: 20px;
}

.owl-homes-browse-region {
	transition: opacity 0.18s ease;
}

.owl-homes-browse-region.is-transitioning .owl-homes-browse-region-grid {
	opacity: 0.82;
}

.owl-homes-browse-region-grid .elementor-loop-container {
	transition: opacity 0.18s ease;
}

.owl-homes-browse-region-grid .elementor-loop-container.owl-homes-browse-region-swiper {
	display: block !important;
	overflow: hidden !important;
}

.owl-homes-browse-region-grid .elementor-loop-container.owl-homes-browse-region-swiper .swiper-wrapper {
	align-items: stretch;
}

.owl-homes-browse-region-grid .elementor-loop-container.owl-homes-browse-region-swiper .swiper-slide {
	display: flex;
	flex-shrink: 0;
	width: auto;
	height: auto;
}

.owl-homes-browse-region-grid .elementor-loop-container.owl-homes-browse-region-swiper .swiper-slide .owl-homes-browse-region-tile {
	height: auto;
}

.owl-homes-developments-footer .swiper-pagination,
.owl-homes-developments-footer .swiper-pagination-bullets {
	position: static;
	inset: auto;
	transform: none;
	width: auto;
}

.owl-homes-developments-footer .swiper-pagination {
	line-height: 0;
	flex: 0 0 auto;
}

.owl-homes-developments-footer .swiper-pagination-bullets {
	display: inline-flex;
	align-items: center;
}

.owl-homes-developments-footer .swiper-pagination-bullet {
	width: 15px;
	height: 15px;
	border: 1px solid var(--owl-charcoal);
	border-radius: 15px;
	background: transparent;
	opacity: 1;
}

.owl-homes-developments-footer .swiper-pagination-bullet-active {
	background: var(--owl-charcoal);
}

.owl-homes-development-carousel > :is(.swiper, .swiper-container),
.owl-homes-development-carousel > .elementor-widget-container > :is(.swiper, .swiper-container) {
	padding-bottom: 0 !important;
}

.owl-homes-development-carousel .swiper,
.owl-homes-development-carousel .elementor-loop-container {
	overflow: hidden;
}

.owl-news-updates-card {
	height: 100%;
	min-height: 585px;
	overflow: hidden;
	box-shadow: 0 0 15px rgba(0, 0, 0, 0.02);
}

body.wp-child-theme-owl-homes-child .owl-homes-news-archive-listing .owl-news-updates-card:not(.elementor-motion-effects-element-type-background),
body.wp-child-theme-owl-homes-child .owl-homes-news-archive-listing .owl-news-updates-card__media:not(.elementor-motion-effects-element-type-background),
body.wp-child-theme-owl-homes-child .owl-homes-news-archive-listing .owl-news-updates-card__body:not(.elementor-motion-effects-element-type-background) {
	background-color: var(--owl-cream);
}

.owl-news-updates-card__media {
	position: relative;
	min-height: 265px;
	box-sizing: border-box;
	line-height: 0;
	overflow: hidden;
}

.owl-news-updates-card__image-widget,
.owl-news-updates-card__image-widget .elementor-widget-container {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.owl-news-updates-card__image-widget img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.owl-news-updates-card__label-widget {
	display: flex;
	width: max-content !important;
	max-width: calc(100% - 30px);
	line-height: 0;
	pointer-events: none;
}

.owl-news-updates-card__label-widget .elementor-widget-container,
.owl-news-updates-card__label-widget .elementor-post-info,
.owl-news-updates-card__label-widget .elementor-icon-list-item,
.owl-news-updates-card__label-widget .elementor-icon-list-text,
.owl-news-updates-card__label-widget .elementor-post-info__item,
.owl-news-updates-card__label-widget .elementor-post-info__terms-list {
	display: flex !important;
	/* Posts with two categories rendered their pills flush against each other. */
	gap: 4px;
	align-items: flex-start;
	width: max-content;
	max-width: 100%;
	margin: 0;
	padding: 0;
	line-height: 0 !important;
}

.owl-news-updates-card__label-widget .elementor-post-info {
	list-style: none;
}

.owl-news-updates-card__label-widget .elementor-icon-list-icon {
	display: none;
}

.owl-news-updates-card__label-widget .elementor-post-info__terms-list-item {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 35px;
	padding: 10px 20px;
	box-sizing: border-box;
	border-radius: 100px;
	background: var(--owl-white);
	color: inherit;
	line-height: 1 !important;
	text-decoration: none;
	white-space: nowrap;
}

.owl-news-updates-card__body {
	flex: 1 1 auto !important;
	min-height: 0;
}

.owl-news-updates-card__date .elementor-heading-title,
.owl-news-updates-card__title .elementor-heading-title {
	margin: 0;
}

.owl-news-updates-card__excerpt,
.owl-news-updates-card__excerpt .elementor-widget-container {
	display: -webkit-box !important;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	max-height: 2.7em;
	line-height: 1.35;
	text-overflow: ellipsis;
	white-space: normal;
}

.owl-news-updates-card__footer {
	margin-top: auto !important;
}

.owl-news-updates-card__button,
.owl-news-updates-card__button .elementor-widget-container {
	width: auto;
}

.owl-news-updates-card__button .elementor-button,
.owl-news-updates-card__button .elementor-button:hover,
.owl-news-updates-card__button .elementor-button:focus {
	display: inline-flex;
	padding: 0;
	background: transparent;
	color: var(--owl-charcoal);
	fill: var(--owl-gold);
	box-shadow: none;
}

.owl-news-updates-card__button .elementor-button-icon {
	display: inline-flex;
	margin: 0;
	line-height: 0;
}

.owl-news-updates-card__button .elementor-button-icon svg {
	display: block;
	width: 13px;
	height: 20px;
}

.owl-news-updates-card__button .elementor-button-icon svg path {
	fill: var(--owl-gold);
}

/* ==========================================================================
   Home Hub Resource Archive
   ========================================================================== */

.owl-home-hub-loop-grid {
	width: 100%;
}

.owl-home-hub-loop-grid .elementor-loop-container {
	align-items: stretch;
}

.owl-home-hub-loop-grid .e-loop-item,
.owl-home-hub-loop-grid .e-loop-item > .e-con {
	height: 100%;
}

.owl-home-hub-loop-grid .e-loop__load-more .elementor-button {
	display: inline-flex;
	min-height: 45px;
	padding: 10px 20px;
	align-items: center;
	justify-content: center;
	border-radius: 100px;
	background: var(--owl-charcoal);
	color: var(--owl-white);
	fill: var(--owl-white);
	font-family: var(--owl-text-font);
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
	box-shadow: none;
}

.owl-home-hub-loop-grid .e-loop__load-more .elementor-button:hover,
.owl-home-hub-loop-grid .e-loop__load-more .elementor-button:focus {
	background: var(--owl-charcoal);
	color: var(--owl-white);
	fill: var(--owl-white);
}

.owl-home-hub-loop-grid .e-loop__load-more .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 15px;
}

.owl-home-hub-loop-grid .e-loop__load-more .elementor-button-icon {
	margin: 0;
	line-height: 0;
}

.owl-home-hub-loop-grid .e-loop__load-more .elementor-button-icon svg {
	display: block;
	width: 18px;
	height: 20px;
}

.owl-home-hub-card {
	position: relative;
	display: flex;
	min-height: 410px;
	height: 100%;
	border-radius: 10px;
	background: var(--owl-cream);
	overflow: hidden;
}

.owl-home-hub-card .elementor-widget {
	margin-bottom: 0;
}

.owl-home-hub-card__body {
	display: flex;
	width: 50%;
	min-width: 0;
	flex: 0 0 50%;
	padding: 30px;
	box-sizing: border-box;
	flex-direction: column;
	justify-content: flex-end;
	align-items: flex-start;
	gap: 20px;
}

.owl-home-hub-card__media {
	position: relative;
	width: 50%;
	min-width: 0;
	flex: 0 0 50%;
	min-height: 100%;
	line-height: 0;
	overflow: hidden;
}

.owl-home-hub-card__image,
.owl-home-hub-card__image .elementor-widget-container,
.owl-home-hub-card__image a,
.owl-home-hub-card__image img {
	width: 100%;
	height: 100%;
}

.owl-home-hub-card__image,
.owl-home-hub-card__image .elementor-widget-container {
	position: absolute;
	inset: 0;
}

.owl-home-hub-card__image img {
	display: block;
	object-fit: cover;
	object-position: center center;
}

.owl-home-hub-card__image a {
	display: block;
}

.owl-home-hub-card__label {
	display: flex;
	width: max-content !important;
	max-width: calc(100% - 40px);
	line-height: 0;
	pointer-events: none;
}

.owl-home-hub-card__label .elementor-widget-container,
.owl-home-hub-card__label .elementor-post-info,
.owl-home-hub-card__label .elementor-icon-list-item,
.owl-home-hub-card__label .elementor-icon-list-text,
.owl-home-hub-card__label .elementor-post-info__item,
.owl-home-hub-card__label .elementor-post-info__terms-list {
	display: flex !important;
	/* Posts with two categories rendered their pills flush against each other. */
	gap: 4px;
	width: max-content;
	max-width: 100%;
	margin: 0;
	padding: 0;
	line-height: 0 !important;
}

.owl-home-hub-card__label .elementor-post-info {
	list-style: none;
}

.owl-home-hub-card__label .elementor-icon-list-icon {
	display: none;
}

.owl-home-hub-card__label .elementor-post-info__terms-list-item {
	display: inline-flex !important;
	min-height: 35px;
	padding: 10px 20px;
	box-sizing: border-box;
	align-items: center;
	justify-content: center;
	border-radius: 100px;
	background: var(--owl-charcoal);
	color: var(--owl-white) !important;
	line-height: 1 !important;
	text-decoration: none;
	white-space: nowrap;
}

.owl-home-hub-resource--video .owl-home-hub-card__label .elementor-post-info__terms-list-item {
	background: var(--owl-white);
	color: var(--owl-charcoal) !important;
}

.owl-home-hub-resource--download .owl-home-hub-card__body {
	width: auto;
	flex: 1 1 auto;
}

.owl-home-hub-resource--download .owl-home-hub-card__media {
	width: 42.5%;
	min-height: auto;
	margin: 30px 30px 30px 0;
	flex: 0 0 42.5%;
	border-radius: 10px;
	background: var(--owl-charcoal);
}

.owl-home-hub-card__title .elementor-heading-title,
.owl-home-hub-card__title .elementor-heading-title a {
	color: inherit;
	text-decoration: none;
}

.owl-home-hub-resource--video .owl-home-hub-card__title .elementor-heading-title,
.owl-home-hub-resource--video .owl-home-hub-card__title .elementor-heading-title a {
	color: var(--owl-white) !important;
}

.owl-home-hub-card__button .elementor-button,
.owl-home-hub-card__button .elementor-button:hover,
.owl-home-hub-card__button .elementor-button:focus {
	display: inline-flex;
	padding: 0;
	background: transparent;
	color: var(--owl-charcoal);
	fill: var(--owl-gold);
	box-shadow: none;
}

.owl-home-hub-card__button .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	gap: 15px;
}

.owl-home-hub-card__button .elementor-button-text {
	white-space: nowrap;
}

.owl-home-hub-card__button .elementor-button-icon {
	display: inline-flex;
	margin: 0;
	line-height: 0;
}

.owl-home-hub-card__button .elementor-button-icon svg {
	display: block;
	width: 13px;
	height: 20px;
}

.owl-home-hub-card__button .elementor-button-icon svg path {
	fill: var(--owl-gold);
}

.owl-home-hub-card__button--download {
	display: none;
}

.owl-home-hub-resource--download .owl-home-hub-card__button--default {
	display: none;
}

.owl-home-hub-resource--download .owl-home-hub-card__button--download {
	display: block;
}

.owl-home-hub-card__button--download .elementor-button-icon svg {
	width: 18px;
	height: 20px;
}

.owl-home-hub-card__play {
	display: none;
}

.owl-home-hub-resource--no-url .owl-home-hub-card__button,
.owl-home-hub-resource--no-url .owl-home-hub-card__play {
	display: none !important;
}

.owl-home-hub-resource--video .owl-home-hub-card {
	display: block;
	background: var(--owl-charcoal);
}

.owl-home-hub-resource--video .owl-home-hub-card__media {
	position: absolute;
	inset: 0;
	width: auto;
	min-height: 0;
	flex: none;
}

.owl-home-hub-resource--video .owl-home-hub-card__media::after {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.4) 100%);
	content: "";
	pointer-events: none;
}

.owl-home-hub-resource--video .owl-home-hub-card__body {
	position: absolute;
	inset: auto 20px 20px;
	z-index: 2;
	width: auto;
	padding: 0;
	color: var(--owl-white);
}

.owl-home-hub-resource--video .owl-home-hub-card__button {
	display: none;
}

.owl-home-hub-resource--video .owl-home-hub-card__play {
	position: absolute;
	inset: 50% auto auto 50%;
	z-index: 2;
	display: block;
	transform: translate(-50%, -50%);
}

.owl-home-hub-resource--video .owl-home-hub-card__play .elementor-icon {
	display: inline-flex;
	width: 50px;
	height: 50px;
	align-items: center;
	justify-content: center;
	border-radius: 100px;
	background: var(--owl-white);
	color: var(--owl-charcoal);
}

.owl-home-hub-resource--video .owl-home-hub-card__play svg {
	width: 18px;
	height: 20px;
}

@media (max-width: 1024px) {
	.owl-home-hub-card {
		min-height: 360px;
	}

	.owl-home-hub-card__body {
		padding: 20px;
	}

	.owl-home-hub-resource--download .owl-home-hub-card__media {
		width: 42.5%;
		margin: 20px 20px 20px 0;
		flex-basis: 42.5%;
	}

	.owl-home-hub-card__label .elementor-post-info__terms-list-item {
		min-height: 30px;
		padding: 10px 20px;
		font-size: 14px;
	}
}

@media (max-width: 1024px) {
	.owl-home-hub-card {
		min-height: 238px;
	}
}

.owl-lightbox {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 48px;
	box-sizing: border-box;
	background: rgba(var(--owl-ink-rgb), 0.88);
}

.owl-lightbox[hidden] {
	display: none;
}

.owl-lightbox__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 100%;
	max-height: 100%;
}

.owl-lightbox__content {
	display: flex;
	max-width: 100%;
	max-height: 100%;
}

.owl-lightbox__content--video {
	width: min(1100px, calc(100vw - 96px));
}

.owl-lightbox__image {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	background: var(--owl-white);
}

.owl-lightbox__frame {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
	background: #000;
}

.owl-lightbox__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.owl-lightbox .owl-lightbox__close {
	position: fixed;
	top: 20px;
	right: 20px;
	display: inline-flex;
	width: 44px;
	min-width: 44px;
	height: 44px;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 1.5px solid var(--owl-white);
	border-radius: var(--owl-radius-pill);
	background: transparent;
	box-shadow: none;
	cursor: pointer;
	appearance: none;
}

.owl-lightbox .owl-lightbox__close:hover,
.owl-lightbox .owl-lightbox__close:focus {
	border-color: var(--owl-white);
	background: transparent;
	box-shadow: none;
}

.owl-lightbox .owl-lightbox__close::before {
	display: block;
	width: 16px;
	min-width: 16px;
	height: 16px;
	background: var(--owl-white);
	content: "";
	-webkit-mask: url("../img/times.svg") center / contain no-repeat;
	mask: url("../img/times.svg") center / contain no-repeat;
}

body.owl-lightbox-open {
	overflow: hidden;
}

/* ==========================================================================
   News Single Template
   ========================================================================== */

.owl-news-single-hero {
	--owl-news-single-hero-bleed: max(0px, calc((100vw - 1250px) / 2));
	overflow: hidden;
}

.owl-news-single-hero > .e-con-inner {
	min-height: inherit;
}

.owl-news-single-hero-copy {
	max-width: 600px;
}

.owl-news-single-label {
	width: max-content;
	line-height: 0;
	pointer-events: none;
}

.owl-news-single-label .elementor-widget-container,
.owl-news-single-label .elementor-post-info,
.owl-news-single-label .elementor-icon-list-item,
.owl-news-single-label .elementor-icon-list-text,
.owl-news-single-label .elementor-post-info__item,
.owl-news-single-label .elementor-post-info__terms-list {
	display: flex !important;
	/* Posts with two categories rendered their pills flush against each other. */
	gap: 4px;
	width: max-content;
	max-width: 100%;
	margin: 0;
	padding: 0;
	line-height: 0 !important;
}

.owl-news-single-label .elementor-post-info {
	list-style: none;
}

.owl-news-single-label .elementor-icon-list-icon {
	display: none;
}

.owl-news-single-label .elementor-post-info__terms-list-item {
	display: inline-flex !important;
	min-height: 35px;
	padding: 10px 20px;
	box-sizing: border-box;
	align-items: center;
	justify-content: center;
	border-radius: 100px;
	background: var(--owl-white);
	color: var(--owl-charcoal);
	line-height: 1 !important;
	text-decoration: none;
	white-space: nowrap;
}

.single-post.category-event .owl-news-single-label .elementor-post-info__terms-list-item {
	background: var(--owl-gold);
}

.owl-news-single-title .elementor-heading-title,
.owl-news-single-date .elementor-heading-title {
	margin: 0;
}

.owl-news-single-hero-image,
.owl-news-single-hero-image .elementor-widget-container,
.owl-news-single-hero-image :is(a, img) {
	display: block;
	width: 100%;
	height: 100%;
}

.owl-news-single-hero-image img {
	object-fit: cover;
	object-position: center center;
}

.owl-news-single-content,
.owl-news-single-content .elementor-widget-container {
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 18px;
	font-weight: 300;
	line-height: 1.45;
}

.owl-news-single-content :is(p, ul, ol, blockquote) {
	margin: 0 0 1.35em;
}

.owl-news-single-content :is(p, ul, ol, blockquote):last-child {
	margin-bottom: 0;
}

/*
 * The standfirst matched the headline's 1.2 rather than the body's 1.45, so it
 * read noticeably tighter than the copy underneath it (NA10). Mobile already
 * sat looser at 1.35 and is left alone.
 */
.owl-news-single-content > p:first-of-type,
.owl-news-single-content .elementor-widget-container > p:first-of-type {
	font-size: 30px;
	font-weight: 800;
	line-height: 1.45;
	letter-spacing: 0;
}

.owl-news-single-share {
	width: max-content;
	max-width: 100%;
}

.owl-news-single-share .elementor-grid {
	display: inline-flex !important;
	min-height: 45px;
	padding: 2px 10px;
	box-sizing: border-box;
	align-items: center;
	gap: 10px;
	border-radius: 100px;
	background: var(--owl-gold);
	line-height: 0;
}

.owl-news-single-share .elementor-grid-item {
	display: flex !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 0;
}

.owl-news-single-share .elementor-share-btn {
	display: inline-flex !important;
	width: 40px;
	height: 40px;
	min-width: 40px;
	min-height: 40px;
	padding: 0 !important;
	align-items: center;
	justify-content: center;
	border-radius: 80px;
	background: transparent !important;
	color: var(--owl-charcoal) !important;
	font-size: 0 !important;
	line-height: 0 !important;
	transform: none !important;
	transition: none;
}

.owl-news-single-share .elementor-share-btn__icon {
	display: inline-flex;
	width: 40px;
	height: 40px;
	align-items: center;
	justify-content: center;
	color: inherit !important;
	font-size: 0 !important;
	line-height: 0 !important;
}

.owl-news-single-share .elementor-share-btn svg {
	display: none;
}

.owl-news-single-share .elementor-share-btn__icon::before {
	content: "";
	display: block;
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: var(--owl-news-single-share-icon) center / contain no-repeat;
	mask: var(--owl-news-single-share-icon) center / contain no-repeat;
}

.owl-news-single-share .elementor-share-btn_facebook {
	--owl-news-single-share-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 320 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z'/%3E%3C/svg%3E");
}

.owl-news-single-share .elementor-share-btn_linkedin {
	--owl-news-single-share-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 448 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z'/%3E%3C/svg%3E");
}

.owl-news-single-share .elementor-share-btn_twitter {
	--owl-news-single-share-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z'/%3E%3C/svg%3E");
}

.owl-news-single-share .elementor-share-btn_email {
	--owl-news-single-share-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z'/%3E%3C/svg%3E");
}

.owl-news-single-share .elementor-share-btn:hover,
.owl-news-single-share .elementor-share-btn:focus {
	background: transparent !important;
	color: var(--owl-charcoal) !important;
}

.owl-news-single-related-copy p {
	margin: 0;
}

.owl-news-single-footer-banner {
	position: relative;
	isolation: isolate;
}

.owl-news-single-footer-banner::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(76deg, rgba(0, 0, 0, 0.52) 0%, rgba(0, 0, 0, 0.12) 62%, rgba(0, 0, 0, 0) 100%);
}

.owl-news-single-footer-banner-image {
	position: absolute;
	inset: 0;
	left: 50%;
	z-index: -2;
	width: 100vw;
	height: 100%;
	transform: translateX(-50%);
}

.owl-news-single-footer-banner-image,
.owl-news-single-footer-banner-image .elementor-widget-container,
.owl-news-single-footer-banner-image :is(img, picture) {
	display: block;
	height: 100%;
}

.owl-news-single-footer-banner-image img {
	width: 100%;
	object-fit: cover;
	object-position: center center;
}

.owl-news-single-footer-banner-title {
	max-width: 465px;
}

.owl-news-single-footer-banner-button .elementor-button {
	display: inline-flex;
	min-height: 45px;
	align-items: center;
	justify-content: center;
	box-shadow: none;
}

.owl-news-single-footer-banner-button .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	gap: 15px;
}

.owl-news-single-footer-banner-button .elementor-button-icon {
	margin: 0;
	line-height: 0;
}

.owl-news-single-footer-banner-button .elementor-button-icon svg {
	display: block;
	width: 13px;
	height: 20px;
}

.owl-news-single-footer-banner-button .elementor-button-icon svg path {
	fill: currentColor;
}

@media (min-width: 1025px) {
	.owl-news-single-hero-media {
		width: calc(56% + var(--owl-news-single-hero-bleed));
		flex-basis: calc(56% + var(--owl-news-single-hero-bleed));
		margin-right: calc(var(--owl-news-single-hero-bleed) * -1);
	}
}

@media (max-width: 1024px) {
	.owl-news-single-hero-copy {
		max-width: 100%;
	}

	.owl-news-single-hero-media {
		aspect-ratio: 16 / 9;
	}

	.owl-news-single-content,
	.owl-news-single-content .elementor-widget-container {
		font-size: 16px;
	}

	.owl-news-single-content > p:first-of-type,
	.owl-news-single-content .elementor-widget-container > p:first-of-type {
		font-size: 20px;
		line-height: 1.35;
	}

	.owl-news-single-label .elementor-post-info__terms-list-item {
		min-height: 30px;
		font-size: 14px;
	}

	.owl-news-single-footer-banner-button .elementor-button {
		min-height: 40px;
	}
}

/* ==========================================================================
   Browse By Region Loop Item
   ========================================================================== */

.owl-homes-browse-region-tile {
	position: relative;
	aspect-ratio: 1 / 1;
	min-height: 0;
	--min-height: 0;
}

.owl-homes-browse-region-tile::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.4) 80%);
	pointer-events: none;
}

.owl-homes-browse-region-name {
	position: absolute;
	left: 16px;
	right: 16px;
	bottom: 16px;
	z-index: 2;
	margin: 0;
}

.owl-homes-browse-region-tile .owl-homes-browse-region-name .elementor-heading-title {
	margin: 0;
	color: var(--owl-white);
	font-family: var(--owl-text-font);
	font-size: 22px;
	font-weight: 800;
	line-height: 22px;
}

.owl-homes-browse-region-tile.is-clickable {
	cursor: pointer;
}

.owl-homes-browse-region-tile > .e-con {
	height: 100%;
	min-height: 0;
	--min-height: 0;
}

.owl-homes-browse-region-image {
	position: absolute;
	inset: 0;
	z-index: 0;
	margin: 0;
}

.owl-homes-browse-region-image,
.owl-homes-browse-region-image :is(.elementor-widget-container, .elementor-image, picture, a) {
	display: block;
	width: 100%;
	height: 100%;
}

.owl-homes-browse-region-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.owl-homes-browse-region-chevron .elementor-icon-wrapper {
	display: flex;
	justify-content: flex-end;
}

.owl-homes-browse-region-chevron .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 80px;
	background: #fefefd;
}

.owl-homes-browse-region-chevron .elementor-icon svg {
	width: 13px;
	height: 20px;
}

.owl-homes-browse-region-chevron .elementor-icon svg path {
	fill: var(--owl-charcoal);
}

@media (min-width: 1025px) {
	.owl-news-updates-loop-grid .e-loop-item,
	.owl-news-updates-loop-grid .owl-news-updates-card {
		width: 100%;
		max-width: 100%;
	}
}

@media (max-width: 1024px) {
	.owl-development-card__media {
		height: auto;
		aspect-ratio: 7 / 6;
	}

	.owl-development-card__status {
		min-height: 30px;
	}

	.owl-development-card__offer {
		height: 35px;
		min-height: 35px;
		padding: 0 10px;
	}

	.owl-development-card__body {
		padding: 20px;
	}

	.owl-development-card__title {
		margin-bottom: 20px;
	}

	.owl-development-card__location {
		margin-bottom: 20px;
		line-height: normal;
	}

	.owl-development-card__bedrooms {
		align-items: flex-start;
	}

	.owl-development-card__footer {
		padding-top: 0;
	}

	.owl-development-card__price {
		line-height: 22px;
	}

	.owl-news-updates-card {
		min-height: 455px;
	}

	.owl-homes-news-archive-listing .owl-news-updates-card {
		min-height: 0;
	}

	.owl-news-updates-card__media {
		aspect-ratio: 16 / 9;
		min-height: 0;
	}

	.owl-news-updates-card__label-widget .elementor-post-info__terms-list-item {
		min-height: 30px;
		padding: 10px 20px;
	}

	.owl-homes-browse-region-chevron .elementor-icon {
		width: 35px;
		height: 35px;
	}

	.owl-homes-browse-region-chevron .elementor-icon svg {
		width: 13px;
		height: 20px;
	}

	.owl-homes-news-updates-cards .owl-news-updates-loop-grid .elementor-loop-container:not(.owl-news-updates-swiper) {
		display: flex;
		gap: var(--grid-column-gap, 30px);
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.owl-homes-news-updates-cards .owl-news-updates-loop-grid .elementor-loop-container:not(.owl-news-updates-swiper)::-webkit-scrollbar {
		display: none;
	}

	.owl-homes-news-updates-cards .owl-news-updates-loop-grid .elementor-loop-container:not(.owl-news-updates-swiper) > .e-loop-item {
		width: 285px;
		min-width: 285px;
		max-width: 285px;
		flex: 0 0 285px;
		scroll-snap-align: start;
	}

	.owl-news-updates-loop-grid .owl-news-updates-card {
		width: 100%;
		max-width: 100%;
	}

	.owl-homes-news-archive-listing .owl-news-updates-card__footer {
		margin-top: 0 !important;
	}

	.owl-homes-news-updates-cards,
	.owl-homes-browse-region-media {
		width: calc(100% + 20px) !important;
		max-width: none;
		margin-left: -20px;
		flex: 0 0 auto;
	}

	.owl-homes-browse-region-media {
		width: calc(100% + 40px) !important;
		margin-right: -20px;
	}

	.owl-homes-browse-region-grid .elementor-loop-container {
		display: flex;
		gap: 0;
	}

}

/* ==========================================================================
   Development Carousel Responsive Helpers
   ========================================================================== */

@media (max-width: 1024px) {
	.owl-homes-developments-footer .swiper-pagination,
	.owl-homes-development-carousel .swiper-pagination {
		display: none !important;
	}
}

/* ==========================================================================
   Tablet Hero And Header Overrides
   ========================================================================== */

@media (max-width: 1024px) {
	.owl-homes-hero {
		--owl-hero-copy-travel: 520px;
		--owl-hero-copy-scroll-range: 780px;
		height: 100vh;
		height: 100svh;
		min-height: max(100vh, 480px);
		min-height: max(100svh, 480px);
		padding: 140px 0 20px;
	}

	.owl-homes-hero-copy {
		max-width: none;
		width: 100%;
	}

	.owl-homes-hero > .e-con-inner {
		height: 100%;
	}

	.owl-homes-hero-inner {
		height: 100%;
		justify-content: space-between !important;
	}

	/* space-between pins the copy to the very top, which leaves a tall void of
	   empty sky above the rooflines on a portrait screen. The roofline always
	   lands at 58% of the hero height here, so dropping the copy brings it back
	   to roughly the gap the desktop layout has. */
	@media (orientation: portrait) {
		.owl-homes-hero-copy {
			padding-top: 15svh;
		}

		/* Safari's chrome takes roughly 140px out of a phone's viewport, so a
		   real handset is nearer 700svh tall than the 844 the device reports.
		   The hero's own top padding is a fixed 100px, and the headline is a
		   fixed three lines, so only the sky above the roofs shrinks — Jen's
		   iPhone had the third line sitting in the rooftops. Tablets are tall
		   enough to keep the original spacing and are deliberately untouched,
		   because closing the void up there was the previous round's fix. */
		@media (max-height: 850px) {
			.owl-homes-hero-copy {
				padding-top: 4svh;
			}
		}

		/* Smallest iPhones only. There the headline runs to four lines and there
		   simply is not enough sky above the roofs to hold it at any padding, so
		   this is the one place it has to come down a step. Everything Jen sees
		   on a current handset is taller than this and keeps the full 40px.
		   Needs the (0,4,1) selector to beat Elementor's own font CSS, which
		   loads later and is (0,4,0). */
		@media (max-height: 620px) {
			body.home .owl-homes-hero-copy.owl-homes-hero-title .elementor-heading-title {
				font-size: 32px;
			}
		}

		/* The upright frame of the same shot, swapped in as a pair. Both layers
		   are one photograph, so they move together or the scene tears along the
		   roofline — never change one of these two rules on its own.
		   The class is set only when both images exist (inc/hero-images.php);
		   without it an undefined custom property would compute to `none` and
		   blank the hero. */
		.owl-homes-hero-has-portrait .owl-homes-hero {
			background-image: var(--owl-hero-portrait-background-image) !important;
		}

		.owl-homes-hero-has-portrait .owl-homes-hero::after {
			background-image: var(--owl-hero-portrait-foreground-image);
		}
	}

	.owl-homes-hero .owl-homes-hero-search {
		width: 100%;
		margin: 0;
	}

	.owl-homes-search-card {
		width: 100%;
		padding: 15px;
		border-radius: 25px;
	}

	.owl-homes-search-form {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.owl-homes-search-link,
	.owl-homes-search-button {
		width: 100%;
	}

	.owl-homes-search-link .elementor-button,
	.owl-homes-search-button .elementor-button {
		width: 100%;
		min-height: 40px;
	}
}

@media (max-width: 1024px) {
	.owl-has-overlay-header .elementor-location-header {
		position: absolute;
		inset: 0 0 auto;
		z-index: 30;
		background: transparent;
		overflow: visible;
	}

	.elementor-location-header.owl-homes-find-home-open {
		background: var(--owl-cream);
	}

	.elementor-location-header.owl-homes-find-home-open .owl-homes-header-menu-slot {
		display: none !important;
	}

	.elementor-location-header.owl-homes-find-home-open .owl-homes-find-home-toggle .elementor-button {
		min-height: 40px !important;
	}

	.owl-homes-find-home-panel-button .elementor-button {
		min-height: 40px;
	}

	.elementor-location-header.owl-homes-find-home-open .owl-homes-find-home-mega {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		width: 100%;
		z-index: 20;
		background: var(--owl-white);
		box-shadow: none;
	}

	.elementor-location-header.owl-homes-find-home-open .owl-homes-find-home-mega-panel {
		--content-width: 100%;
		--padding-top: 30px;
		--padding-right: 0px;
		--padding-bottom: 20px;
		--padding-left: 0px;
		--gap: 0px 0px;
		--row-gap: 0px;
		--column-gap: 0px;
	}

	.elementor-location-header.owl-homes-find-home-open .owl-homes-find-home-mega-search-column {
		--width: 100%;
		--gap: 10px 10px;
		--row-gap: 10px;
		--column-gap: 10px;
	}

	.elementor-location-header.owl-homes-find-home-open .owl-homes-find-home-panel-form {
		max-width: none;
	}

	.elementor-location-header.owl-homes-find-home-open .owl-homes-find-home-panel-link {
		margin-top: 15px;
	}

	.elementor-location-header.owl-homes-find-home-open .owl-homes-find-home-mega-divider,
	.elementor-location-header.owl-homes-find-home-open .owl-homes-find-home-mega-regions-column {
		display: none !important;
	}
}

.elementor-widget-text-editor > :is(p:last-child, p:last-of-type),
.elementor-widget-text-editor > .elementor-widget-container > :is(p:last-child, p:last-of-type),
.elementor-widget-text-editor > .elementor-widget-container > .elementor-text-editor > :is(p:last-child, p:last-of-type) {
	margin-bottom: 0;
}

/* ==========================================================================
   Mobile Hero And Search Bar Overrides
   ========================================================================== */

@media (max-width: 1024px) {
	.owl-homes-hero {
		height: 100vh;
		height: 100svh;
		min-height: max(100vh, 480px);
		min-height: max(100svh, 480px);
		padding: 100px 0 20px;
	}

	.admin-bar.home .owl-homes-hero {
		height: calc(100vh - 46px);
		height: calc(100svh - 46px);
		min-height: max(calc(100vh - 46px), 480px);
		min-height: max(calc(100svh - 46px), 480px);
	}

	.owl-homes-search-shell {
		margin-top: 0;
	}

	.owl-homes-search-card {
		padding: 10px;
	}

}

/* ==========================================================================
   News Card Category Labels
   ========================================================================== */

.e-loop-item.category-event .owl-news-updates-card .owl-news-updates-card__label-widget .elementor-post-info__terms-list-item {
	background: var(--owl-gold);
	color: var(--owl-charcoal);
}

.e-loop-item.category-event .owl-news-updates-card__excerpt,
.e-loop-item.category-event .owl-news-updates-card__excerpt .elementor-widget-container {
	display: block !important;
	max-height: none;
	line-height: 1.35;
	-webkit-line-clamp: unset;
}

.e-loop-item.category-event .owl-news-updates-card__excerpt-line {
	display: block;
}

.e-loop-item.category-event .owl-news-updates-card__excerpt-line + .owl-news-updates-card__excerpt-line {
	margin-top: 10px;
}

/* ==========================================================================
   Mobile News Card Treatment
   ========================================================================== */

@media (max-width: 1024px) {
	.owl-news-updates-loop-grid .elementor-loop-container.owl-news-updates-swiper {
		display: block;
		width: 100%;
		overflow: hidden;
	}

	.owl-news-updates-loop-grid .owl-news-updates-swiper .swiper-wrapper {
		align-items: stretch;
	}

	.owl-news-updates-loop-grid .owl-news-updates-swiper .swiper-slide {
		display: flex;
		height: auto;
	}
}

/* ==========================================================================
   Tablet Admin Bar Offset
   ========================================================================== */

@media (min-width: 768px) and (max-width: 1024px) {
	.admin-bar.home .owl-homes-hero {
		height: calc(100vh - 32px);
		height: calc(100svh - 32px);
		min-height: max(calc(100vh - 32px), 480px);
		min-height: max(calc(100svh - 32px), 480px);
	}
}

/* ==========================================================================
   Why Choose / Block Grid Slider Helpers
   ========================================================================== */

.owl-homes-why-choose-grid {
	align-items: stretch;
}

.owl-homes-why-choose-grid > .owl-homes-why-choose-card {
	align-self: stretch;
}

.owl-homes-why-choose-card {
	display: flex;
	flex-direction: column;
	align-self: stretch;
	height: 100%;
}

.owl-homes-why-choose-card-body {
	height: auto;
	flex: 1 1 auto;
}

/* Any wrapper works, not just an Elementor container, so the arrow stays pinned
   to the bottom however the module is nested on a given page. */
.owl-homes-why-choose-card-body > .owl-homes-why-choose-card-chevron,
.owl-homes-why-choose-card-body > :has(.owl-homes-why-choose-card-chevron) {
	margin-top: auto;
}

.owl-homes-why-choose-card-image {
	height: 250px;
}

.owl-homes-why-choose-card-chevron .elementor-icon-wrapper {
	display: flex;
	justify-content: flex-end;
}

.owl-homes-why-choose-card-chevron .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 80px;
	background: #fefefd;
}

.owl-homes-why-choose-card-chevron .elementor-icon svg {
	width: 13px;
	height: 20px;
}

.owl-homes-why-choose-card-chevron .elementor-icon svg path {
	fill: var(--owl-charcoal);
}

.owl-homes-customer-stories {
	overflow: hidden;
}

@media (min-width: 1025px) {
	.owl-homes-customer-stories-copy {
		padding-right: max(
			var(--owl-container-gutter),
			calc(((100vw - var(--owl-container-width)) / 2) + var(--owl-container-gutter))
		);
	}

	.owl-homes-customer-stories-image {
		position: relative;
	}

	.owl-homes-customer-stories-image .owl-homes-customer-stories-image-asset {
		position: absolute;
		inset: 0;
	}
}

.owl-homes-customer-stories .owl-homes-customer-stories-quote .elementor-heading-title,
.owl-homes-customer-stories .owl-homes-customer-stories-attribution .elementor-heading-title {
	transition: opacity 0.18s ease, transform 0.18s ease;
}

.owl-homes-customer-stories .owl-homes-customer-stories-quote.elementor-widget-heading .elementor-heading-title.elementor-heading-title {
	line-height: 1.3;
}

.owl-homes-customer-stories.is-transitioning .owl-homes-customer-stories-quote .elementor-heading-title,
.owl-homes-customer-stories.is-transitioning .owl-homes-customer-stories-attribution .elementor-heading-title {
	opacity: 0;
	transform: translateY(6px);
}

.owl-homes-customer-stories-carousel {
	position: relative;
	display: flex;
	flex: 0 0 auto;
	flex-direction: column;
	min-height: 0;
}

.owl-homes-customer-stories-carousel > :is(.swiper, .swiper-container),
.owl-homes-customer-stories-carousel > .elementor-widget-container > :is(.swiper, .swiper-container) {
	width: 100%;
	padding-bottom: 0 !important;
}

.owl-homes-customer-stories-carousel .swiper,
.owl-homes-customer-stories-carousel .elementor-loop-container {
	overflow: hidden;
}

.owl-homes-customer-stories-carousel .swiper-slide,
.owl-homes-customer-stories-carousel .e-loop-item {
	height: auto;
}

.owl-homes-customer-stories-carousel .swiper-pagination {
	position: static;
	left: auto;
	top: auto;
	align-self: flex-end;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	width: auto;
	margin-top: 110px;
	line-height: 0;
	transform: none;
	z-index: 5;
}

.owl-homes-customer-stories-carousel .swiper-pagination-bullet {
	width: 15px;
	height: 15px;
	margin: 0 !important;
	border: 1px solid var(--owl-white);
	border-radius: 50%;
	background: transparent;
	opacity: 1;
}

.owl-homes-customer-stories-carousel .swiper-pagination-bullet-active {
	background: var(--owl-white);
}

@media (min-width: 1300px) {
	.owl-homes-customer-stories-copy:has(.swiper-pagination) .owl-homes-trustpilot--testimonial {
		margin-top: -28px;
	}
}

@media (min-width: 1025px) and (max-width: 1299px) {
	.owl-homes-customer-stories-copy:has(.swiper-pagination) .owl-homes-customer-stories-carousel .swiper-pagination {
		margin-top: 40px;
	}

	.owl-homes-customer-stories-copy:has(.swiper-pagination) .owl-homes-trustpilot--testimonial {
		margin-top: 40px;
	}
}

@media (min-width: 1025px) {
	.owl-homes-customer-stories-copy:not(:has(.swiper-pagination)) .owl-homes-customer-stories-footer {
		margin-top: -28px;
	}

	.owl-homes-customer-stories-copy:not(:has(.swiper-pagination)) .owl-homes-customer-stories-footer > * {
		justify-content: flex-end;
	}
}

.owl-homes-customer-stories-dots > .e-con {
	cursor: pointer;
	width: 15px;
	min-width: 15px;
	max-width: 15px;
	height: 15px;
	min-height: 15px;
	max-height: 15px;
	padding: 0;
	border: 1px solid var(--owl-white);
	border-radius: 50%;
	background: transparent;
}

.owl-homes-customer-stories-dots > .e-con.is-active {
	background: var(--owl-white);
}

.owl-homes-customer-stories-footer {
	margin-top: auto;
}

@media (max-width: 1024px) {
	.owl-homes-customer-stories-image {
		aspect-ratio: 1 / 1;
		height: auto;
		min-height: 0;
	}

	.owl-homes-customer-stories-copy {
		padding-left: 40px;
		padding-right: 40px;
	}

	.owl-homes-customer-stories .owl-homes-trustpilot--testimonial {
		width: calc(100% + 40px) !important;
		max-width: none !important;
		margin-left: -20px;
		margin-top: 30px;
	}

	.owl-homes-customer-stories-copy:has(.swiper-pagination) {
		position: relative;
		padding-bottom: 85px;
	}

	.owl-homes-customer-stories-copy:has(.swiper-pagination) .owl-homes-customer-stories-carousel {
		position: static;
	}

	.owl-homes-customer-stories-carousel .swiper-pagination {
		position: absolute;
		right: 20px;
		bottom: 40px !important;
		left: auto;
		top: auto;
		margin-top: 0;
	}

	.owl-homes-customer-stories-footer {
		margin-top: 30px;
	}

	.owl-homes-customer-stories-copy:not(:has(.swiper-pagination)) {
		min-height: 0 !important;
		padding-bottom: 40px;
	}
}

@media (max-width: 1024px) {
	.owl-homes-why-choose-grid {
		flex-wrap: nowrap;
		justify-content: flex-start;
		overflow-x: auto;
		overflow-y: visible;
		scroll-snap-type: x proximity;
		scroll-padding-left: 20px;
		scroll-padding-right: 20px;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding-left: 0;
		padding-right: 0;
		box-sizing: border-box;
		cursor: grab;
		touch-action: pan-y;
	}

	.owl-homes-why-choose-grid.is-dragging {
		cursor: grabbing;
		scroll-snap-type: none;
	}

	.owl-homes-why-choose-grid.is-dragging * {
		user-select: none;
		-webkit-user-select: none;
	}

	.owl-homes-why-choose-grid > .owl-homes-why-choose-card {
		width: 70vw !important;
		min-width: 70vw !important;
		max-width: 70vw !important;
		flex: 0 0 70vw;
		scroll-snap-align: start;
	}

	@media (min-width: 601px) {
		.owl-homes-why-choose-grid > .owl-homes-why-choose-card {
			width: 45vw !important;
			min-width: 45vw !important;
			max-width: 45vw !important;
			flex: 0 0 45vw;
		}
	}

	.owl-homes-why-choose-grid > .owl-homes-why-choose-card:first-child {
		margin-left: 20px;
	}

	.owl-homes-why-choose-grid > .owl-homes-why-choose-card:last-child {
		margin-right: 20px;
	}

	.owl-homes-why-choose-grid::-webkit-scrollbar {
		display: none;
	}

	.owl-homes-why-choose-grid.owl-homes-why-choose-swiper {
		display: block !important;
		overflow: hidden !important;
		scroll-snap-type: none !important;
		scroll-padding-left: 0 !important;
		scroll-padding-right: 0 !important;
		cursor: auto !important;
	}

	.owl-homes-why-choose-grid.owl-homes-why-choose-swiper .swiper-wrapper {
		align-items: stretch;
	}

	.owl-homes-why-choose-grid.owl-homes-why-choose-swiper .swiper-slide {
		display: flex;
		flex: 0 0 auto !important;
		height: auto;
		align-items: stretch;
	}

	.owl-homes-why-choose-grid.owl-homes-why-choose-swiper .swiper-slide.owl-homes-why-choose-card {
		min-width: 0 !important;
		max-width: none !important;
	}

	.owl-homes-why-choose-grid.owl-homes-why-choose-swiper .swiper-slide > .owl-homes-why-choose-card {
		width: 100%;
		min-width: 0 !important;
		max-width: none !important;
		flex: 1 1 auto;
		height: 100%;
	}

	.owl-homes-why-choose-card-body {
		height: auto;
	}

	.owl-homes-why-choose-card-image {
		height: auto;
		aspect-ratio: 3 / 2;
	}

	.owl-homes-why-choose-card-chevron .elementor-icon {
		width: 35px;
		height: 35px;
	}

	.owl-homes-why-choose-card-chevron .elementor-icon svg {
		width: 13px;
		height: 20px;
	}

	.owl-homes-customer-stories-carousel .swiper-pagination {
		margin-top: 30px;
	}
}

/* ==========================================================================
   Browse By Region Dynamic Dots
   ========================================================================== */

.owl-homes-browse-region .owl-homes-browse-region-dots {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 10px;
	width: 100%;
	margin: 0;
}

.owl-homes-browse-region .owl-homes-browse-region-dot {
	display: block;
	appearance: none;
	-webkit-appearance: none;
	width: 15px;
	min-width: 15px;
	max-width: 15px;
	height: 15px;
	min-height: 15px;
	max-height: 15px;
	padding: 0;
	border: 1px solid var(--owl-charcoal);
	border-radius: 50%;
	background: transparent;
	box-shadow: none;
	cursor: pointer;
}

.owl-homes-browse-region .owl-homes-browse-region-dot.is-active {
	background: var(--owl-charcoal);
}

.owl-homes-browse-region .owl-homes-browse-region-dot:hover,
.owl-homes-browse-region .owl-homes-browse-region-dot:focus {
	background: transparent;
	border-color: var(--owl-charcoal);
	box-shadow: none;
}

.owl-homes-browse-region .owl-homes-browse-region-dot.is-active:hover,
.owl-homes-browse-region .owl-homes-browse-region-dot.is-active:focus {
	background: var(--owl-charcoal);
}

.owl-homes-browse-region .owl-homes-browse-region-dot:focus-visible {
	outline: 2px solid var(--owl-charcoal);
	outline-offset: 3px;
}

@media (max-width: 1024px) {
	.owl-homes-browse-region .owl-homes-browse-region-dots {
		display: none;
	}
}

/* ==========================================================================
   Footer Call To Action Banner
   ========================================================================== */

.owl-homes-footer-cta {
	position: relative;
	overflow: hidden;
}

.owl-homes-footer-cta::before {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(284deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.4) 69.35%);
	content: "";
	pointer-events: none;
}

.owl-homes-footer-cta > .e-con-inner,
.owl-homes-footer-cta__inner {
	position: relative;
	z-index: 2;
}

@media (max-width: 1024px) {
	.owl-homes-footer-cta__inner .e-con-full {
		padding-left: 20px;
		padding-right: 20px;
	}
}

.owl-footer-call-to-action {
	--owl-footer-cta-media-height: 360px;
	overflow: hidden;
}

.owl-footer-call-to-action__inner {
	width: 100% !important;
	max-width: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.owl-footer-call-to-action__copy {
	padding-left: max(var(--owl-container-gutter), calc((100vw - var(--owl-container-width)) / 2 + var(--owl-container-gutter))) !important;
}

.owl-footer-call-to-action__media {
	position: relative;
	align-self: stretch;
	min-height: var(--owl-footer-cta-media-height);
}

.owl-footer-call-to-action__image,
.owl-footer-call-to-action__image .elementor-widget-container,
.owl-footer-call-to-action__image img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
}

.owl-footer-call-to-action__image img {
	object-fit: cover;
	object-position: center center;
}

.owl-footer-call-to-action__button .elementor-button,
.owl-footer-call-to-action__button .elementor-button:hover,
.owl-footer-call-to-action__button .elementor-button:focus {
	background: var(--owl-white);
	color: var(--owl-charcoal);
}

@media (max-width: 1024px) {
	.owl-footer-call-to-action {
		--owl-footer-cta-media-height: 260px;
	}

	.owl-footer-call-to-action__inner {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.owl-footer-call-to-action__copy {
		padding-left: var(--owl-container-gutter) !important;
		padding-right: var(--owl-container-gutter) !important;
	}
}

/* ==========================================================================
   Global Footer
   ========================================================================== */

body.wp-child-theme-owl-homes-child .elementor-location-footer .owl-footer-contact-row {
	min-height: 35px;
	align-items: center;
}

body.wp-child-theme-owl-homes-child .elementor-location-footer .owl-footer-contact-icon {
	width: auto;
	line-height: 0;
}

body.wp-child-theme-owl-homes-child .elementor-location-footer .owl-footer-contact-icon .elementor-icon {
	display: inline-flex;
	width: 16px;
	height: 16px;
	align-items: center;
	justify-content: center;
	color: var(--owl-gold);
	font-size: 16px;
	line-height: 1;
}

body.wp-child-theme-owl-homes-child .elementor-location-footer .owl-footer-contact-icon .elementor-icon svg {
	display: block;
	width: 16px;
	height: 16px;
	fill: currentColor;
}

body.wp-child-theme-owl-homes-child .elementor-location-footer .owl-footer-contact-icon .elementor-icon svg path {
	fill: currentColor;
}

:is(.owl-footer-contact-icon, .owl-contact-detail-icon) svg.e-fas-phone {
	transform: scaleX(-1);
}

body.wp-child-theme-owl-homes-child .elementor-location-footer .owl-footer-contact-text .elementor-heading-title {
	margin: 0;
	line-height: 35px;
}

body.wp-child-theme-owl-homes-child .elementor-location-footer .owl-footer-socials {
	align-items: center;
}

body.wp-child-theme-owl-homes-child .elementor-location-footer .owl-footer-social-icon {
	width: auto;
	line-height: 0;
}

body.wp-child-theme-owl-homes-child .elementor-location-footer .elementor-widget-icon.owl-footer-social-icon.elementor-view-stacked .elementor-icon {
	display: inline-flex;
	width: 36px;
	height: 36px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--owl-gold);
	color: var(--owl-charcoal);
	font-size: 16px;
	line-height: 1;
}

body.wp-child-theme-owl-homes-child .elementor-location-footer .owl-footer-social-icon .elementor-icon svg {
	display: block;
	width: 16px;
	height: 16px;
	fill: currentColor;
}

body.wp-child-theme-owl-homes-child .elementor-location-footer .owl-footer-social-icon .elementor-icon svg path {
	fill: currentColor;
}

/* ==========================================================================
   Contact Form / Ninja Forms Overrides
   ========================================================================== */

.owl-homes-contact-form .nf-form-cont {
	margin: 0;
}

.owl-homes-contact-form :is(.nf-form-layout, .nf-before-form-content, .nf-after-form-content, .nf-form-content) {
	margin: 0;
	padding: 0;
}

.owl-homes-contact-form .nf-form-fields-required {
	display: none;
}

.owl-homes-contact-form .nf-field-container {
	margin-bottom: 16px;
}

.owl-homes-contact-form .nf-field-label {
	margin-bottom: 10px;
}

.owl-homes-contact-form :is(.nf-field-label label, .nf-field-description, .nf-error-msg, .ninja-forms-req-symbol) {
	font-family: "nexa-text", sans-serif;
}

.owl-homes-contact-form .nf-field-label label {
	color: var(--owl-charcoal);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.4;
	padding: 0;
}

.owl-homes-contact-form .nf-field-element input[type="text"],
.owl-homes-contact-form .nf-field-element input[type="email"],
.owl-homes-contact-form .nf-field-element input[type="tel"],
.owl-homes-contact-form .nf-field-element input[type="url"],
.owl-homes-contact-form .nf-field-element input[type="number"],
.owl-homes-contact-form .nf-field-element input[type="password"],
.owl-homes-contact-form .nf-field-element select,
.owl-homes-contact-form .nf-field-element textarea {
	width: 100%;
	min-height: 60px;
	border: 1px solid var(--owl-line);
	border-radius: 100px;
	background: var(--owl-white);
	box-shadow: none;
	color: var(--owl-charcoal);
	font-family: "nexa-text", sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.4;
	padding: 18px 20px;
}

.owl-homes-contact-form .nf-field-element select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background-image: url("../img/contact-chevron-down.svg");
	background-position: calc(100% - 18px) 50%;
	background-size: 18px 18px;
	background-repeat: no-repeat;
	padding-right: 44px;
}

.owl-homes-contact-form .nf-field-element textarea {
	min-height: 195px;
	border-radius: 15px;
	resize: vertical;
}

.owl-homes-contact-form :is(.checkbox-wrap, .checkbox-container, .nf-field-container.checkbox-container) {
	margin-top: 10px;
	margin-bottom: 24px;
}

.owl-homes-contact-form :is(.checkbox-wrap, .checkbox-container) .nf-field,
.owl-homes-contact-form .nf-field-container.checkbox-container > .nf-field {
	width: 100%;
}

.owl-homes-contact-form :is(.checkbox-wrap, .checkbox-container, .nf-field-container.checkbox-container) .nf-field-wrap {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	column-gap: 15px;
	row-gap: 10px;
	width: 100%;
}

.owl-homes-contact-form :is(.checkbox-wrap, .checkbox-container, .nf-field-container.checkbox-container) .nf-field-element {
	order: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 25px;
	margin: 0 !important;
}

.owl-homes-contact-form :is(.checkbox-wrap, .checkbox-container, .nf-field-container.checkbox-container) .nf-field-label {
	order: 2;
	flex: 1 1 calc(100% - 40px);
	margin: 0 !important;
}

.owl-homes-contact-form :is(.checkbox-wrap, .checkbox-container, .nf-field-container.checkbox-container) .nf-field-label :is(label, .nf-label-span) {
	color: var(--owl-charcoal);
	font-family: "nexa-text", sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	padding: 0;
	margin: 0;
}

.owl-homes-contact-form :is(.checkbox-wrap, .checkbox-container, .nf-field-container.checkbox-container) .nf-field-element input {
	width: 25px;
	height: 25px;
	min-width: 25px;
	margin: 0;
	border: 1px solid var(--owl-line);
	border-radius: 50% !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	background: var(--owl-white);
	box-shadow: none;
	display: block;
	position: relative;
	cursor: pointer;
	outline: none;
}

.owl-homes-contact-form :is(.checkbox-wrap, .checkbox-container, .nf-field-container.checkbox-container) .nf-field-element input:checked {
	background-color: var(--owl-gold);
	border-color: var(--owl-gold);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='9' viewBox='0 0 12 9' fill='none'%3E%3Cpath d='M1 4.5L4.25 7.75L11 1' stroke='white' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat !important;
	background-position: center center !important;
	background-size: 12px 9px !important;
}

.owl-homes-contact-form :is(.checkbox-wrap, .checkbox-container, .nf-field-container.checkbox-container) .nf-error-wrap {
	order: 3;
	flex: 0 0 100%;
	width: 100%;
	margin: 0;
	padding-left: 40px;
}

.owl-homes-contact-form .nf-field-container.checkbox-container > .nf-error-wrap,
.owl-homes-contact-form .nf-field-container.checkbox-container > .nf-after-field,
.owl-homes-contact-form .nf-field-container.checkbox-container > .nf-after-field .nf-error-wrap {
	display: block;
	width: calc(100% - 40px);
	margin: 10px 0 0 40px;
	padding: 0;
}

.owl-homes-contact-form :is(.checkbox-wrap, .checkbox-container) .nf-error-msg,
.owl-homes-contact-form .nf-field-container.checkbox-container :is(.nf-error-wrap, .nf-after-field) .nf-error-msg {
	display: block;
	width: auto;
	max-width: none;
	margin: 0;
	white-space: nowrap;
	word-break: normal;
	overflow-wrap: normal;
}

.owl-homes-contact-form .submit-wrap :is(input[type="button"], input[type="submit"]) {
	width: auto;
	min-height: 45px;
	padding: 10px 45px 10px 20px;
	border: 0;
	border-radius: 100px;
	background-color: var(--owl-gold);
	background-image: url("../img/chevron-right-charcoal.svg");
	/* ⚠️ NOT positioned from the centre. `calc(50% + 42px)` was measured against
	   the word "Submit"; the moment the label changes to "Processing" the button
	   grows, the centre moves, and the chevron lands on top of the text — spotted
	   by Aaron 2026-08-19. Anchored to the right edge it holds for any label. */
	background-position: right 20px center;
	background-repeat: no-repeat;
	background-size: 10px 18px;
	box-shadow: none;
	color: var(--owl-charcoal);
	font-family: "nexa-text", sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.25;
	cursor: pointer;
}

.owl-homes-contact-form .submit-wrap :is(input[type="button"], input[type="submit"]):is(:hover, :focus) {
	background-color: var(--owl-gold);
	background-image: url("../img/chevron-right-charcoal.svg");
	/* ⚠️ NOT positioned from the centre. `calc(50% + 42px)` was measured against
	   the word "Submit"; the moment the label changes to "Processing" the button
	   grows, the centre moves, and the chevron lands on top of the text — spotted
	   by Aaron 2026-08-19. Anchored to the right edge it holds for any label. */
	background-position: right 20px center;
	color: var(--owl-charcoal);
}

/* ==========================================================================
   Page hero overlays
   ========================================================================== */

.owl-homes-about-hero,
.owl-developments-hero {
	position: relative;
	isolation: isolate;
}

.owl-homes-about-hero::after,
.owl-developments-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(0, 0, 0, 0.35);
	pointer-events: none;
}

/* ============= Contact form + details (portable — scoped to component classes, not a page id) ============= */
.owl-homes-contact-form .ninja-forms-req-symbol {
	display: none;
}
.owl-homes-contact-form .nf-element[type="submit"] {
	background-position: calc(50% + 38px) center;
	padding-right: 40px;
}
.owl-homes-contact-form select.ninja-forms-field:has(option:checked:not([value=""])) {
	font-weight: 800;
}
.owl-contact-detail-icon .elementor-icon {
	width: 40px;
	height: 40px;
	border: 2px solid var(--owl-gold);
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.owl-homes-trustpilot {
	max-width: 100%;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	white-space: nowrap;
	word-wrap: normal;
}

a.screen-reader-text:focus {
	top: 10px;
	left: 10px;
	z-index: 100000;
	width: auto;
	height: auto;
	margin: 0;
	padding: 15px 25px;
	overflow: visible;
	clip: auto;
	clip-path: none;
	background-color: var(--owl-white);
	border: 2px solid var(--owl-gold);
	border-radius: 4px;
	color: var(--owl-ink);
	font-family: var(--owl-text-font);
	font-size: 16px;
	font-weight: 700;
	line-height: normal;
	text-decoration: none;
}

/* ============================================================================
   Process Timeline — native Elementor build (client edits widgets + step
   containers; numbering, circles, connector lines and arrows are automatic).
   ============================================================================ */
.owl-timeline {
	display: grid;
	grid-template-columns: minmax(0, 390px) minmax(0, 1fr);
	gap: 60px;
	align-items: start;
	padding-left: max(20px, calc((100% - 1250px) / 2 + 20px)) !important;
	padding-right: 0 !important;
}

.e-con.owl-timeline > .e-con-inner {
	display: contents;
}

.owl-timeline__nav {
	display: flex;
	gap: 15px;
	margin-top: 30px;
}

.owl-timeline__arrow {
	position: relative;
	width: 50px;
	height: 50px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--owl-charcoal);
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: opacity 0.2s ease;
}

.owl-timeline__arrow:hover,
.owl-timeline__arrow:focus,
.owl-timeline__arrow:active {
	background: var(--owl-charcoal);
	box-shadow: none;
	outline: none;
}

.owl-timeline__arrow::before {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 10px;
	height: 10px;
	border-top: 2px solid var(--owl-white);
	border-right: 2px solid var(--owl-white);
}

.owl-timeline__prev::before {
	transform: translateX(3px) rotate(-135deg);
}

.owl-timeline__next::before {
	transform: translateX(-3px) rotate(45deg);
}

.owl-timeline__arrow:disabled {
	opacity: 0.35;
	cursor: default;
}

.owl-timeline__track {
	counter-reset: owl-tl;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-right: 20px;
	scrollbar-width: none;
	padding-right: 20px !important;
	flex-wrap: nowrap !important;
}

.owl-timeline__track::-webkit-scrollbar {
	display: none;
}

.owl-timeline__track > .e-con {
	counter-increment: owl-tl;
	flex: 0 0 280px !important;
	position: relative;
	text-align: center;
	align-items: center;
	scroll-snap-align: end;
}

.owl-timeline__track > .e-con::before {
	content: counter(owl-tl, decimal-leading-zero);
	order: -1;
	position: static !important;
	inset: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 100px;
	height: 100px;
	margin: 0 auto 30px;
	border: 2px solid var(--owl-gold);
	border-radius: 50%;
	font-family: var(--owl-display-font);
	font-weight: 400;
	font-size: 50px;
	color: var(--owl-gold);
	line-height: 1;
}

.owl-timeline__track > .e-con:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 50px;
	left: calc(50% + 70px);
	width: calc(100% - 100px);
	height: 1px;
	background: var(--owl-line);
}

@media (max-width: 1024px) {
	.owl-timeline {
		grid-template-columns: 1fr;
		gap: 40px;
		padding-left: 0 !important;
	}

	.owl-timeline__intro {
		padding-left: 20px;
		padding-right: 20px;
	}

	.owl-timeline__track {
		padding-left: 20px;
	}

	.owl-timeline__nav {
		display: none;
	}

	.owl-timeline__track > .e-con {
		flex-basis: 210px !important;
		text-align: left;
		align-items: flex-start;
	}

	.owl-timeline__track > .e-con::before {
		width: 70px;
		height: 70px;
		font-size: 36px;
		margin: 0 0 24px;
	}

	.owl-timeline__track > .e-con:not(:last-child)::after {
		top: 35px;
		left: 90px;
		width: calc(100% - 70px);
	}
}

/*
 * Editor only: wrap the timeline so every step can be clicked.
 *
 * On the front end the track is a horizontal scroller. Inside the Elementor
 * canvas that leaves it 700px wide against a 1990px scroll width, so steps four
 * onwards render outside the preview entirely and cannot be selected. The
 * connector line is hidden here because it only reads correctly on one row.
 */
body.elementor-editor-active .owl-timeline__track {
	overflow-x: visible;
	flex-wrap: wrap !important;
	scroll-snap-type: none;
}

body.elementor-editor-active .owl-timeline__track > .e-con:not(:last-child)::after {
	display: none;
}

/*
 * The cream header that goes with dark header text.
 *
 * owl-header-dark-text means "dark text on a light header", and it is set on
 * articles, home hub resources, plots and the 404 as well as on pages. Scoping the
 * background to body.page left those four with dark text on white, which is why the
 * article header did not match the design.
 */
body.owl-header-dark-text:not(.owl-has-overlay-header) .elementor-location-header {
	background-color: var(--owl-cream);
}

/* ==========================================================================
   Re-usable Content Blocks — split hero (Figma 760:18003)
   ========================================================================== */
.owl-reusable-hero {
	display: flex;
	align-items: stretch;
	min-height: 624px;
	background-color: var(--owl-cream);
}

@media (max-width: 1024px) {
	.owl-reusable-hero {
		flex-direction: column;
	}
}

.e-con.owl-bleed-media {
	position: relative;
}

.e-con.owl-bleed-media__img {
	position: absolute;
	inset: 0 0 0 auto;
	width: 48vw;
}

.owl-bleed-media--left .owl-bleed-media__img {
	inset: 0 auto 0 0;
}

@media (max-width: 1024px) {
	.e-con.owl-bleed-media__img,
	.owl-bleed-media--left .owl-bleed-media__img {
		position: relative;
		inset: auto;
		width: 100%;
	}
}

/*
 * Give the hero copy room on every side, on every hero.
 *
 * The copy carries no padding of its own, so the space around it is only
 * whatever min-height leaves spare. That is generous on a tall window and gone
 * entirely on a short one: measured at 1440 wide, the gap above the headline
 * fell from 212px at 1080 tall to 8px at 600 and 0px at 550, with the headline
 * against the header and the body against the next section.
 *
 * Sideways it is the same story horizontally. The copy sits in a boxed 1250
 * container, so its gutter is what is left after centring plus 20px: 108px at
 * 1440, 28px at 1280, 20px at 1200 and under.
 *
 * Both rules are floors. They add nothing once min-height or the centring
 * already clears 60px, so tall and wide screens are untouched. Mobile keeps the
 * site standard, which is why this is scoped above the breakpoint.
 *
 * The vertical padding goes on the hero's own child rather than the hero, so it
 * cannot inset the absolutely positioned bleed image. The three hero variants
 * differ inside (boxed with image, boxed alone, full width), so it is matched by
 * "any direct child that is not the image".
 */
@media (min-width: 1025px) {
	.e-con.owl-bleed-media > .e-con:not(.owl-bleed-media__img) {
		padding-top: 60px;
		padding-bottom: 60px;
	}

	.e-con.owl-bleed-media > .e-con:not(.owl-bleed-media__img) > .e-con-inner > .e-con {
		padding-left: max(20px, calc(60px - max(0px, (100vw - 1250px) / 2)));
	}
}

.owl-gallery {
	position: relative;
}

.owl-gallery .elementor-image-carousel-wrapper {
	border-radius: 15px;
	overflow: hidden;
	padding-bottom: 0 !important;
	cursor: grab;
}

.owl-gallery .elementor-image-carousel-wrapper:active {
	cursor: grabbing;
}

.owl-gallery .swiper-slide img {
	display: block;
	aspect-ratio: 600 / 401;
	object-fit: cover;
	width: 100%;
}

.owl-gallery .elementor-swiper-button {
	display: flex;
	top: 50%;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	border-radius: 100px;
	background: var(--owl-charcoal);
}

.owl-gallery .elementor-swiper-button i,
.owl-gallery .elementor-swiper-button svg {
	display: none;
}

.owl-gallery .elementor-swiper-button::before {
	content: "";
	width: 12px;
	height: 22px;
	background: var(--owl-white);
	-webkit-mask: url("../img/owl-gallery-chevron.svg") center / contain no-repeat;
	mask: url("../img/owl-gallery-chevron.svg") center / contain no-repeat;
}

.owl-gallery .elementor-swiper-button-next::before {
	transform: rotate(180deg);
}

.owl-gallery .elementor-swiper-button-prev {
	left: 0 !important;
	right: auto !important;
	transform: translate(-50%, -50%) !important;
}

.owl-gallery .elementor-swiper-button-next {
	right: 0 !important;
	left: auto !important;
	transform: translate(50%, -50%) !important;
}

.owl-gallery__controls {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	margin-top: 12px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.owl-gallery__controls .swiper-pagination {
	position: static;
	display: flex;
	align-items: center;
	width: auto;
	margin: 0;
}

.owl-gallery .swiper-pagination-bullet {
	width: 12px;
	height: 12px;
	margin: 0 8px 0 0;
	border: 1px solid var(--owl-charcoal);
	background: transparent;
	opacity: 1;
}

.owl-gallery .swiper-pagination-bullet-active {
	background: var(--owl-charcoal);
}

.owl-gallery__count {
	color: #767676;
	font-family: var(--owl-text-font);
	font-size: 16px;
	line-height: 1;
}

@media (min-width: 1025px) {
	.owl-gallery__controls {
		justify-content: flex-end;
	}

	.owl-gallery__controls .swiper-pagination {
		display: none;
	}
}

@media (max-width: 1024px) {
	.owl-gallery .elementor-swiper-button {
		display: none !important;
	}
}

.owl-gallery-carousel {
	position: relative;
	--gcm-slide: min(813px, calc(100vw - 94px));
	--gcm-half: calc(var(--gcm-slide) / 2);
}

.owl-gallery-carousel .elementor-image-carousel-wrapper,
.owl-gallery-carousel .swiper {
	overflow: visible;
	cursor: grab;
}

.owl-gallery-carousel .swiper:active {
	cursor: grabbing;
}

.owl-gallery-carousel .swiper-slide {
	width: var(--gcm-slide) !important;
	aspect-ratio: 813 / 520;
	border-radius: 15px;
	overflow: hidden;
	background: #f2edd9;
}

@media (max-width: 1024px) {
	.owl-gallery-carousel .swiper-slide {
		aspect-ratio: 296 / 199;
	}

	.owl-gallery-carousel .elementor-swiper-button {
		display: none !important;
	}
}

.owl-gallery-carousel .swiper-slide figure,
.owl-gallery-carousel .swiper-slide .swiper-slide-inner {
	position: relative;
	height: 100%;
	margin: 0;
}

.owl-gallery-carousel .swiper-slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.owl-gallery-carousel .elementor-image-carousel-caption {
	position: absolute;
	left: 20px;
	bottom: 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 17px;
	border-radius: 100px;
	backdrop-filter: blur(5px);
	background: rgba(255, 255, 255, 0.7);
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 16px;
	font-style: normal;
	font-weight: 400;
	line-height: 1;
}

.owl-gallery-carousel .elementor-swiper-button {
	display: flex;
	top: 50%;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	border-radius: 100px;
	background: var(--owl-charcoal);
}

.owl-gallery-carousel .elementor-swiper-button i,
.owl-gallery-carousel .elementor-swiper-button svg {
	display: none;
}

.owl-gallery-carousel .elementor-swiper-button::before {
	content: "";
	width: 12px;
	height: 22px;
	background: var(--owl-white);
	-webkit-mask: url("../img/owl-gallery-chevron.svg") center / contain no-repeat;
	mask: url("../img/owl-gallery-chevron.svg") center / contain no-repeat;
}

.owl-gallery-carousel .elementor-swiper-button-prev {
	left: calc(50% - var(--gcm-half)) !important;
	right: auto !important;
	transform: translate(-50%, -50%) !important;
}

.owl-gallery-carousel .elementor-swiper-button-next {
	left: calc(50% + var(--gcm-half)) !important;
	right: auto !important;
	transform: translate(-50%, -50%) !important;
}

.owl-gallery-carousel .elementor-swiper-button-next::before {
	transform: rotate(180deg);
}

/*
 * Rich text in the article body.
 *
 * The body copy, headings, lists and lead paragraph are already handled above.
 * These two were not: a link rendered identically to body text, and a quote
 * rendered as a plain paragraph, so neither was distinguishable to a reader.
 */
.owl-news-single-content a:not(.owl-article-blocks *) {
	color: var(--owl-gold);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.owl-news-single-content blockquote:not(.owl-article-blocks *) {
	padding-left: 20px;
	border-left: 3px solid var(--owl-gold);
	font-style: italic;
}

/*
 * Headings typed into an article use the text face, not the display face.
 *
 * Ogg is a display serif built for page titles, and it reads as a different voice
 * partway down a news story. The article body is the one place the two sit inches
 * apart, so the headings follow the body copy instead. Blocks are excluded because
 * they carry the library's own typography.
 */
.owl-news-single-content :is(h1, h2, h3, h4, h5, h6):not(.owl-article-blocks *) {
	font-family: var(--owl-text-font);
	/* Matching the standfirst's weight, so the two sans voices in the article
	   read as one family rather than the reset's lighter 500. */
	font-weight: 800;
}

/*
 * Images placed in the editor are rounded to match the rest of the site's imagery.
 */
.owl-news-single-content img:not(.owl-article-blocks *) {
	border-radius: 15px;
}

/*
 * Content blocks appended beneath an article.
 *
 * The blocks bring their own design from the reusable content blocks library, so the
 * only thing needed here is to let them out of the article's reading column and run
 * the full width of the screen as they do on a page. 100vw counts the scrollbar, so
 * the measured width published on <html> is subtracted to avoid a sideways overflow.
 */
.owl-article-blocks {
	--owl-article-bleed: calc(100vw - var(--owl-scrollbar-width, 0px));

	width: var(--owl-article-bleed);
	max-width: var(--owl-article-bleed);
	margin-inline: calc(50% - var(--owl-article-bleed) / 2);
	margin-top: 60px;
}


/* ==========================================================================
   Cookie banner (Complianz)
   Complianz paints the banner from CSS custom properties in its own generated
   stylesheet, which loads after this file, so the variables are overridden here
   rather than the element rules. Values match the site's real button spec:
   gold fill with charcoal text on the primary, nexa 16px/400, 45px tall,
   100px pill, 10px 20px padding.
   ========================================================================== */

:root {
	--cmplz_banner_background_color: #faf8f0 !important;
	--cmplz_banner_border_color: #cfcfcf !important;
	--cmplz_banner_border_width: 1px 1px 1px 1px !important;
	--cmplz_banner_border_radius: 15px 15px 15px 15px !important;

	--cmplz_text_color: #373737 !important;
	--cmplz_hyperlink_color: #c1a01e !important;
	--cmplz_title_font_size: 20px !important;
	--cmplz_text_font_size: 16px !important;
	--cmplz_link_font_size: 14px !important;
	--cmplz_category_body_font_size: 14px !important;
	--cmplz_category_header_title_font_size: 16px !important;

	/* Primary action. Matches the contact form submit, the site's one gold
	   button: gold fill with charcoal text, not white. */
	--cmplz_button_accept_background_color: #c1a01e !important;
	--cmplz_button_accept_border_color: #c1a01e !important;
	--cmplz_button_accept_text_color: #373737 !important;

	/* Secondary actions, outlined on the cream banner. */
	--cmplz_button_deny_background_color: transparent !important;
	--cmplz_button_deny_border_color: #373737 !important;
	--cmplz_button_deny_text_color: #373737 !important;

	--cmplz_button_settings_background_color: transparent !important;
	--cmplz_button_settings_border_color: #373737 !important;
	--cmplz_button_settings_text_color: #373737 !important;

	--cmplz_button_border_radius: 100px 100px 100px 100px !important;
	--cmplz_button_font_size: 16px !important;

	--cmplz_slider_active_color: #c1a01e !important;
	--cmplz_slider_inactive_color: #cfcfcf !important;
	--cmplz_category_header_always_active_color: #c1a01e !important;
}

/* Type and metrics. The plugin has no variables for these. */
.cmplz-cookiebanner,
.cmplz-cookiebanner .cmplz-message,
#cmplz-manage-consent .cmplz-manage-consent {
	font-family: var(--owl-text-font);
	font-weight: 300;
}

.cmplz-cookiebanner .cmplz-title {
	font-family: var(--owl-display-font);
	font-weight: 400;
}

.cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
	font-family: var(--owl-text-font);
	font-weight: 400;
	min-height: 45px;
	padding: 10px 20px;
	line-height: 1;
	transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}

/* Hover inverts to charcoal, the same move the load more buttons make. */
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:hover,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:focus {
	background-color: var(--owl-charcoal);
	border-color: var(--owl-charcoal);
	color: var(--owl-white);
}

.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:hover,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:focus,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences:hover,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences:focus,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences:hover,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences:focus {
	background-color: var(--owl-charcoal);
	border-color: var(--owl-charcoal);
	color: var(--owl-white);
}

.cmplz-cookiebanner .cmplz-links .cmplz-link:hover {
	color: var(--owl-charcoal);
}

.cmplz-cookiebanner .cmplz-categories .cmplz-category {
	background-color: var(--owl-white);
	border: 1px solid var(--owl-line);
	border-radius: 10px;
}

/*
 * Links typed into body copy on a page.
 *
 * The article body already styles these, but the same link typed into a
 * WYSIWYG content block rendered identically to the text around it, so a
 * reader could not tell it was a link. Only unclassed links are targeted:
 * menus, buttons, cards and cookie controls all carry their own class and
 * keep the styling they were given.
 */
/* ⚠️ Contact links are excluded. This rule is for links inside running text,
   where gold + underline is the only thing marking them as links. The contact
   details blocks sit inside a text editor widget, so they were picking this up
   and rendering gold and underlined against a Figma design (node 597-10262) that
   draws them charcoal with no underline and only the icon in gold. Excluding
   them here rather than fighting it with a more specific rule further down. */
.owl-homes-wysiwyg-centre a:not([class]):not([href^="tel:"]):not([href^="mailto:"]),
.owl-homes-intro-body a:not([class]):not([href^="tel:"]):not([href^="mailto:"]),
.elementor-widget-text-editor a:not([class]):not([href^="tel:"]):not([href^="mailto:"]) {
	color: var(--owl-gold-deep);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/*
 * Bold typed into body copy.
 *
 * nexa-text ships 400, 500 and 700 only. Body copy asks for 300, which the
 * browser renders with the 400 face, and <strong> defaults to `bolder`, which
 * from 300 resolves to 400. So bold was being drawn with the identical font
 * file as the text around it and made no visible difference whatsoever.
 *
 * 700 is a real weight in the kit, so this is a genuine bold rather than a
 * synthesised one.
 *
 * Named surfaces rather than a blanket strong rule. specification_copy is the
 * one ACF wysiwyg that renders outside Elementor, and its toolbar carries a bold
 * button, so bold there saved fine and showed nothing. A site wide rule would
 * also catch theme markup that happens to use strong, such as the 21 house type
 * names in the site plan key, and embolden things nobody asked to change.
 */
.elementor-widget-text-editor strong,
.elementor-widget-text-editor b,
.owl-plot-single-specifications__text strong,
.owl-plot-single-specifications__text b,
.owl-plot-single-specifications__panel strong,
.owl-plot-single-specifications__panel b,
/*
 * News stories and Home Hub guides write their body through the post content
 * widget rather than a text editor, so they were not covered above and bold
 * saved in the editor showed as normal weight on the page.
 */
.owl-news-single-content strong,
.owl-news-single-content b {
	font-weight: 700;
}

/*
 * Footer hover states.
 *
 * The footer sits on white and its links are charcoal. Brand gold cannot be
 * used here: #c1a01e on white is 2.53:1 against a 4.5:1 minimum. The deep
 * gold is the same hue and saturation darkened until it passes, so the hover
 * still reads as the brand.
 *
 * An underline was tried first and looked wrong: Elementor renders these
 * links as flex boxes, so text-decoration paints the full box and overshoots
 * the words by about 17px. Colour avoids that entirely.
 *
 * Focus is styled alongside hover so the keyboard gets the same affordance.
 */
/* Menu link hover lives on the Elementor widgets themselves (footer template
   415), because their own per-element rule at specificity 0,5,0 beats anything
   sensible from here. Only the contact text links need styling in CSS. */
.elementor-location-footer .owl-footer-contact-text a:hover,
.elementor-location-footer .owl-footer-contact-text a:focus-visible {
	color: var(--owl-gold-deep);
}

.elementor-location-footer a.elementor-icon svg {
	transition: fill 0.4s;
}

.elementor-location-footer a.elementor-icon:hover svg,
.elementor-location-footer a.elementor-icon:focus-visible svg {
	fill: var(--owl-gold-deep);
}

/*
 * Image CTA buttons: arrow to the right of the label (QA ref PO32).
 *
 * The icon sits before the text in Elementor's markup, and the shared button
 * rule above sets the content wrapper to inline-flex without a direction, so
 * it falls back to row and the arrow lands on the left. Every other button on
 * the plot page renders row-reverse from its own per-element rule; these two
 * were not picking it up, so the direction is set here instead.
 */
.owl-plot-single-image-cta__button .elementor-button .elementor-button-content-wrapper {
	flex-direction: row-reverse;
}

/* Gallery video component. Shared by plot, development and article galleries,
   so it lives here rather than in single.css which only loads on those two. */
.owl-gallery-video {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
}

.owl-gallery-video::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.2);
	transition: background 0.2s ease;
}

.owl-gallery-video:hover::after,
.owl-gallery-video:focus-visible::after {
	background: rgba(0, 0, 0, 0.3);
}

.owl-gallery-video__play {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 2;
	width: 80px;
	height: 80px;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background: var(--owl-white);
	box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
	transition: transform 0.2s ease;
}

.owl-gallery-video__play::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	/* Nudged right of centre so the triangle looks centred inside the circle. */
	transform: translate(-40%, -50%);
	border-style: solid;
	border-width: 15px 0 15px 25px;
	border-color: transparent transparent transparent var(--owl-charcoal);
}

.owl-gallery-video:hover .owl-gallery-video__play,
.owl-gallery-video:focus-visible .owl-gallery-video__play {
	transform: translate(-50%, -50%) scale(1.1);
}

.owl-gallery-video__player {
	position: absolute;
	inset: 0;
	z-index: 4;
	overflow: hidden;
	background-color: var(--owl-charcoal);
	background-position: center center;
	background-size: cover;
}

.owl-gallery-video__player iframe,
.owl-gallery-video__player video {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	background: #000;
}

/* Fills the slide like every image does. Native controls sit on the element, not the frame, so nothing is cropped away. */
.owl-gallery-video__player video {
	object-fit: cover;
}

/*
 * An embed cannot use object-fit, so the iframe is grown until 16:9 covers the slide and the
 * overflow is clipped. This matches the images, at the cost of trimming the ends of YouTube's
 * own control bar. Revert by deleting this rule; the embed then letterboxes inside the slide.
 */
.owl-gallery-video__player iframe {
	position: absolute;
	top: 50%;
	left: 50%;
	/*
	 * The embed letterboxes 16:9 inside the slide, so it is scaled up until that 16:9 area covers
	 * the slide and the sides are clipped. The factor is the two ratios divided, not a guess:
	 * width:auto with aspect-ratio does not work here because an iframe is a replaced element and
	 * resolves auto against its containing block instead of the ratio.
	 */
	transform: translate(-50%, -50%) scale(calc((16 / 9) / (813 / 520)));
}

.owl-article-videos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
	margin: 30px 0 0;
	padding: 0;
	list-style: none;
}

.owl-article-videos__item {
	margin: 0;
}

.owl-article-videos__video-link {
	display: block;
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 10px;
}

.owl-article-videos__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.owl-article-videos__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background: var(--owl-charcoal);
}

.owl-article-videos__caption {
	margin: 10px 0 0;
	font-size: 16px;
}

@media (max-width: 640px) {
	.owl-article-videos {
		grid-template-columns: 1fr;
	}

	.owl-article-videos__video-link .owl-gallery-video__play {
		width: 60px;
		height: 60px;
	}
}

.owl-lightbox__video {
	display: block;
	width: 100%;
	max-width: 1100px;
	max-height: 80vh;
	background: #000;
}

/* Per-block background choice. Set on the block wrapper because Elementor puts a
   container background in its generated CSS, which is built from the library
   template and cannot be changed at render time. */
.owl-article-block--white,
.owl-article-block--white > .e-con,
.owl-article-block--white > .elementor-element {
	background-color: #FFFFFF;
}

.owl-article-block--cream,
.owl-article-block--cream > .e-con,
.owl-article-block--cream > .elementor-element {
	background-color: #FAF8F0;
}

/*
 * Header nav hover and current page states.
 *
 * The links were flat: no hover, and nothing at all marking the page you are
 * already on. Two colour contexts, so two golds. On the light header the links
 * are charcoal and the deep gold is used because brand gold is 2.53:1 on white
 * and fails; the deep gold is 4.97:1. On the overlay header the links sit white
 * over photography, where the brighter brand gold reads better and contrast is
 * not measurable against an arbitrary image anyway.
 *
 * !important is required, not lazy. The header colour switching at the top of
 * this file already sets .elementor-item with !important so the dark-text and
 * overlay headers can swap, and no amount of specificity beats that.
 *
 * Note --main sits on the <nav>, not the <ul>, which only carries
 * .elementor-nav-menu. Writing them as one compound class matches nothing.
 */
.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main a.elementor-item:hover,
.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main a.elementor-item:focus-visible,
.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main a.elementor-item.elementor-item-active,
.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main li.current-menu-item > a.elementor-item,
.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main li.current-menu-ancestor > a.elementor-item,
.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main li.current-page-ancestor > a.elementor-item {
	color: var(--owl-gold-deep) !important;
}

.owl-has-overlay-header .elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main a.elementor-item:hover,
.owl-has-overlay-header .elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main a.elementor-item:focus-visible,
.owl-has-overlay-header .elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main a.elementor-item.elementor-item-active,
.owl-has-overlay-header .elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main li.current-menu-item > a.elementor-item,
.owl-has-overlay-header .elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main li.current-menu-ancestor > a.elementor-item,
.owl-has-overlay-header .elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main li.current-page-ancestor > a.elementor-item {
	color: var(--owl-gold) !important;
}

/*
 * The current page needs a second cue, not just colour.
 *
 * Marking it with gold alone leaves anyone who cannot separate gold from
 * charcoal with no indication at all. nexa-text carries a real 500, so the
 * active item steps up a weight as well. Hover deliberately does not, so the
 * page you are on stays distinguishable from the one under the pointer.
 */
.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main a.elementor-item.elementor-item-active,
.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main li.current-menu-item > a.elementor-item,
.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main li.current-menu-ancestor > a.elementor-item,
.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main li.current-page-ancestor > a.elementor-item {
	font-weight: 500;
}

/*
 * Restore the developments search icon.
 *
 * The rule up at the top of this file already asks for a gold 18px masked
 * search icon, but `.elementor-kit-6 button` lands at (0,2,1) against its
 * (0,1,0) and wins, so it rendered as a charcoal 40x18 blob that read as
 * neither a button nor a search icon. Three classes to clear that.
 */
.owl-developments-filters .owl-developments-filters__field .owl-developments-filters__search {
	width: 18px;
	min-width: 0;
	height: 18px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background-color: var(--owl-gold);
	box-shadow: none;
}

/* ==========================================================================
   Popup forms
   Ash's two column dialog, node 2305:4789. The form column carries
   .owl-homes-contact-form so Ninja Forms inherits the contact page styling
   rather than this file redefining pill inputs and round tick boxes a second
   time. Only the shell and the brochure form's own fields are set here.
   ========================================================================== */

body.owl-popup-is-open {
	overflow: hidden;
}

.owl-popup {
	position: fixed;
	inset: 0;
	/* 🚨 Must sit above BOTH the cookie banner (Complianz uses 99999) and the
	   raised jump nav (100000, set by development-single.js while the enquiry
	   panel is open). At 9999 the panel painted over the open form — reported by
	   Alice via Jen 2026-08-19 — and the cookie banner would have covered it too.
	   Any new overlay on this site belongs BELOW this number. */
	z-index: 100001;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.owl-popup[hidden] {
	display: none;
}

.owl-popup__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
}

.owl-popup__dialog {
	position: relative;
	width: 1242px;
	max-width: 100%;
	max-height: calc(100svh - 40px);
	overflow: hidden auto;
	background: var(--owl-cream);
	border-radius: 20px;
	display: grid;
	grid-template-columns: 427fr 815fr;
	box-shadow: var(--owl-shadow);
}

.owl-popup .owl-popup__dialog .owl-popup__close {
	position: absolute;
	top: 20px;
	right: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--owl-charcoal);
	color: var(--owl-white);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	z-index: 1;
	transition: background-color 180ms ease;
}

/* No hover state is drawn for either button, so both lift the charcoal rather
   than change colour, which is the least surprising thing next to a palette
   this restrained. */
.owl-popup .owl-popup__dialog .owl-popup__close:hover,
.owl-popup .owl-popup__dialog .owl-popup__close:focus-visible {
	background: #4f4f4f;
}

.owl-popup .owl-popup__dialog .owl-popup__close:focus-visible,
.owl-popup .owl-popup__dialog .owl-popup__submit:focus-visible {
	outline: 2px solid var(--owl-gold-deep);
	outline-offset: 2px;
}

.owl-popup__aside {
	background: var(--owl-cream);
	padding: 70px;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap: 20px;
}

/* Cover above the wording, both at the top, matching the enquiry panel. The
   frame pushes them apart, but its modal is 782 tall against ours at over 1100
   once the two Contact Builder questions are in, so anything other than top
   aligned leaves the heading floating in a very long gap. */
.owl-popup__aside--brochure {
	justify-content: flex-start;
	gap: 40px;
}

.owl-popup__title {
	font-family: var(--owl-display-font);
	font-size: 45px;
	letter-spacing: 0.45px;
	line-height: 1.15;
	margin: 0;
	color: var(--owl-charcoal);
}

.owl-popup__development {
	margin: 8px 0 0;
	font-size: 20px;
	color: var(--owl-gold-deep);
}

.owl-popup__address,
.owl-popup__blurb {
	margin: 0;
	font-size: 18px;
	color: var(--owl-charcoal);
}

.owl-popup__cover img {
	display: block;
	width: 100%;
	max-width: 366px;
	height: auto;
	border-radius: 4px;
}

.owl-popup__form {
	background: var(--owl-white);
	padding: 70px;
}

.owl-popup__fields {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.owl-popup__field {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
}

.owl-popup__field label {
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 16px;
	line-height: 1.4;
}

.owl-popup__field input,
.owl-popup__field select {
	width: 100%;
	min-height: 60px;
	border: 1px solid var(--owl-line);
	border-radius: 100px;
	background: var(--owl-white);
	box-shadow: none;
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 16px;
	line-height: 1.4;
	padding: 18px 20px;
	box-sizing: border-box;
}

.owl-popup__field input:hover,
.owl-popup__field select:hover {
	border-color: var(--owl-charcoal);
}

.owl-popup__field input:focus-visible,
.owl-popup__field select:focus-visible,
.owl-popup__consent input:focus-visible {
	outline: 2px solid var(--owl-gold-deep);
	outline-offset: 2px;
}

.owl-popup__field input,
.owl-popup__field select {
	transition: border-color 180ms ease;
}

.owl-popup__field select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("../img/contact-chevron-down.svg");
	background-position: calc(100% - 18px) 50%;
	background-size: 18px 18px;
	background-repeat: no-repeat;
	padding-right: 44px;
}

.owl-popup__consent {
	display: flex;
	align-items: center;
	column-gap: 15px;
	row-gap: 10px;
	flex-wrap: wrap;
	margin: 10px 0 0;
}

.owl-popup__consent input {
	flex: 0 0 25px;
	width: 25px;
	height: 25px;
	margin: 0;
	border: 1px solid var(--owl-line);
	border-radius: 50%;
	appearance: none;
	-webkit-appearance: none;
	background: var(--owl-white);
	cursor: pointer;
}

.owl-popup__consent input:checked {
	background-color: var(--owl-gold);
	border-color: var(--owl-gold);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='9' viewBox='0 0 12 9' fill='none'%3E%3Cpath d='M1 4.5L4.25 7.75L11 1' stroke='white' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 12px 9px;
}

.owl-popup__consent label {
	flex: 1 1 calc(100% - 40px);
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 16px;
	line-height: 1.5;
}

.owl-popup__actions {
	margin: 20px 0 0;
}

/* Charcoal rather than the contact page's gold: the frame gives the brochure
   its own Primary Button, and the download icon is masked so one asset serves
   both the charcoal and white versions. */
.owl-popup .owl-popup__dialog .owl-popup__submit {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	width: 151px;
	min-height: 45px;
	padding: 10px 20px;
	border: 0;
	border-radius: 100px;
	background: var(--owl-charcoal);
	color: var(--owl-white);
	font-family: var(--owl-text-font);
	font-size: 16px;
	line-height: 1.25;
	cursor: pointer;
}

.owl-popup .owl-popup__dialog .owl-popup__submit:hover,
.owl-popup .owl-popup__dialog .owl-popup__submit:focus-visible {
	background: var(--owl-charcoal);
	color: var(--owl-white);
}

.owl-popup .owl-popup__dialog .owl-popup__submit::after {
	content: "";
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url("../img/arrow-down-to-bracket.svg") no-repeat center / contain;
	mask: url("../img/arrow-down-to-bracket.svg") no-repeat center / contain;
}

.owl-popup__message:empty {
	display: none;
}

/* The confirmation had no styling of its own, so a successful booking or enquiry
   read as an ordinary line of text and was easy to miss — Jen 2026-08-19. Same
   treatment as the contact form confirmation so the two match. */
.owl-popup__message {
	margin: 20px 0 0;
	padding: 15px 20px;
	border-left: 3px solid var(--owl-gold, #c1a01e);
	border-radius: 0 10px 10px 0;
	background: var(--owl-cream, #faf8f0);
	color: var(--owl-charcoal, #373737);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
}

@media (max-width: 1024px) {
	.owl-popup__dialog {
		grid-template-columns: 1fr;
	}

	.owl-popup__aside,
	.owl-popup__form {
		padding: 40px;
	}

	.owl-popup__title {
		font-size: 32px;
	}
}

/* The close glyph is the theme's own times asset, masked so one file serves
   both colours. It was a text multiplication sign before, which renders far
   smaller than its font size and read as a stray character. */
.owl-popup .owl-popup__dialog .owl-popup__close::before {
	content: "";
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: url("../img/times.svg") no-repeat center / contain;
	mask: url("../img/times.svg") no-repeat center / contain;
}

/* Ninja Forms paints its required asterisk and error borders #e80000. Inside a
   cream and charcoal dialog that reads as a pink accident rather than an
   error, so the asterisk takes the body colour. Real error messages and
   borders keep their red, because an error should look like one. */
.owl-popup .owl-homes-contact-form .ninja-forms-req-symbol {
	color: var(--owl-charcoal);
}

/* The viewing form's button carries no icon, unlike the brochure download. */
.owl-popup .owl-popup__dialog .owl-popup__submit--plain {
	width: auto;
	justify-content: center;
	gap: 0;
}

.owl-popup .owl-popup__dialog .owl-popup__submit--plain::after {
	content: none;
}

/* Once submitted the button is the receipt: it keeps the full charcoal rather
   than the washed-out grey a disabled button dims to, and reads "Submitted" /
   "Request sent" — Jen 2026-08-21. */
.owl-popup .owl-popup__dialog .owl-popup__submit.is-submitted,
.owl-popup .owl-popup__dialog .owl-popup__submit.is-submitted:disabled {
	background: var(--owl-charcoal);
	color: var(--owl-white);
	opacity: 1;
	cursor: default;
}

/* The download icon promises a file; a receipt no longer needs to. */
.owl-popup .owl-popup__dialog .owl-popup__submit.is-submitted::after {
	content: none;
}

.owl-popup__field textarea {
	width: 100%;
	min-height: 120px;
	border: 1px solid var(--owl-line);
	border-radius: 15px;
	background: var(--owl-white);
	color: var(--owl-charcoal);
	font-family: var(--owl-text-font);
	font-size: 16px;
	line-height: 1.4;
	padding: 18px 20px;
	box-sizing: border-box;
	resize: vertical;
}

/* ==========================================================================
   Popup forms, exact to node 2305:5340
   The form column inherits .owl-homes-contact-form, which is built for the
   contact page and runs 60px fields with 16px consent text. The frame is
   tighter than that, so the differences are corrected here rather than by
   editing the shared block, which would drag the contact page with it.
   ========================================================================== */

.owl-popup .owl-popup__aside {
	gap: 29px;
}

.owl-popup .owl-popup__intro {
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.owl-popup .owl-popup__development {
	margin: 0;
	font-size: 28px;
	line-height: 28px;
	color: var(--owl-gold);
}

.owl-popup .owl-popup__address {
	font-size: 24px;
	line-height: 34px;
}

.owl-popup .owl-popup__blurb {
	font-size: 18px;
}

/* 45 tall pills, not the contact page's 60. */
.owl-popup .owl-popup__dialog .owl-popup__field input,
.owl-popup .owl-popup__dialog .owl-popup__field select,
/* ⚠️ `[type="submit"]` must be excluded as well as `[type="button"]`. This rule
   is for text fields, but it was also catching the submit button and forcing its
   padding to 0 20px, which left no room for the chevron once the label grew to
   "Processing". It outranks the button's own rule, so the button could never win. */
.owl-popup .owl-homes-contact-form .nf-field-element input:not([type="button"]):not([type="submit"]):not([type="checkbox"]),
.owl-popup .owl-homes-contact-form .nf-field-element select {
	height: 45px;
	min-height: 45px;
	padding: 0 20px;
	line-height: 43px;
}

.owl-popup .owl-popup__dialog .owl-popup__field textarea,
.owl-popup .owl-homes-contact-form .nf-field-element textarea {
	height: 150px;
	min-height: 150px;
	border-radius: 15px;
	padding: 14px 20px;
	line-height: 1.4;
}

/* Label to input 14, input to next label 21, taken off the frame. */
.owl-popup .owl-homes-contact-form .nf-field-label {
	margin-bottom: 14px;
}

.owl-popup .owl-homes-contact-form .nf-field-container {
	margin-bottom: 21px;
}

.owl-popup .owl-popup__field {
	gap: 14px;
}

.owl-popup .owl-popup__fields {
	gap: 21px;
}

.owl-popup .owl-popup__consent label,
.owl-popup .owl-homes-contact-form :is(.checkbox-wrap, .checkbox-container, .nf-field-container.checkbox-container) .nf-field-label :is(label, .nf-label-span) {
	font-size: 14px;
}

/* The enquiry submit is gold with a chevron, where the brochure's is charcoal
   with a download icon. Two different buttons on purpose. */
/* The frame pushes the label and the chevron to opposite ends. The contact
   page centres both and positions its chevron from the middle, which left a
   wider gap on one side than the other once the button was pinned to 131. */
.owl-popup .owl-homes-contact-form .submit-wrap :is(input[type="button"], input[type="submit"]) {
	/* ⚠️ Was a fixed 131px, which fits "Submit" and nothing longer. Ninja Forms
	   swaps the label to "Processing" while submitting, so it had no room to grow
	   and the text ran under the chevron. Keep 131px as the resting size and let
	   it expand; the right padding is what keeps the text clear of the chevron. */
	min-width: 131px;
	width: auto;
	height: 44px;
	min-height: 44px;
	padding: 0 45px 0 20px;
	text-align: left;
	background-position: right 20px center;
}

/* Ninja Forms prints its response message as the first child of the form
   wrapper, so a confirmation appeared above the fields and a visitor had to
   scroll back up to see whether anything had happened. Ordered below the
   submit button instead, which is where the eye already is. Applies to the
   contact page and the enquiry popup alike, since both use this wrapper. */
.owl-homes-contact-form .nf-form-wrap {
	display: flex;
	flex-direction: column;
}

.owl-homes-contact-form .nf-response-msg,
.owl-homes-contact-form .nf-debug-msg {
	order: 2;
	margin-top: 24px;
}

.owl-homes-contact-form .nf-after-form {
	order: 3;
}

.owl-homes-contact-form .nf-response-msg:empty {
	display: none;
}

/* The success message had ordering and spacing but no styling at all, so a
   successful submission read as a stray line of body text under the button
   rather than a confirmation. */
.owl-homes-contact-form .nf-response-msg {
	padding: 15px 20px;
	border-left: 3px solid var(--owl-gold, #c1a01e);
	border-radius: 0 10px 10px 0;
	background: var(--owl-cream, #faf8f0);
	color: var(--owl-charcoal, #373737);
	font-size: 16px;
	line-height: 1.5;
}

.owl-homes-contact-form .nf-response-msg p:last-child {
	margin-bottom: 0;
}

/* Once the enquiry has gone through, the gold Submit flips to a charcoal
   "Submitted" receipt so it matches the popup forms — Jen 2026-08-21. The
   class is set by the observer in popups.js; the gold chevron is the one
   arrow asset that already reads on a dark ground. */
.owl-homes-contact-form .nf-form-wrap.owl-nf-submitted .submit-wrap :is(input[type="button"], input[type="submit"]),
.owl-homes-contact-form .nf-form-wrap.owl-nf-submitted .submit-wrap :is(input[type="button"], input[type="submit"]):is(:hover, :focus) {
	background-color: var(--owl-charcoal);
	background-image: url("../img/chevron-right.svg");
	color: var(--owl-white);
}

/* ⚠️ The Turnstile widget is NOT inside the form. It sits in its own Elementor
   container below it, so it stretched to the full 800px column and read as a
   stray grey panel under the confirmation. Cloudflare renders it around 300px;
   let the box be the size of the widget rather than the column. */
.cf-turnstile.owl-popup__turnstile {
	width: fit-content;
	max-width: 100%;
}

/* ==========================================================================
   Cookie banner tidy up
   The variables above set the colours; this sets the spacing and the way the
   buttons behave, which is where it looked untidy. Nothing here changes what
   the banner offers, only how it sits.
   ========================================================================== */

.cmplz-cookiebanner {
	padding: 20px !important;
}

/* ⚠️ The banner is a CSS GRID with its own 10px gap, and it has divider elements
   between the sections, so per element margins stack on top of that gap and the
   spacing compounds. Adding margins here pushed the box from 306px to 331px.
   The grid gap owns the rhythm; the children carry none. */
.cmplz-cookiebanner {
	/* Dividers sit between the sections, so each visible gap is two of these.
	   10px reads as an even 20px rhythm throughout. */
	gap: 10px !important;
	/* 🚨 On a short screen Complianz sets the banner to `zoom: 0.6` AND a fixed
	   `height`, rather than letting it size to its content. Both do damage:
	   the fixed height makes the grid rows STRETCH to fill it (at a 340px window
	   the header row went 30px -> 79px, which is the dead space under the title),
	   and the zoom shrinks every button and every word to 60%, which is the tiny
	   squashed text. `align-content` cannot fix this because the rows are growing,
	   not merely being distributed.
	   Height back to content, zoom back to 1, and it scrolls if it must. A banner
	   you can read and scroll beats one that fits and cannot be read. */
	align-content: start !important;
	height: auto !important;
}

/* Short screens: undo Complianz's "compressed" mode.
 *
 * Under `@media (max-height: 400px)` the plugin swaps in a whole different
 * banner: `zoom: 0.6` on the box and `0.5` on the buttons, `gap: 1px` between
 * them, `height: 15vh` with `min-height: unset` and `padding: 0` on each button,
 * and `max-height: 10px` on the header. That is where the shrunken text, the
 * squashed buttons and the dead space under the title all came from.
 *
 * 🚨 Their selectors are the SAME specificity as ours and their stylesheet loads
 * LATER, so a matching selector always loses however many !importants it carries.
 * Prefixing with the container id makes these (1,3,0) against their (0,3,0),
 * which wins on specificity and stops load order mattering.
 *
 * The banner keeps their flex layout and scrolling body, which is the right
 * shape for a short screen. Only the scaling is undone: readable and scrollable
 * beats fitting but illegible.
 */
@media (max-height: 400px) {
	#cmplz-cookiebanner-container .cmplz-cookiebanner {
		height: auto !important;
		max-height: calc(100vh - 40px) !important;
		padding: 20px !important;
		gap: 10px !important;
		zoom: 1 !important;
	}

	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-header {
		max-height: none !important;
		margin-bottom: 0 !important;
	}

	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-body {
		margin-top: 0 !important;
	}

	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons {
		gap: 10px !important;
	}

	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
		height: auto !important;
		min-height: 45px !important;
		padding: 10px 20px !important;
		font-size: 16px !important;
		line-height: 1.25 !important;
		zoom: 1 !important;
	}

	#cmplz-cookiebanner-container .cmplz-close,
	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-documents,
	#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-information {
		zoom: 1 !important;
	}
}

.cmplz-cookiebanner .cmplz-header,
.cmplz-cookiebanner .cmplz-buttons {
	align-self: start !important;
}

.cmplz-cookiebanner .cmplz-header,
.cmplz-cookiebanner .cmplz-message {
	margin: 0 !important;
}

.cmplz-cookiebanner .cmplz-message {
	line-height: 1.4 !important;
}

/* ⚠️ Three buttons in a row is the problem size, not the narrow one. At the
   banner's 526px width each gets 155px, and "View preferences" needs about 125px
   of that once padding is off, so the labels sat right on the edge. Letting them
   wrap means they drop to their own line instead of cramping. */
.cmplz-cookiebanner .cmplz-buttons {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 10px !important;
}

.cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
	width: auto !important;
	min-width: 140px !important;
	/* ⚠️ Complianz drops its own 45px minimum on a short screen, which left the
	   buttons 26px tall once the zoom was removed. Stated here so the site's
	   button height holds at every screen size. */
	min-height: 45px !important;
	flex: 1 1 auto !important;
	margin: 0 !important;
	padding: 10px 20px !important;
	/* ⚠️ A plain `.cmplz-cookiebanner *` cannot clear the zoom here. Complianz's
	   own rule is more specific, and among !important declarations specificity
	   still decides, so the reset has to be stated at this depth too. */
	zoom: 1 !important;
}

/* The close control was picking up a link colour and reading blue against the
   cream. It is charcoal like the rest of the banner text. */
.cmplz-cookiebanner .cmplz-close,
.cmplz-cookiebanner .cmplz-close:hover,
.cmplz-cookiebanner .cmplz-close:focus {
	color: var(--owl-charcoal, #373737) !important;
	text-decoration: none !important;
	opacity: 1 !important;
}

/* ==========================================================================
   Contact links (tel: and mailto:)
   Figma node 597-10262 draws these in charcoal #373737 with NO underline —
   only the icon beside them is gold. They were picking up the body copy link
   style (gold + underline) because the contact block sits inside a WYSIWYG
   wrapper, so the rule for inline links in running text was catching them.

   ⚠️ Scoped to tel: and mailto: ONLY, deliberately. The gold underlined style
   is CORRECT for links inside paragraphs — there a link has no icon and no
   distinguishing context, so removing the underline would leave nothing to
   mark it as a link at all. Do not widen this to `a`.

   Underlined on hover and focus so the affordance is still there when someone
   interacts, and so it is reachable by keyboard.
   ========================================================================== */

a[href^="tel:"],
a[href^="mailto:"] {
	color: var(--owl-charcoal, #373737);
	text-decoration: none;
}

/* Hover and focus go GOLD, not charcoal. Charcoal underlining to charcoal is
   almost no feedback at all, and gold ties the interaction to the gold icon
   sitting next to it. `--owl-gold-deep` rather than the icon's brighter
   `--owl-gold` because this is text on cream and needs the contrast — it is
   also the colour the site already uses for links in body copy.
   The underline inherits currentColor, so it comes through gold too. */
a[href^="tel:"]:hover,
a[href^="tel:"]:focus,
a[href^="tel:"]:focus-visible,
a[href^="mailto:"]:hover,
a[href^="mailto:"]:focus,
a[href^="mailto:"]:focus-visible {
	color: var(--owl-gold-deep);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.owl-button--primary .elementor-button:focus-visible,
.owl-development-single-button .elementor-button:focus-visible,
.owl-homes-browse-region-button .elementor-button:focus-visible,
.owl-homes-customer-centre-button .elementor-button:focus-visible,
.owl-homes-developments-cta .elementor-button:focus-visible,
.owl-homes-intro-button .elementor-button:focus-visible,
.owl-homes-news-updates-button .elementor-button:focus-visible,
.owl-homes-offer-feature-button .elementor-button:focus-visible {
	background-color: var(--owl-gold) !important;
	border-color: var(--owl-gold) !important;
	color: var(--owl-charcoal) !important;
}

.owl-homes-find-home-panel-button .elementor-button:focus-visible,
.owl-homes-header-cta-slot .elementor-button:focus-visible,
.owl-homes-search-button .elementor-button:focus-visible {
	background-color: var(--owl-charcoal) !important;
	border-color: var(--owl-charcoal) !important;
	color: var(--owl-white) !important;
}

.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main a.elementor-item.elementor-item-active,
.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main li.current-menu-item > a.elementor-item,
.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main li.current-menu-ancestor > a.elementor-item,
.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--main li.current-page-ancestor > a.elementor-item {
	font-weight: 600 !important;
}

.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--dropdown a.elementor-item-active,
.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--dropdown li.current-menu-item > a,
.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--dropdown li.current-menu-ancestor > a,
.elementor-location-header .owl-homes-header-menu-slot .elementor-nav-menu--dropdown li.current-page-ancestor > a {
	color: var(--owl-gold-deep) !important;
	font-weight: 600 !important;
}


@media (hover: hover) and (pointer: fine) {
	.owl-button--primary .elementor-button:hover,
	.owl-development-single-button .elementor-button:hover,
	.owl-homes-browse-region-button .elementor-button:hover,
	.owl-homes-customer-centre-button .elementor-button:hover,
	.owl-homes-developments-cta .elementor-button:hover,
	.owl-homes-intro-button .elementor-button:hover,
	.owl-homes-news-updates-button .elementor-button:hover,
	.owl-homes-offer-feature-button .elementor-button:hover {
		background-color: var(--owl-gold) !important;
		border-color: var(--owl-gold) !important;
		color: var(--owl-charcoal) !important;
	}

	.owl-homes-find-home-panel-button .elementor-button:hover,
	.owl-homes-header-cta-slot .elementor-button:hover,
	.owl-homes-search-button .elementor-button:hover {
		background-color: var(--owl-charcoal) !important;
		border-color: var(--owl-charcoal) !important;
		color: var(--owl-white) !important;
	}
}

@media (min-width: 1300px) {
	.owl-homes-customer-stories-copy:has(.owl-homes-trustpilot) .owl-homes-customer-stories-carousel .swiper-pagination {
		transform: translateX(22px);
	}
}

@media (max-width: 1299px) {
	.owl-homes-customer-stories-copy:has(.owl-homes-trustpilot) .owl-homes-customer-stories-carousel .swiper-pagination {
		align-self: flex-start;
		transform: none;
	}
}

@media (min-width: 1025px) {
	.owl-homes-content-media-copy:not(:has(.elementor-button)) {
		justify-content: center;
	}

	.owl-homes-content-media-copy:not(:has(.elementor-button)) > *:last-child {
		margin-bottom: 0;
	}
}

.e-n-accordion-item-title-icon :is(.e-closed, .e-opened) svg {
	display: none;
}

.e-n-accordion-item-title-icon :is(.e-closed, .e-opened) {
	position: relative;
	width: 20px !important;
	height: 20px !important;
	flex: 0 0 20px;
}

.e-n-accordion-item-title-icon :is(.e-closed, .e-opened)::before,
.e-n-accordion-item-title-icon .e-closed::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 20px;
	height: 2px;
	transform: translate(-50%, -50%);
	background: var(--owl-gold);
}

.e-n-accordion-item-title-icon .e-closed::after {
	width: 2px;
	height: 20px;
}
