/* ==========================================================================
   Prime Real Estate: design overrides
   Loaded after Houzez and its Theme Options CSS. Uses only --pr-* tokens
   from ../style.css. No hex values or font names in this file.

   1. Base & typography
   2. Links
   3. Buttons
   4. Header & navigation
   5. Property cards
   6. Prices
   7. Labels & badges
   8. Forms
   9. Focus states
   10. Footer
   11. No shadows
   12. Layout helpers (add these class names in Elementor → Advanced → CSS Classes)
   ========================================================================== */


/* 1. Base & typography
   -------------------------------------------------------------------------- */
body {
	font-family: var(--pr-font-body);
	font-size: var(--pr-fs-body);
	font-weight: var(--pr-weight-body);
	line-height: var(--pr-lh-body);
	color: var(--pr-ink);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Houzez sets these elements' font separately, so repeat it here. */
.main-nav,
.dropdown-menu,
.login-register,
.logged-in-nav,
.btn,
.ele-btn,
.houzez-search-button,
.houzez-submit-button,
.form-control,
.bootstrap-select .text,
.top-bar-wrap,
.footer-wrap {
	font-family: var(--pr-font-body);
}

h1, h2, h3, h4, h5, h6,
.item-title,
.item-price,
.page-title-mobile {
	font-family: var(--pr-font-heading);
	font-weight: var(--pr-weight-heading);
	line-height: var(--pr-lh-heading);
	letter-spacing: 0; /* Cairo is already narrow; no negative tracking */
	color: var(--pr-ink);
}

/* Type scale for Houzez's own templates (tokens in style.css; phone sizes switch automatically).
   Elementor pages get the same values from Site Settings → Typography. */
h1 { font-size: var(--pr-fs-h1); line-height: var(--pr-lh-h1); }
h2 { font-size: var(--pr-fs-h2); line-height: var(--pr-lh-h2); }
h3 { font-size: var(--pr-fs-h3); line-height: var(--pr-lh-h3); }
h4 { font-size: var(--pr-fs-h4); line-height: var(--pr-lh-h4); }
h5 { font-size: var(--pr-fs-h5); line-height: var(--pr-lh-h5); }
h6 { font-size: var(--pr-fs-h6); line-height: var(--pr-lh-h6); }

p {
	line-height: var(--pr-lh-body);
}

/* Small / meta text */
.item-address,
.item-amenities,
.item-amenities-text,
.item-date,
.item-author,
.item-sub-price {
	font-size: var(--pr-fs-small);
	line-height: var(--pr-lh-small);
}

.text-muted,
.item-address,
.item-amenities,
.item-amenities-text,
.item-date,
.item-author {
	color: var(--pr-muted) !important; /* Bootstrap's .text-muted uses !important */
}


/* 2. Links
   -------------------------------------------------------------------------- */
a {
	color: var(--pr-primary);
	transition: color .15s ease;
}
a:hover,
a:focus {
	color: var(--pr-primary-hover);
}

/* Titles that are links stay ink and turn burgundy on hover. */
.item-title a,
.blog-post-title h3 a,
.post-title-wrap h2 a {
	color: var(--pr-ink);
}
.item-title a:hover,
.blog-post-title h3 a:hover,
.post-title-wrap h2 a:hover {
	color: var(--pr-primary);
}


/* 3. Buttons
   -------------------------------------------------------------------------- */
.btn,
.houzez-search-button,
.houzez-submit-button {
	border-radius: var(--pr-radius-btn);
	font-size: var(--pr-fs-button);
	font-weight: var(--pr-weight-heading);
	line-height: 1;
	box-shadow: none;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
/* Houzez's small "slim" buttons (e.g. View Listings) follow the same button size.
   Houzez sets 12px with !important, so this needs it too. */
.btn.btn-slim {
	font-size: var(--pr-fs-button) !important;
}

/* Primary: the only filled burgundy button. */
.btn-primary,
.btn-create-listing,
.houzez-search-button,
.houzez-submit-button,
.btn-search {
	color: var(--pr-on-primary);
	background-color: var(--pr-primary);
	border-color: var(--pr-primary);
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary:not(:disabled):not(.disabled):active,
.btn-create-listing:hover,
.houzez-search-button:hover,
.houzez-submit-button:hover,
.btn-search:hover {
	color: var(--pr-on-primary);
	background-color: var(--pr-primary-hover);
	border-color: var(--pr-primary-hover);
}

/* Secondary: neutral outline, not a second brand colour. */
.btn-secondary,
.btn-secondary-outlined,
.btn-light-grey-outlined {
	color: var(--pr-ink);
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
}
.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:active,
.btn-secondary:not(:disabled):not(.disabled):active,
.btn-secondary-outlined:hover,
.btn-light-grey-outlined:hover {
	color: var(--pr-ink);
	background-color: var(--pr-surface);
	border-color: var(--pr-ink);
}

/* Primary outline (e.g. "Details" on cards). */
.btn-primary-outlined {
	color: var(--pr-primary);
	background-color: transparent;
	border: 1px solid var(--pr-primary);
}
.btn-primary-outlined:hover,
.btn-primary-outlined:focus {
	color: var(--pr-on-primary);
	background-color: var(--pr-primary);
	border-color: var(--pr-primary);
}

/* WhatsApp buttons use WhatsApp green, not burgundy. */
.hz-btn-whatsapp,
.btn-whatsapp,
.btn-whatsapp a {
	color: var(--pr-surface);
	background-color: var(--pr-whatsapp);
	border-color: var(--pr-whatsapp);
}
.hz-btn-whatsapp:hover,
.btn-whatsapp:hover,
.btn-whatsapp a:hover {
	color: var(--pr-surface);
	background-color: var(--pr-whatsapp);
	border-color: var(--pr-whatsapp);
	filter: brightness(.92);
}

/* Card contact buttons (Call / Email / WhatsApp) are secondary actions:
   neutral outline, burgundy on hover. Keeps a grid of cards from turning red. */
.item-buttons-wrap .btn-item,
.item-buttons-wrap .btn-primary-outlined {
	color: var(--pr-ink);
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
}
.item-buttons-wrap .btn-item:hover,
.item-buttons-wrap .btn-item:focus,
.item-buttons-wrap .btn-primary-outlined:hover {
	color: var(--pr-primary);
	background-color: var(--pr-primary-tint);
	border-color: var(--pr-primary);
}

/* The WhatsApp icon is always WhatsApp green. */
.icon-messaging-whatsapp {
	color: var(--pr-whatsapp);
}
.hz-btn-whatsapp .icon-messaging-whatsapp,
.btn-whatsapp .icon-messaging-whatsapp {
	color: inherit;
}

/* Back-to-top: neutral white, so it stands out on the burgundy footer. */
.btn-back-to-top,
.back-to-top-wrap .btn-primary {
	color: var(--pr-ink);
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
}
.btn-back-to-top:hover,
.back-to-top-wrap .btn-primary:hover {
	color: var(--pr-primary);
	background-color: var(--pr-surface);
	border-color: var(--pr-primary);
}

/* Pagination: active page is the only filled item. */
.page-link {
	color: var(--pr-ink);
	border-color: var(--pr-border);
}
.page-link:hover {
	color: var(--pr-primary);
	background-color: var(--pr-primary-tint);
	border-color: var(--pr-border);
}
.page-item.active .page-link {
	color: var(--pr-on-primary);
	background-color: var(--pr-primary);
	border-color: var(--pr-primary);
}


/* 4. Header & navigation
   -------------------------------------------------------------------------- */
.header-main-wrap:not(.header-transparent-wrap) #header-section,
.header-main-wrap:not(.header-transparent-wrap) .header-inner-wrap,
#header-mobile,
.sticky-nav-area {
	background-color: var(--pr-surface);
}
.header-main-wrap:not(.header-transparent-wrap) #header-section,
#header-mobile,
.sticky-nav-area.houzez-in-view {
	border-bottom: 1px solid var(--pr-border);
	box-shadow: none;
}

.main-nav .nav-link,
.header-main-wrap:not(.header-transparent-wrap) .main-nav .nav-link {
	color: var(--pr-ink);
	font-weight: var(--pr-weight-medium);
	background-color: transparent;
}
.main-nav .nav-link:hover,
.main-nav .current-menu-item > .nav-link,
.main-nav .current-menu-ancestor > .nav-link,
.main-nav .nav-item.active > .nav-link {
	color: var(--pr-primary);
	background-color: transparent;
}

/* Sub-menus */
.main-nav .dropdown-menu,
.dropdown-menu {
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: var(--pr-radius-card);
	box-shadow: none;
}
.main-nav .dropdown-menu a,
.dropdown-menu .dropdown-item {
	color: var(--pr-ink);
	background-color: transparent;
}
.main-nav .dropdown-menu a:hover,
.dropdown-menu .dropdown-item:hover,
.dropdown-menu .dropdown-item.active {
	color: var(--pr-primary);
	background-color: var(--pr-primary-tint);
}

.login-register a,
.login-register .btn-icon-login-register {
	color: var(--pr-ink);
}
.login-register a:hover {
	color: var(--pr-primary);
}


/* 5. Property cards
   White card, 1px border, on the off-white page.
   -------------------------------------------------------------------------- */
.item-wrap,
.item-listing-wrap .item-wrap,
.property-item-widget,
.agent-grid-wrap,
.agent-list-wrap,
.blog-post-item {
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: var(--pr-radius-card);
	box-shadow: none;
	overflow: hidden;
}
.item-listing-wrap:hover .item-wrap,
.item-wrap:hover {
	border-color: var(--pr-ink);
	box-shadow: none;
}

/* Images follow the card's rounded top corners. */
.item-header,
.item-header img,
.listing-image-wrap,
.listing-thumb {
	border-radius: 0;
}
.item-wrap > .d-flex > .item-header,
.item-wrap .item-header {
	border-top-left-radius: calc(var(--pr-radius-card) - 1px);
	border-top-right-radius: calc(var(--pr-radius-card) - 1px);
	overflow: hidden;
}

.item-title {
	font-weight: var(--pr-weight-heading);
	letter-spacing: 0;
}
/* Card titles are H2s in Houzez's markup. Keep them at card-title (H4) size so the
   section-heading H2 size from Elementor Site Settings doesn't reach them. */
.item-wrap .item-title,
.item-listing-wrap .item-title {
	font-size: var(--pr-fs-h4);
	line-height: var(--pr-lh-h4);
}
/* Unit cards inside a project page (Sub listings) are a step smaller. */
#property-sub-listings-wrap .item-title {
	font-size: var(--pr-fs-unit-title);
	line-height: var(--pr-lh-h4);
}

.item-footer {
	border-top: 1px solid var(--pr-border);
}


/* 6. Prices
   Ink, not burgundy. Prices sitting on top of a photo stay white for legibility.
   -------------------------------------------------------------------------- */
.item-price,
.item-body .item-price,
.list-view .item-body .item-price-wrap,
.item-wrap-v6 .item-price-wrap,
.listing-v6 .list-view .item-body .item-price-wrap,
.page-title-wrap .item-price-wrap,
.property-item-widget .item-price-wrap,
.mobile-property-title .item-price-wrap .item-price {
	color: var(--pr-ink);
	font-weight: var(--pr-weight-heading);
	letter-spacing: 0;
}
/* Card price size (incl. unit cards on a project page) */
.item-wrap .item-price,
.item-listing-wrap .item-price,
#property-sub-listings-wrap .item-price {
	font-size: var(--pr-fs-price);
	font-weight: var(--pr-weight-heading);
	line-height: var(--pr-lh-price);
}
.item-header .item-price-wrap,
.item-header .item-price {
	color: var(--pr-surface);
}
.item-sub-price {
	color: var(--pr-muted);
	font-weight: var(--pr-weight-body);
}


/* 7. Labels & badges
   Neutral pills. The "Featured" badge is the one small burgundy accent.
   -------------------------------------------------------------------------- */
.label,
.label.label-status,
.label.hz-label,
.labels-wrap .label {
	color: var(--pr-ink);
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: 999px;
	font-family: var(--pr-font-body);
	font-size: 11px;
	font-weight: var(--pr-weight-heading);
	letter-spacing: .06em;
	text-transform: uppercase;
	box-shadow: none;
}
.label.label-featured,
.label-featured,
.primary-label {
	color: var(--pr-primary);
	background-color: var(--pr-primary-tint);
	border: 1px solid var(--pr-primary-tint);
}
.post-tag {
	color: var(--pr-ink);
	background-color: var(--pr-surface-alt);
	border-radius: 999px;
}


/* 8. Forms
   -------------------------------------------------------------------------- */
.form-control,
.form-select,
.bootstrap-select > .dropdown-toggle,
.bootstrap-select > .btn,
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="search"],
input[type="password"],
textarea,
select {
	font-family: var(--pr-font-body);
	color: var(--pr-ink);
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: var(--pr-radius-btn);
	box-shadow: none;
}
.form-control::placeholder,
input::placeholder,
textarea::placeholder {
	color: var(--pr-muted);
	opacity: 1;
}
.form-control:hover,
.bootstrap-select > .dropdown-toggle:hover,
input:hover,
textarea:hover,
select:hover {
	border-color: var(--pr-muted);
}
.form-control:focus,
.form-select:focus,
.bootstrap-select > .dropdown-toggle:focus,
.bootstrap-select.show > .dropdown-toggle,
input:focus,
textarea:focus,
select:focus {
	border-color: var(--pr-primary);
	box-shadow: none;
	outline: none;
}

/* Checkboxes / radios (Houzez custom controls) */
.control input:checked ~ .control__indicator,
.form-check-input:checked {
	background-color: var(--pr-primary);
	border-color: var(--pr-primary);
}

/* Range slider (price/area filters) */
.ui-slider-horizontal .ui-slider-range {
	background-color: var(--pr-primary);
}
.ui-slider .ui-slider-handle {
	border-color: var(--pr-primary);
	box-shadow: none;
}


/* 9. Focus states
   A visible burgundy ring for keyboard users only (not on mouse click).
   -------------------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.page-link:focus-visible,
.nav-link:focus-visible,
[tabindex]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.bootstrap-select > .dropdown-toggle:focus-visible {
	outline: 2px solid var(--pr-primary);
	outline-offset: 2px;
	box-shadow: none;
}
.btn:focus:not(:focus-visible) {
	box-shadow: none;
}


/* 10. Footer
   Burgundy footer, darker burgundy bottom bar, white text and icons.
   Matches Houzez → Styling → Footer (#881934 / #6A1229 / #FFFFFF).
   -------------------------------------------------------------------------- */
.footer-wrap,
.footer-top-wrap {
	background-color: var(--pr-primary);
	color: var(--pr-on-primary);
	background-image: none;
}
.footer-bottom-wrap {
	background-color: var(--pr-primary-hover);
	color: var(--pr-on-primary);
	background-image: none;
	border-top: 0;
}
.footer-wrap h1, .footer-wrap h2, .footer-wrap h3,
.footer-wrap h4, .footer-wrap h5, .footer-wrap h6,
.footer-wrap .widget-title {
	color: var(--pr-on-primary);
	font-weight: var(--pr-weight-heading);
}
.footer-wrap a,
.footer-wrap .footer-social a,
.footer-wrap .footer-social i {
	color: color-mix(in srgb, var(--pr-on-primary) 80%, transparent);
}
.footer-wrap a:hover,
.footer-wrap a:focus,
.footer-wrap .footer-social a:hover,
.footer-wrap .footer-social a:hover i {
	color: var(--pr-on-primary);
}
.footer-wrap .footer-social i {
	color: var(--pr-on-primary);
}
.footer-wrap a:focus-visible {
	outline-color: var(--pr-on-primary);
}

/* Footer column 1: logo + tagline */
.pr-footer-brand img {
	display: block;
	width: auto;
	height: 36px;
	margin-bottom: 16px;
}
.pr-footer-brand p {
	max-width: 320px;
	margin: 0;
}

/* Footer column 4: small label above each contact detail */
.pr-footer-contact {
	margin: 0;
	padding: 0;
}
.pr-footer-contact li {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin-bottom: 14px;
}
.pr-footer-contact li span {
	float: none;
	order: -1;
	font-size: 12px;
	font-weight: var(--pr-weight-heading);
	letter-spacing: .08em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--pr-on-primary) 70%, transparent);
}


/* 11. No shadows
   Houzez adds soft shadows to many boxes; the brand uses borders instead.
   -------------------------------------------------------------------------- */
.item-wrap,
.item-wrap-v1 .item-wrap,
.property-item-widget,
.widget,
.block-wrap,
.property-section-wrap,
.agent-information,
.property-form-wrap,
.advanced-search,
.advanced-search-nav,
.search-expandable,
.property-navigation-wrap,
.login-register-form .modal-content,
.modal-content,
.slick-arrow,
.dropdown-menu,
.bootstrap-select .dropdown-menu,
.back-to-top-wrap a {
	box-shadow: none !important; /* Houzez sets several of these with !important */
}

.slick-arrow {
	background-color: var(--pr-surface);
	color: var(--pr-ink);
	border: 1px solid var(--pr-border);
}
.slick-arrow:hover,
.slick-prev:hover,
.slick-next:hover,
.slick-prev:focus,
.slick-next:focus {
	background-color: var(--pr-surface);
	color: var(--pr-primary);
	border-color: var(--pr-primary);
}


/* 12. Layout helpers
   Add these in Elementor → (section/container) → Advanced → CSS Classes.
   -------------------------------------------------------------------------- */

/* Standard section spacing: 64px on phones, about 108–112px on desktop. */
.pr-section {
	padding-block: var(--pr-section-y);
}

/* Off-white section. The only allowed section background besides white. */
.pr-section-alt {
	background-color: var(--pr-surface-alt);
}

/* Keep content to 1200px wide. */
.pr-container {
	max-width: var(--pr-content-max);
	margin-inline: auto;
}

/* Keep paragraphs to a comfortable reading width. */
.pr-text,
.pr-text .elementor-widget-container {
	max-width: var(--pr-text-max);
}

/* Small burgundy label above a heading, e.g. "NEW CAIRO". */
.pr-eyebrow,
.pr-eyebrow .elementor-heading-title {
	color: var(--pr-primary);
	font-family: var(--pr-font-heading);
	font-size: var(--pr-fs-eyebrow);
	font-weight: var(--pr-weight-heading);
	letter-spacing: var(--pr-ls-eyebrow);
	line-height: 1;
	text-transform: uppercase;
}

/* Eyebrow + section H2: exactly 8px below each.
   Elementor adds its global widget spacing (20px) on top of a widget's own margin;
   zero it for these two so the 8px set on the widgets is the whole gap. */
.elementor-widget.elementor-widget-heading.pr-eyebrow,
.elementor-widget-heading:has(h2.elementor-heading-title) {
	--kit-widget-spacing: 0px;
}

/* Area tiles: name size comes from Elementor Global Font "Area tile titles" (24/22/18, 600).
   No description line on tiles (it shows at the top of the area page). */

/* White card with border, for Elementor containers. */
.pr-card {
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: var(--pr-radius-card);
	box-shadow: none;
}


/* 13. Homepage polish
   -------------------------------------------------------------------------- */

/* Hero search: the strongest element in the hero — solid white bar, 52px controls. */
.pr-hero-search .houzez-search-builder-wrapper {
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: var(--pr-radius-card);
}
.pr-hero-search .form-control,
.pr-hero-search .bootstrap-select > .dropdown-toggle,
.pr-hero-search .houzez-search-button {
	height: 52px;
	min-height: 52px;
}
.pr-hero-search .houzez-search-button {
	white-space: nowrap;
	padding-inline: 28px;
	font-size: var(--pr-fs-button);
}

/* Location tiles (homepage + /areas/): 4:3 photo, flat ink overlay at 45%,
   subtle zoom and an arrow on hover. The photo sits on its own layer so only it zooms. */
.pr-area-tile .grid-item {
	position: relative;
	aspect-ratio: 4 / 3;
	height: auto !important;
	padding-bottom: 0 !important;
	border-radius: var(--pr-radius-card);
	overflow: hidden;
	isolation: isolate;
}
.pr-area-tile .grid-item::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: inherit;
	background-size: cover;
	background-position: center;
	transition: transform .5s ease;
}
.pr-area-tile .grid-item::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background-color: color-mix(in srgb, var(--pr-ink) 45%, transparent);
}
.pr-area-tile .grid-item-link {
	position: absolute;
	inset: 0;
	z-index: 2;
	border-radius: 0;
}
.pr-area-tile .hover-effect-flat::before {
	display: none; /* Houzez's own hover layer */
}
.pr-area-tile .grid-item:hover::before {
	transform: scale(1.03);
}
.pr-area-tile .grid-item-icon {
	opacity: 0;
	transform: translateX(-4px);
	transition: opacity .2s ease, transform .2s ease;
}
.pr-area-tile .grid-item:hover .grid-item-icon,
.pr-area-tile .grid-item-link:focus-visible .grid-item-icon {
	opacity: 1;
	transform: none;
}

/* Featured projects: 3 equal-height cards, 4:3 images. */
.pr-featured-grid .item-listing-wrap,
.pr-featured-grid .item-wrap {
	height: 100%;
}
.pr-featured-grid .item-wrap {
	display: flex;
	flex-direction: column;
}
.pr-featured-grid .item-header img,
.pr-featured-grid .listing-thumb img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* Enquiry form: 48px fields, 52px full-width submit button. */
.elementor-widget-houzez_elementor_inquiry_form input.form-control,
.elementor-widget-houzez_elementor_inquiry_form select.form-control,
.elementor-widget-houzez_elementor_inquiry_form .bootstrap-select > .dropdown-toggle {
	height: 48px;
	min-height: 48px;
}
.elementor-widget-houzez_elementor_inquiry_form .houzez-submit-button {
	width: 100%;
	height: 52px;
	min-height: 52px;
	justify-content: center;
}

/* Footer: 56px top / 40px bottom; contact details in full white. */
.footer-top-wrap {
	padding-top: 56px;
	padding-bottom: 40px;
}
.pr-footer-contact li,
.pr-footer-contact li span {
	color: var(--pr-on-primary);
}

@media (prefers-reduced-motion: reduce) {
	.pr-area-tile .grid-item::before,
	.pr-area-tile .grid-item-icon {
		transition: none;
	}
}


/* 14. Floating WhatsApp button (inc/contact.php)
   56px, 24px from the bottom-right corner, above every page. The back-to-top
   button moves up to sit just above it. On phones it fades out while a form's
   submit button is on screen. On project pages below 992px Houzez shows a
   71px contact bar at the bottom, so both buttons lift above that bar.
   -------------------------------------------------------------------------- */
.pr-whatsapp-float {
	position: fixed;
	right: 24px;
	bottom: calc(24px + env(safe-area-inset-bottom, 0px));
	z-index: 1001;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background-color: var(--pr-whatsapp);
	color: var(--pr-surface);
	font-size: 30px;
	line-height: 1;
	transition: transform .2s ease, opacity .2s ease;
}
.pr-whatsapp-float:hover,
.pr-whatsapp-float:focus {
	color: var(--pr-surface);
	transform: scale(1.06);
}
.pr-whatsapp-float:focus-visible {
	outline: 2px solid var(--pr-ink);
	outline-offset: 3px;
}
.pr-whatsapp-float.is-hidden {
	opacity: 0;
	pointer-events: none;
	transform: scale(.85);
}

/* Back-to-top (42px) centred above the WhatsApp button */
.back-to-top-wrap {
	right: 31px;
	bottom: calc(92px + env(safe-area-inset-bottom, 0px));
}

@media (max-width: 991.98px) {
	.single-property .pr-whatsapp-float {
		bottom: calc(87px + env(safe-area-inset-bottom, 0px)); /* 71px contact bar + 16px */
	}
	.single-property .back-to-top-wrap {
		right: 31px;
		bottom: calc(155px + env(safe-area-inset-bottom, 0px));
	}
}

@media (prefers-reduced-motion: reduce) {
	.pr-whatsapp-float {
		transition: none;
	}
}


/* 15. Developer logo strip ([prime_developers], inc/developers.php)
   One row that scrolls left → right in a seamless 40s loop (the list is printed 4 times
   and the track moves by one copy = 25% of its width). Pauses on hover; static and
   wrapped when the visitor prefers reduced motion. Logos grey until hovered; each logo
   fits inside 160×40 and is vertically centred.
   -------------------------------------------------------------------------- */
.pr-dev-strip {
	overflow: hidden;
	width: 100%;
}
.pr-dev-track {
	display: flex;
	width: max-content;
	animation: pr-dev-scroll 40s linear infinite;
}
.pr-dev-strip:hover .pr-dev-track,
.pr-dev-strip:focus-within .pr-dev-track {
	animation-play-state: paused;
}
.pr-dev-list {
	display: flex;
	align-items: center;
	gap: var(--pr-dev-gap);
	margin: 0;
	padding: 0 var(--pr-dev-gap) 0 0; /* same gap at the seam between the two copies */
	list-style: none;
}
.pr-dev {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	height: var(--pr-dev-logo-h);
	filter: grayscale(1);
	opacity: .6;
	transition: filter .2s ease, opacity .2s ease;
}
.pr-dev:hover {
	filter: none;
	opacity: 1;
}
/* Scoped under .pr-dev-strip so it beats Elementor's ".elementor img { max-width: 100% }",
   which otherwise makes logo widths unpredictable inside the scrolling row. */
.pr-dev-strip .pr-dev-logo {
	display: block;
	/* width/height come from the attributes printed by the shortcode (fitted to 160×40) */
	max-width: 160px;
	max-height: var(--pr-dev-logo-h);
	object-fit: contain;
}
@keyframes pr-dev-scroll {
	from { transform: translateX(-25%); } /* one copy of the row (100% / 4 copies) */
	to   { transform: translateX(0); }
}
@media (prefers-reduced-motion: reduce) {
	.pr-dev-track {
		width: auto;
		animation: none;
	}
	.pr-dev-list {
		flex-wrap: wrap;
		justify-content: center;
		row-gap: 24px;
		padding: 0;
	}
	.pr-dev-list[aria-hidden="true"] {
		display: none;
	}
}


/* 17. Header "Speak to an advisor" button
   Houzez's Create Listing button, relabelled. 44px tall, 8px corners, 15px/600, 20px from
   the last menu item. Desktop + landscape tablets use the desktop header; portrait tablets
   (768–991px) get the same button in the mobile header; phones keep the phone icon.
   -------------------------------------------------------------------------- */
.header-main-wrap .login-register .btn-create-listing,
#header-mobile .pr-advisor-btn-tablet {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 44px;
	padding: 0 22px;
	border: 0;
	border-radius: var(--pr-radius-btn);
	background-color: var(--pr-primary);
	color: var(--pr-on-primary);
	font-family: var(--pr-font-body);
	font-size: var(--pr-fs-button);
	font-weight: var(--pr-weight-heading);
	line-height: 1;
	white-space: nowrap;
	box-shadow: none;
}
.header-main-wrap .login-register .btn-create-listing:hover,
.header-main-wrap .login-register .btn-create-listing:focus,
#header-mobile .pr-advisor-btn-tablet:hover,
#header-mobile .pr-advisor-btn-tablet:focus {
	background-color: var(--pr-primary-hover);
	color: var(--pr-on-primary);
}
.header-main-wrap .login-register {
	display: flex;
	align-items: center;
	align-self: center;
	margin-left: 20px;
}
.header-main-wrap .login-register .login-register-nav,
.header-main-wrap .login-register .login-register-nav > li {
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
}

/* Mobile header: icon on phones, full button on portrait tablets */
#header-mobile .pr-advisor-btn-tablet {
	display: none;
}
@media (min-width: 768px) and (max-width: 991.98px) {
	#header-mobile .pr-advisor-icon {
		display: none;
	}
	#header-mobile .pr-advisor-btn-tablet {
		display: inline-flex;
	}
}


/* 18. Homepage restructure
   -------------------------------------------------------------------------- */

/* Feature cards (Why Prime ×3, Services ×4): Elementor Icon Box widgets.
   Styled on the widget element itself (Elementor's optimised markup has no inner container);
   the columns' widget wraps stretch so every card in a row is the same height. */
.pr-cards-row .elementor-widget-wrap {
	align-content: stretch;
}
.pr-feature-card {
	height: 100%;
	padding: 32px;
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: var(--pr-radius-card);
}
.pr-feature-card .elementor-icon-box-title {
	margin: 0 0 8px;
	font-family: var(--pr-font-heading);
	font-size: var(--pr-fs-h4);
	font-weight: var(--pr-weight-heading);
	line-height: var(--pr-lh-h4);
	color: var(--pr-ink);
}
.pr-feature-card .elementor-icon-box-description {
	margin: 0;
	font-size: 15px;
	line-height: 1.5;
	color: var(--pr-muted);
}
.pr-feature-card .elementor-icon {
	color: var(--pr-primary);
}

/* Featured projects while fewer than 3 exist: wide horizontal cards
   (inc/projects.php prime_featured_wide_cards + template-parts/listing/item-prime-wide.php) */
.pr-featured-wide {
	display: grid;
	gap: 24px;
}
.pr-wide-card .pr-wide-card-inner {
	display: grid;
	grid-template-columns: 40% 1fr;
	height: auto;
	padding: 0;
	overflow: hidden;
}
.pr-wide-card .pr-wide-card-media {
	position: relative;
	margin: 0;
	height: 100%;
	min-height: 320px;
	border-radius: 0;
}
.pr-wide-card .pr-wide-card-media .listing-image-wrap,
.pr-wide-card .pr-wide-card-media .listing-thumb,
.pr-wide-card .pr-wide-card-media a {
	height: 100%;
}
.pr-wide-card .pr-wide-card-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.pr-wide-card .pr-wide-card-body {
	display: flex;
	flex-direction: column;
	padding: 32px;
}
.pr-wide-card .item-title {
	margin-top: 4px;
}
.pr-wide-card-facts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px 24px;
	margin: 24px 0;
	padding: 20px 0;
	border-top: 1px solid var(--pr-border);
	border-bottom: 1px solid var(--pr-border);
}
.pr-wide-card-facts dt {
	margin-bottom: 4px;
	font-size: var(--pr-fs-small);
	font-weight: 400;
	line-height: var(--pr-lh-small);
	color: var(--pr-muted);
}
.pr-wide-card-facts dd {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--pr-ink);
}
.pr-wide-card .pr-wide-card-footer {
	margin-top: auto;
	padding: 0;
	border: 0;
}
/* Houzez pins the price over the photo and the buttons in a corner on its generic
   cards; in the wide card they sit in the text column. */
.pr-wide-card .item-price-wrap,
.pr-wide-card .item-buttons-wrap .btn-item {
	position: static;
	inset: auto;
}
.pr-wide-card .item-price-wrap {
	margin: 4px 0 8px;
}
.pr-wide-card .item-buttons-wrap .btn-item {
	flex: 0 0 auto;
	min-width: 128px;
	min-height: 44px;
}
@media (max-width: 767px) {
	.pr-wide-card .pr-wide-card-inner {
		grid-template-columns: 1fr;
	}
	.pr-wide-card .pr-wide-card-media {
		min-height: 0;
		aspect-ratio: 4 / 3;
	}
	.pr-wide-card .pr-wide-card-body {
		padding: 24px;
	}
	.pr-wide-card-facts {
		grid-template-columns: 1fr;
		gap: 12px;
	}
	.pr-wide-card .item-buttons-wrap .btn-item {
		flex: 1 1 0;
		min-width: 0;
	}
}

/* No featured project at all: one plain message card */
.pr-coming-soon-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 240px;
	padding: 32px;
	background-color: var(--pr-surface-alt);
	border: 1px solid var(--pr-border);
	border-radius: var(--pr-radius-card);
	text-align: center;
}
.pr-coming-soon-text {
	margin: 0;
	font-family: var(--pr-font-heading);
	font-size: var(--pr-fs-h5);
	font-weight: var(--pr-weight-heading);
	color: var(--pr-ink);
}
.pr-coming-soon-link {
	font-weight: var(--pr-weight-heading);
	color: var(--pr-primary);
}

/* Even line lengths for headings (avoids a lone last word, e.g. "on.") */
h1, h2, h3,
.elementor-heading-title {
	text-wrap: balance;
}

/* Section intros: no extra space under the last paragraph, so a right-hand intro
   lines up with the bottom of the H2 beside it */
.pr-text p:last-child {
	margin-bottom: 0;
}

/* Feature card hover (Why Prime + Services): lift 4px, burgundy border, icon grows
   slightly. No shadows (brand rule). Border-only change when reduced motion is on. */
/* .elementor-widget prefix outranks Elementor's own transition timing on widgets */
.elementor-widget.pr-feature-card {
	transition: transform .2s ease, border-color .2s ease;
}
.pr-feature-card .elementor-icon {
	transition: transform .2s ease;
}
.pr-feature-card:hover {
	transform: translateY(-4px);
	border-color: var(--pr-primary);
}
.pr-feature-card:hover .elementor-icon {
	transform: scale(1.08);
}
@media (prefers-reduced-motion: reduce) {
	.elementor-widget.pr-feature-card,
	.pr-feature-card .elementor-icon {
		transition: none;
	}
	.pr-feature-card:hover,
	.pr-feature-card:hover .elementor-icon {
		transform: none;
	}
}


/* 19. Hero: full-width video (section class pr-hero)
   -------------------------------------------------------------------------- */

/* Light flat overlay (40%, set in Elementor) keeps the footage vivid; a soft ink halo
   behind the hero text only keeps it readable on the bright sand frames. */
.pr-hero .pr-eyebrow,
.pr-hero .pr-hero-title,
.pr-hero .pr-hero-intro {
	text-shadow: 0 1px 16px color-mix(in srgb, var(--pr-ink) 45%, transparent);
}
.pr-hero .pr-hero-title .elementor-heading-title {
	max-width: 18ch;
}
.pr-hero .pr-hero-intro {
	max-width: 560px;
	font-size: 19px;
	line-height: 1.55;
}
.pr-hero .pr-hero-intro p {
	margin-bottom: 0;
}
@media (max-width: 767px) {
	.pr-hero .pr-hero-title br {
		display: none;
	}
	.pr-hero .pr-hero-intro {
		font-size: var(--pr-fs-body);
	}
}


/* 20. Homepage critique fixes (2026-10-10)
   -------------------------------------------------------------------------- */

/* Area tiles in one grid (section class pr-area-grid): 3 per row, 2 per row on phones. */
.pr-area-grid > .elementor-container {
	flex-wrap: wrap;
	row-gap: 24px;
}
.pr-area-grid > .elementor-container > .elementor-column {
	width: 33.333%;
}
@media (max-width: 767px) {
	.pr-area-grid > .elementor-container {
		row-gap: 12px;
	}
	.pr-area-grid > .elementor-container > .elementor-column {
		width: 50%;
	}
	.pr-area-grid > .elementor-container > .elementor-column > .elementor-widget-wrap {
		padding: 0 6px;
	}
	.pr-area-tile .grid-item-content,
	.pr-area-tile .grid-item-text-wrap {
		padding: 14px;
	}
}

/* Services as a journey: four numbered steps joined by a thin line (desktop/tablet),
   stacked on phones. Row class pr-steps-row, columns pr-step. */
.pr-steps-row .pr-step > .elementor-widget-wrap {
	position: relative;
	align-content: flex-start;
}
.pr-step-num .elementor-heading-title {
	position: relative;
	z-index: 1;
	display: inline-block;
	padding-right: 16px;
	font-size: var(--pr-fs-stat);
	line-height: 1;
	background-color: var(--pr-surface-alt);
}
.pr-steps-row .pr-step:not(:last-child) > .elementor-widget-wrap::after {
	content: "";
	position: absolute;
	top: calc(var(--pr-fs-stat) / 2);
	left: 10px;
	right: -20px;
	height: 1px;
	background-color: color-mix(in srgb, var(--pr-primary) 35%, transparent);
}
.elementor-widget.pr-step-num {
	--kit-widget-spacing: 0px;
	margin-bottom: 20px;
}
.elementor-widget.pr-step-title {
	--kit-widget-spacing: 0px;
	margin-bottom: 8px;
}
.pr-step-title .elementor-heading-title {
	font-size: var(--pr-fs-h4);
	font-weight: var(--pr-weight-heading);
	line-height: var(--pr-lh-h4);
}
.pr-step-text p {
	margin: 0;
	max-width: 34ch;
	font-size: 15px;
	line-height: 1.6;
}
/* Tablets show the steps 2 × 2: no line after the end of a row */
@media (min-width: 768px) and (max-width: 1024px) {
	.pr-steps-row .pr-step:nth-child(2) > .elementor-widget-wrap::after {
		display: none;
	}
}
@media (max-width: 767px) {
	.pr-steps-row .pr-step:not(:last-child) > .elementor-widget-wrap::after {
		display: none;
	}
	.pr-steps-row .pr-step:not(:last-child) {
		margin-bottom: 32px;
	}
	.elementor-widget.pr-step-num {
		margin-bottom: 12px;
	}
}

/* Enquiry: phone / WhatsApp / reply time under the intro */
.pr-contact-list .elementor-icon-list-text {
	font-size: var(--pr-fs-body);
}
/* One icon box per line so phone / WhatsApp / clock share one size and one text edge */
.pr-contact-list .elementor-icon-list-item {
	align-items: flex-start;
}
/* Icon centred on the first text line, so a wrapped line keeps the icon beside its start */
.pr-contact-list .elementor-icon-list-icon {
	width: 20px;
	justify-content: center;
	margin-right: 4px;
	padding-top: calc((var(--pr-fs-body) * var(--pr-lh-body) - 20px) / 2);
}
.pr-contact-list .elementor-icon-list-icon svg {
	width: 18px;
	height: 18px;
}
/* The WhatsApp glyph is drawn smaller inside its box than phone/clock; scale it up to match */
.pr-contact-list .elementor-icon-list-icon svg.e-fab-whatsapp {
	width: 20px;
	height: 20px;
}
.pr-contact-list a .elementor-icon-list-text {
	color: var(--pr-ink);
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, var(--pr-primary) 40%, transparent);
	text-underline-offset: 4px;
}
.pr-contact-list a:hover .elementor-icon-list-text {
	color: var(--pr-primary);
}

/* Phones: comfortable 44px tap targets for card buttons, footer links and social icons. */
@media (max-width: 767px) {
	.item-buttons-wrap .btn-item {
		min-height: 44px;
	}
	.footer-wrap .widget_nav_menu li a,
	.footer-wrap .pr-footer-contact a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
	.footer-wrap .widget_nav_menu li {
		margin: 0;
		padding: 0;
	}
	.footer-wrap .footer-social a {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 44px;
		min-height: 44px;
	}
}


/* 21. Featured projects slider (3+ featured projects; inc/projects.php)
   3 cards + an 80px peek of the next on desktop, 2 (+ peek) on tablet, 1.2 on phones.
   Arrows sit at the right of the heading row (section class pr-featured-head). */
.pr-featured-slider {
	overflow: hidden;
}
.pr-featured-slider .swiper-slide {
	width: calc((100% - 3 * 24px - 80px) / 3);
	height: auto;
}
@media (max-width: 1024px) {
	.pr-featured-slider .swiper-slide {
		width: calc((100% - 2 * 24px - 64px) / 2);
	}
}
@media (max-width: 767px) {
	.pr-featured-slider .swiper-slide {
		width: calc((100% - 24px) / 1.2);
	}
}
.pr-featured-slider .item-listing-wrap {
	height: 100%;
}
.pr-featured-slider .item-wrap {
	display: flex;
	flex-direction: column;
	height: 100%;
}

/* Developer / Delivery lines on slider cards */
.pr-card-facts {
	margin: 12px 0 0;
	padding: 12px 0 0;
	list-style: none;
	border-top: 1px solid var(--pr-border);
}
.pr-card-facts li {
	font-size: var(--pr-fs-small);
	line-height: var(--pr-lh-small);
	color: var(--pr-ink);
}
.pr-card-facts li + li {
	margin-top: 4px;
}
.pr-card-facts span {
	color: var(--pr-muted);
}

/* Previous / next: 44px round, 1px border, burgundy arrow; faded at the ends */
.pr-featured-head .elementor-column > .elementor-widget-wrap {
	position: relative;
}
/* The arrows are printed inside the intro widget; let them position against the whole row */
.elementor-widget.pr-featured-intro {
	position: static;
}
/* Keep the intro clear of the arrows where the row is narrow (tablets) */
@media (min-width: 768px) and (max-width: 1024px) {
	.pr-featured-intro:has(.pr-slider-nav) p {
		max-width: calc(100% - 120px);
	}
}
.pr-featured-intro p:last-of-type {
	margin-bottom: 0;
}
/* bottom = intro widget's 25px margin + 10px column padding, so the buttons' bottom
   edge lines up with the intro's last line */
.pr-slider-nav {
	position: absolute;
	right: 10px;
	bottom: 35px;
	display: flex;
	gap: 12px;
}
.pr-featured-head button.pr-slider-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	color: var(--pr-primary);
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: 50%;
	cursor: pointer;
	transition: border-color .2s ease, background-color .2s ease;
}
.pr-featured-head button.pr-slider-btn:hover,
.pr-featured-head button.pr-slider-btn:focus {
	color: var(--pr-primary);
	background-color: var(--pr-surface);
	border-color: var(--pr-border);
}
.pr-slider-prev svg {
	transform: rotate(180deg);
}
.pr-featured-head button.pr-slider-btn:hover:not(.is-disabled) {
	border-color: var(--pr-primary);
	background-color: var(--pr-primary-tint);
}
.pr-slider-btn:focus-visible {
	outline: 2px solid var(--pr-primary);
	outline-offset: 2px;
}
.pr-featured-head button.pr-slider-btn.is-disabled {
	color: var(--pr-muted);
	opacity: .45;
	cursor: default;
}
/* Phones: swipe; arrows hidden */
@media (max-width: 767px) {
	.pr-slider-nav {
		display: none;
	}
}
@media (prefers-reduced-motion: reduce) {
	.pr-slider-btn {
		transition: none;
	}
}


/* 22. Area pages (taxonomy-property_city.php, inc/area-pages.php) and the /areas/ list
   -------------------------------------------------------------------------- */
.pr-area-wrap {
	/* 1160px text column; side padding = Elementor section padding + column padding
	   (24 + 10, phones 16 + 10), so every edge lines up with the homepage sections */
	max-width: 1228px;
	margin: 0 auto;
	padding: 0 34px;
}
.pr-area-section {
	padding: 100px 0;
}
.pr-area-section--white { background-color: var(--pr-surface); }
.pr-area-section--alt   { background-color: var(--pr-surface-alt); }
.pr-area-h2 {
	margin: 0 0 32px;
	font-family: var(--pr-font-heading);
	font-size: var(--pr-fs-h2);
	font-weight: var(--pr-weight-heading);
	line-height: var(--pr-lh-h2);
	color: var(--pr-ink);
}

/* Hero: area photo, flat 45% ink overlay, white text bottom-left */
.pr-area-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 460px;
	padding: 120px 0 64px;
	overflow: hidden;
	background-color: var(--pr-ink);
	isolation: isolate;
}
.pr-area-hero-img {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.pr-area-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-color: color-mix(in srgb, var(--pr-ink) 45%, transparent);
}
.pr-area-hero-content {
	width: 100%;
	color: var(--pr-surface);
}
.pr-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 16px;
	font-size: var(--pr-fs-small);
	line-height: var(--pr-lh-small);
	color: color-mix(in srgb, var(--pr-surface) 85%, transparent);
}
.pr-breadcrumb a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, var(--pr-surface) 40%, transparent);
	text-underline-offset: 3px;
}
.pr-breadcrumb a:hover {
	color: var(--pr-surface);
}
.pr-area-title {
	margin: 0 0 12px;
	font-family: var(--pr-font-heading);
	font-size: var(--pr-fs-h1);
	font-weight: var(--pr-weight-heading);
	line-height: var(--pr-lh-h1);
	color: var(--pr-surface);
}
.pr-area-tagline {
	max-width: 560px;
	margin: 0;
	font-size: 19px;
	line-height: 1.55;
	color: var(--pr-surface);
}
/* Two small facts under the tagline, split by a thin line */
.pr-area-hero-facts {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 0;
	margin: 20px 0 0;
	padding: 0;
	list-style: none;
	font-size: 13px;
	line-height: 1.4;
	color: var(--pr-surface);
}
.pr-area-hero-facts li + li {
	margin-left: 14px;
	padding-left: 14px;
	border-left: 1px solid color-mix(in srgb, var(--pr-surface) 50%, transparent);
}

/* About: text left (max 640px), image right (4:3); image under the text on phones */
.pr-area-about-row {
	display: grid;
	grid-template-columns: minmax(0, 640px) minmax(0, 1fr);
	gap: 64px;
	align-items: center;
}
.pr-area-about {
	font-size: var(--pr-fs-body);
	line-height: var(--pr-lh-body);
	color: var(--pr-ink);
}
.pr-area-about p:last-child {
	margin-bottom: 0;
}
.pr-area-about-media {
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: var(--pr-radius-card);
	background-color: var(--pr-surface-alt);
}
.pr-area-about-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Key facts: five white cards */
.pr-area-facts {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 24px;
	margin: 0;
}
.pr-area-fact {
	display: flex;
	flex-direction: column;
	padding: 24px;
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: var(--pr-radius-card);
}
.pr-area-fact-icon {
	display: inline-flex;
	margin-bottom: 16px;
	color: var(--pr-primary);
}
.pr-area-fact dt {
	margin-bottom: 6px;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--pr-muted);
}
.pr-area-fact dd {
	margin: 0;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--pr-ink);
}

/* Amenities & landmarks: 4 per row; 48px off-white tile with a 22px icon */
.pr-area-amenities {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 28px 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.pr-area-amenities li {
	display: flex;
	align-items: center;
	gap: 14px;
}
.pr-area-amenity-icon {
	display: inline-flex;
	flex: 0 0 48px;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	color: var(--pr-primary);
	background-color: var(--pr-surface-alt);
	border-radius: var(--pr-radius-card);
}
.pr-area-amenity-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.pr-area-amenity-name {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.35;
	color: var(--pr-ink);
}
.pr-area-amenity-distance {
	font-size: 13px;
	line-height: 1.4;
	color: var(--pr-muted);
}

/* Projects in [Area]: 3-column grid of the homepage project card */
.pr-project-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}
.pr-area-empty {
	min-height: 200px;
	background-color: var(--pr-surface);
}
.pr-area-empty-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 24px;
	margin: 0;
}

/* Area tiles (/areas/ and Nearby areas): same look as the homepage Locations tiles —
   4:3 photo, 45% ink, name 24/600 top-left, "More details" 12px uppercase bottom-left,
   arrow bottom-right on hover, photo zooms 3% */
.pr-area-tiles {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}
.pr-area-tiles--all {
	row-gap: 32px;
}
.pr-area-tile2 {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	aspect-ratio: 4 / 3;
	padding: 16px;
	overflow: hidden;
	border-radius: var(--pr-radius-card);
	background-color: var(--pr-ink);
	color: var(--pr-surface);
	text-decoration: none;
	isolation: isolate;
}
.pr-area-tile2 img {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}
.pr-area-tile2::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-color: color-mix(in srgb, var(--pr-ink) 45%, transparent);
}
.pr-area-tile2-head {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.pr-area-tile2-region {
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--pr-surface) 80%, transparent);
}
.pr-area-tile2-name {
	font-family: var(--pr-font-heading);
	font-size: 24px;
	font-weight: var(--pr-weight-heading);
	line-height: 1.3;
	color: var(--pr-surface);
}
.pr-area-tile2-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.pr-area-tile2-more {
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--pr-surface);
}
.pr-area-tile2-arrow {
	font-size: 17px;
	color: var(--pr-surface);
	opacity: 0;
	transform: translateX(-4px);
	transition: opacity .2s ease, transform .2s ease;
}
.pr-area-tile2:hover,
.pr-area-tile2:focus {
	color: var(--pr-surface);
	text-decoration: none;
}
.pr-area-tile2:hover img {
	transform: scale(1.03);
}
.pr-area-tile2:hover .pr-area-tile2-arrow,
.pr-area-tile2:focus-visible .pr-area-tile2-arrow {
	opacity: 1;
	transform: none;
}
.pr-area-tile2:focus-visible {
	outline: 2px solid var(--pr-primary);
	outline-offset: 3px;
}
.pr-area-tile2-tagline {
	margin: 12px 0 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--pr-ink);
}

/* Enquiry block on area pages: off-white section, white card (keeps the alternation) */
.pr-area-enquiry > .elementor > .elementor-section {
	background-color: var(--pr-surface-alt) !important;
}
.pr-area-enquiry .elementor-element-608eb11 {
	background-color: var(--pr-surface) !important;
}

@media (max-width: 1024px) {
	.pr-area-section { padding: 80px 0; }
	.pr-area-about-row { gap: 40px; }
	.pr-area-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.pr-area-amenities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pr-project-grid,
	.pr-area-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pr-area-hero { min-height: 380px; }
}
@media (max-width: 767px) {
	.pr-area-wrap { padding: 0 26px; }
	.pr-area-section { padding: 64px 0; }
	.pr-area-h2 { margin-bottom: 24px; }
	.pr-area-hero { min-height: 360px; padding: 96px 0 40px; }
	.pr-area-tagline { font-size: var(--pr-fs-body); }
	.pr-area-about-row { grid-template-columns: 1fr; gap: 32px; }
	.pr-area-facts { grid-template-columns: 1fr 1fr; gap: 12px; }
	.pr-area-fact { padding: 20px; }
	.pr-area-fact dd { font-size: 16px; }
	.pr-area-facts .pr-area-fact:last-child:nth-child(odd) { grid-column: 1 / -1; }
	.pr-area-amenities { grid-template-columns: 1fr 1fr; gap: 20px 12px; }
	.pr-area-amenities li { flex-direction: column; align-items: flex-start; gap: 10px; }
	.pr-project-grid { grid-template-columns: 1fr; }
	.pr-area-tiles { grid-template-columns: 1fr; gap: 16px; }
	/* /areas/ on phones: 2 tiles per row like the homepage */
	.pr-area-tiles--all { grid-template-columns: 1fr 1fr; gap: 12px; }
	.pr-area-tiles--all .pr-area-tile2 { padding: 12px; }
	.pr-area-tiles--all .pr-area-tile2 { gap: 8px; }
	.pr-area-tiles--all .pr-area-tile2-name { font-size: 16px; line-height: 1.25; }
}
@media (prefers-reduced-motion: reduce) {
	.pr-area-tile2 img,
	.pr-area-tile2-arrow { transition: none; }
}


/* 23. Main menu: "See all areas" at the end of the Areas dropdown (menu item class pr-menu-all) */
/* .main-nav .navbar-nav … prefix outranks Houzez's `.main-nav .navbar-nav .nav-item .nav-item a` */
.main-nav .navbar-nav .nav-item li.pr-menu-all > a.dropdown-item,
.offcanvas-mobile-menu-body .navbar-nav li.pr-menu-all > a.dropdown-item {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 600;
	color: var(--pr-primary);
	background-color: var(--pr-primary-tint);
	border-bottom: 0;
}
li.pr-menu-all > a.dropdown-item::after {
	content: "\2192"; /* → */
	transition: transform .2s ease;
}
.main-nav .navbar-nav .nav-item li.pr-menu-all > a.dropdown-item:hover,
.main-nav .navbar-nav .nav-item li.pr-menu-all > a.dropdown-item:focus,
.offcanvas-mobile-menu-body .navbar-nav li.pr-menu-all > a.dropdown-item:hover {
	color: var(--pr-primary-hover);
	background-color: var(--pr-primary-tint);
}
li.pr-menu-all > a.dropdown-item:hover::after {
	transform: translateX(3px);
}
@media (prefers-reduced-motion: reduce) {
	li.pr-menu-all > a.dropdown-item::after { transition: none; }
}


/* 24. Projects page + search results (prime-projects.php, inc/projects-page.php)
   -------------------------------------------------------------------------- */
.pr-projects-head {
	padding: 48px 0 40px;
	background-color: var(--pr-surface);
}
.pr-breadcrumb--dark {
	color: var(--pr-muted);
}
.pr-breadcrumb--dark a {
	color: var(--pr-ink);
	text-decoration-color: var(--pr-border);
}
.pr-breadcrumb--dark a:hover {
	color: var(--pr-primary);
}
.pr-projects-title {
	margin: 0 0 8px;
	font-family: var(--pr-font-heading);
	font-size: var(--pr-fs-h1);
	font-weight: var(--pr-weight-heading);
	line-height: var(--pr-lh-h1);
	color: var(--pr-ink);
}
.pr-projects-intro {
	max-width: 640px;
	margin: 0 0 32px;
	font-size: var(--pr-fs-body);
	line-height: var(--pr-lh-body);
	color: var(--pr-ink);
}

/* Filter bar: one white card */
.pr-filter-card {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
	gap: 16px;
	align-items: end;
	padding: 20px;
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: var(--pr-radius-card);
}
.pr-filter-field label,
.pr-projects-sort label {
	display: block;
	margin-bottom: 6px;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--pr-muted);
}
.pr-filter-field select,
.pr-projects-sort select {
	width: 100%;
	height: 48px;
	padding: 0 40px 0 14px;
	font-family: var(--pr-font-body);
	font-size: 15px;
	color: var(--pr-ink);
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: var(--pr-radius-btn);
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}
/* Chevron drawn with borders in the muted token (no image) */
.pr-filter-field,
.pr-projects-sort {
	position: relative;
}
.pr-filter-field::after,
.pr-projects-sort::after {
	content: "";
	position: absolute;
	right: 17px;
	bottom: 21px;
	width: 7px;
	height: 7px;
	border-right: 1.5px solid var(--pr-muted);
	border-bottom: 1.5px solid var(--pr-muted);
	transform: rotate(45deg);
	pointer-events: none;
}
.pr-filter-field select:focus,
.pr-projects-sort select:focus {
	border-color: var(--pr-primary);
	outline: 2px solid color-mix(in srgb, var(--pr-primary) 25%, transparent);
	outline-offset: 0;
}
.pr-filter-actions {
	display: flex;
	align-items: center;
	gap: 16px;
}
.pr-filter-submit {
	height: 48px;
	padding: 0 32px;
	font-family: var(--pr-font-body);
	font-size: var(--pr-fs-button);
	font-weight: 600;
	color: var(--pr-surface);
	background-color: var(--pr-primary);
	border: 0;
	border-radius: var(--pr-radius-btn);
	cursor: pointer;
	transition: background-color .2s ease;
}
.pr-filter-submit:hover,
.pr-filter-submit:focus-visible {
	background-color: var(--pr-primary-hover);
}
.pr-filter-clear {
	font-size: 15px;
	font-weight: 500;
	color: var(--pr-primary);
	text-decoration: underline;
	text-underline-offset: 3px;
	white-space: nowrap;
}

/* Results + sidebar */
.pr-projects-body {
	padding: 48px 0 100px;
	background-color: var(--pr-surface-alt);
}
.pr-projects-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 32px;
	align-items: start;
}
.pr-projects-toolbar {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 20px;
}
.pr-projects-count {
	margin: 0;
	font-size: 16px;
	font-weight: 600;
	color: var(--pr-ink);
}
.pr-projects-sort {
	width: 220px;
}
.pr-projects-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

/* Pagination */
/* Live filters (prime-projects.php): results fade while the new set loads */
.pr-projects-results {
	transition: opacity .15s ease;
}
.pr-projects-results.is-loading {
	opacity: .45;
	pointer-events: none;
	cursor: progress;
}
.pr-projects-results.is-loading .pr-projects-count::after {
	content: " · updating…";
	color: var(--pr-muted);
}
@media (prefers-reduced-motion: reduce) {
	.pr-projects-results { transition: none; }
}
.pr-pagination {
	margin-top: 40px;
}
.pr-pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.pr-pagination a,
.pr-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 14px;
	font-weight: 500;
	color: var(--pr-ink);
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: var(--pr-radius-btn);
}
.pr-pagination .current {
	color: var(--pr-surface);
	background-color: var(--pr-primary);
	border-color: var(--pr-primary);
}
.pr-pagination a:hover {
	color: var(--pr-primary);
	border-color: var(--pr-primary);
}

/* Sidebar boxes */
.pr-projects-sidebar {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.pr-side-box {
	padding: 24px;
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: var(--pr-radius-card);
}
/* .pr-projects-sidebar prefix outranks Elementor's site-wide H2 size */
.pr-projects-sidebar .pr-side-title {
	margin: 0 0 16px;
	font-family: var(--pr-font-heading);
	font-size: var(--pr-fs-h5);
	font-weight: var(--pr-weight-heading);
	line-height: var(--pr-lh-h5);
	color: var(--pr-ink);
}
.pr-side-projects {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.pr-side-projects a {
	display: flex;
	gap: 14px;
	align-items: center;
	color: var(--pr-ink);
	text-decoration: none;
}
.pr-side-thumb {
	flex: 0 0 80px;
	width: 80px;
	height: 60px;
	object-fit: cover;
	border-radius: var(--pr-radius-btn);
}
.pr-side-project-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.pr-side-project-name {
	font-family: var(--pr-font-heading);
	font-size: 16px;
	font-weight: var(--pr-weight-heading);
	line-height: 1.3;
}
.pr-side-projects a:hover .pr-side-project-name {
	color: var(--pr-primary);
}
.pr-side-project-area {
	font-size: 13px;
	line-height: 1.4;
	color: var(--pr-muted);
}
.pr-side-project-price {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
}
.pr-side-links {
	margin: 0;
	padding: 0;
	list-style: none;
	columns: 1;
}
.pr-side-links li + li {
	border-top: 1px solid var(--pr-border);
}
.pr-side-links a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 40px;
	font-size: 15px;
	color: var(--pr-ink);
	text-decoration: none;
}
.pr-side-links a::after {
	content: "\203A"; /* › */
	font-size: 18px;
	color: var(--pr-muted);
}
.pr-side-links a:hover {
	color: var(--pr-primary);
}
.pr-side-whatsapp {
	background-color: var(--pr-primary-tint);
	border-color: color-mix(in srgb, var(--pr-primary) 15%, transparent);
}
.pr-side-whatsapp-text {
	margin: 0 0 16px;
	font-family: var(--pr-font-heading);
	font-size: var(--pr-fs-h5);
	font-weight: var(--pr-weight-heading);
	line-height: 1.35;
	color: var(--pr-ink);
}
.pr-side-whatsapp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	height: 48px;
	font-size: var(--pr-fs-button);
	font-weight: 600;
	color: var(--pr-surface);
	background-color: var(--pr-primary);
	border-radius: var(--pr-radius-btn);
	text-decoration: none;
	transition: background-color .2s ease;
}
.pr-side-whatsapp-btn:hover,
.pr-side-whatsapp-btn:focus-visible {
	color: var(--pr-surface);
	background-color: var(--pr-primary-hover);
}

@media (max-width: 1199px) {
	.pr-projects-layout { grid-template-columns: 1fr; }
	.pr-projects-sidebar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
	.pr-filter-card { grid-template-columns: 1fr 1fr; }
	.pr-filter-actions { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
	.pr-projects-head { padding: 32px 0 32px; }
	.pr-projects-intro { margin-bottom: 24px; }
	.pr-filter-card { grid-template-columns: 1fr; padding: 16px; }
	.pr-filter-submit { flex: 1; }
	.pr-projects-body { padding: 32px 0 64px; }
	.pr-projects-toolbar { flex-wrap: wrap; }
	.pr-projects-sort { width: 100%; }
	.pr-projects-grid { grid-template-columns: 1fr; }
	.pr-projects-sidebar { grid-template-columns: 1fr; }
	.pr-side-links a { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
	.pr-filter-submit,
	.pr-side-whatsapp-btn { transition: none; }
}


/* 25. Project detail page (single-property-project.php, inc/project-page.php)
   -------------------------------------------------------------------------- */
.pr-proj-section {
	padding: 80px 0;
}
.pr-proj-section--white { background-color: var(--pr-surface); }
.pr-proj-section--alt   { background-color: var(--pr-surface-alt); }
/* .pr-proj-page prefix outranks Elementor's site-wide H2 size */
.pr-proj-page .pr-proj-h2 {
	margin: 0 0 28px;
	font-family: var(--pr-font-heading);
	font-size: var(--pr-fs-h3);
	font-weight: var(--pr-weight-heading);
	line-height: var(--pr-lh-h3);
	color: var(--pr-ink);
}

/* 1. Header */
.pr-proj-head {
	padding: 40px 0 24px;
	background-color: var(--pr-surface);
}
.pr-proj-head-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 40px;
}
.pr-proj-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 12px;
}
.pr-badge {
	display: inline-flex;
	align-items: center;
	height: 26px;
	padding: 0 10px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--pr-ink);
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: 999px;
}
.pr-badge--featured {
	color: var(--pr-primary);
	background-color: var(--pr-primary-tint);
	border-color: transparent;
}
.pr-proj-page .pr-proj-title {
	margin: 0 0 8px;
	font-family: var(--pr-font-heading);
	font-size: var(--pr-fs-h2);
	font-weight: var(--pr-weight-heading);
	line-height: var(--pr-lh-h2);
	color: var(--pr-ink);
}
.pr-proj-area,
.pr-proj-address {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	font-size: 16px;
	color: var(--pr-muted);
}
.pr-proj-area svg,
.pr-proj-address svg {
	flex: 0 0 auto;
	color: var(--pr-primary);
}
.pr-proj-head-side {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 12px;
}
.pr-proj-price {
	margin: 0;
	font-family: var(--pr-font-heading);
	font-size: 28px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--pr-ink);
}

/* 2. Gallery: large 16:9 (60%) + 2×2 thumbnails; slider on phones */
.pr-proj-gallery-section {
	padding: 0 0 56px;
	background-color: var(--pr-surface);
}
.pr-proj-gallery {
	position: relative;
	display: grid;
	grid-template-columns: 3fr 2fr;
	gap: 12px;
}
.pr-proj-gallery.is-single {
	grid-template-columns: 1fr;
}
.pr-proj-gallery button,
.pr-proj-slider button {
	display: block;
	padding: 0;
	overflow: hidden;
	background: var(--pr-surface-alt);
	border: 0;
	border-radius: var(--pr-radius-card);
	cursor: zoom-in;
}
.pr-proj-gallery img,
.pr-proj-slider img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}
.pr-proj-gallery-main {
	aspect-ratio: 16 / 9;
}
/* Optional hero video in the main slot (prime_hero_video): fills the box like the photo; poster = still */
.pr-proj-gallery-main .pr-proj-video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: var(--pr-surface-alt);
}
.pr-proj-gallery-thumbs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 12px;
}
.pr-proj-gallery button:hover img {
	transform: scale(1.03);
}
.pr-proj-gallery .pr-proj-gallery-all {
	position: absolute;
	right: 16px;
	bottom: 16px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 44px;
	padding: 0 18px;
	font-size: 15px;
	font-weight: 600;
	color: var(--pr-ink);
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: var(--pr-radius-btn);
	cursor: pointer;
}
.pr-proj-gallery .pr-proj-gallery-all:hover {
	color: var(--pr-primary);
	border-color: var(--pr-primary);
}
.pr-proj-slider {
	display: none;
}
.pr-lightbox {
	width: 100vw;
	max-width: 100vw;
	height: 100vh;
	max-height: 100vh;
	margin: 0;
	padding: 0;
	background: color-mix(in srgb, var(--pr-ink) 94%, transparent);
	border: 0;
}
.pr-lightbox[open] {
	display: flex;
	align-items: center;
	justify-content: center;
}
.pr-lightbox::backdrop {
	background: transparent;
}
.pr-lightbox-img {
	max-width: 88vw;
	max-height: 82vh;
	object-fit: contain;
	border-radius: var(--pr-radius-btn);
}
.pr-lightbox button {
	position: absolute;
	width: 48px;
	height: 48px;
	font-size: 32px;
	line-height: 1;
	color: var(--pr-surface);
	background: transparent;
	border: 1px solid color-mix(in srgb, var(--pr-surface) 40%, transparent);
	border-radius: 50%;
	cursor: pointer;
}
.pr-lightbox-close { top: 20px; right: 20px; }
.pr-lightbox-prev { left: 20px; top: 50%; transform: translateY(-50%); }
.pr-lightbox-next { right: 20px; top: 50%; transform: translateY(-50%); }
.pr-lightbox-count {
	position: absolute;
	bottom: 20px;
	left: 0;
	right: 0;
	margin: 0;
	text-align: center;
	font-size: 14px;
	color: var(--pr-surface);
}

/* Body: sections + sticky summary card beside them on wide screens */
.pr-proj-body {
	position: relative;
}
.pr-proj-aside-layer {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
.pr-proj-aside-wrap {
	display: flex;
	justify-content: flex-end;
	height: 100%;
}
.pr-proj-aside {
	width: 320px;
	height: 100%;
	padding: 80px 0;
}
.pr-proj-aside-card {
	position: sticky;
	top: 112px; /* below the sticky header */
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 24px;
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: var(--pr-radius-card);
	pointer-events: auto;
}
.pr-proj-aside-price {
	margin: 0;
	font-family: var(--pr-font-heading);
	font-size: 26px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--pr-ink);
}
.pr-proj-aside-facts {
	margin: 4px 0 8px;
	padding: 12px 0;
	border-top: 1px solid var(--pr-border);
	border-bottom: 1px solid var(--pr-border);
}
.pr-proj-aside-facts div {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 4px 0;
	font-size: 15px;
}
.pr-proj-aside-facts dt {
	font-weight: 400;
	color: var(--pr-muted);
}
.pr-proj-aside-facts dd {
	margin: 0;
	font-weight: 600;
	text-align: right;
	color: var(--pr-ink);
}
.pr-proj-btn,
.pr-btn-primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	padding: 0 24px;
	font-size: var(--pr-fs-button);
	font-weight: 600;
	border-radius: var(--pr-radius-btn);
	text-decoration: none;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.pr-proj-btn--whatsapp,
.pr-proj-btn--whatsapp:hover {
	color: var(--pr-surface);
	background-color: var(--pr-whatsapp);
}
.pr-proj-btn--whatsapp:hover { filter: brightness(.94); }
.pr-proj-btn--call {
	color: var(--pr-ink);
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
}
.pr-proj-btn--call:hover {
	color: var(--pr-primary);
	border-color: var(--pr-primary);
}
.pr-proj-btn--primary,
.pr-btn-primary {
	color: var(--pr-surface);
	background-color: var(--pr-primary);
}
.pr-proj-btn--primary:hover,
.pr-btn-primary:hover {
	color: var(--pr-surface);
	background-color: var(--pr-primary-hover);
}
body.admin-bar .pr-proj-aside-card { top: 144px; } /* + WordPress admin bar */
@media (min-width: 1200px) {
	.pr-proj-main {
		max-width: calc(100% - 320px - 48px);
	}
}
@media (max-width: 1199px) {
	.pr-proj-aside-layer { display: none; }
}

/* 3. Key facts: area-page cards, 3 per row in the main column */
.pr-area-facts.pr-proj-facts {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* 4. About */
.pr-proj-about {
	max-width: 720px;
	font-size: var(--pr-fs-body);
	line-height: var(--pr-lh-body);
	color: var(--pr-ink);
}
.pr-proj-about p:last-child { margin-bottom: 0; }

/* 5. Available units: table (stacked cards on phones) */
.pr-units {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	background-color: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: var(--pr-radius-card);
	overflow: hidden;
}
.pr-units th,
.pr-units td {
	padding: 16px 20px;
	text-align: left;
	vertical-align: middle;
	border-bottom: 1px solid var(--pr-border);
}
.pr-units tbody tr:last-child th,
.pr-units tbody tr:last-child td {
	border-bottom: 0;
}
.pr-units thead th {
	white-space: nowrap;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--pr-muted);
	background-color: var(--pr-surface);
}
.pr-units tbody th {
	font-weight: 600;
}
.pr-units tbody th a {
	color: var(--pr-ink);
	text-decoration: underline;
	text-decoration-color: var(--pr-border);
	text-underline-offset: 4px;
}
.pr-units tbody th a:hover { color: var(--pr-primary); }
.pr-units-price { font-weight: 600; white-space: nowrap; }
.pr-units-action { text-align: right; }
.pr-units-enquire {
	display: inline-flex;
	align-items: center;
	height: 40px;
	padding: 0 16px;
	font-weight: 600;
	color: var(--pr-primary);
	border: 1px solid var(--pr-primary);
	border-radius: var(--pr-radius-btn);
	text-decoration: none;
	white-space: nowrap;
}
.pr-units-enquire:hover {
	color: var(--pr-surface);
	background-color: var(--pr-primary);
}

/* 7. Location */
/* ID + class: Houzez gives the map container its own height */
#houzez-single-listing-map-address.pr-proj-map {
	height: 400px;
	margin-bottom: 20px;
	overflow: hidden;
	border-radius: var(--pr-radius-card);
	border: 1px solid var(--pr-border);
}
.pr-proj-location-text {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 24px;
}
.pr-proj-area-link {
	font-weight: 600;
	color: var(--pr-primary);
	text-decoration: none;
}
.pr-proj-area-link:hover { text-decoration: underline; }

/* 8. Master plan & brochure */
.pr-proj-masterplan {
	display: block;
	margin-bottom: 24px;
	overflow: hidden;
	border-radius: var(--pr-radius-card);
	border: 1px solid var(--pr-border);
}
.pr-proj-masterplan img { width: 100%; height: auto; }

/* 9. Enquiry: the shared Elementor block, background follows the alternation */
.pr-proj-enquiry.pr-proj-section--alt > .elementor > .elementor-section { background-color: var(--pr-surface-alt) !important; }
.pr-proj-enquiry.pr-proj-section--alt .elementor-element-608eb11 { background-color: var(--pr-surface) !important; }
.pr-proj-enquiry.pr-proj-section--white > .elementor > .elementor-section { background-color: var(--pr-surface) !important; }
.pr-proj-enquiry { scroll-margin-top: 100px; }

/* Phones / tablets: bottom bar (71px, like Houzez's), floating WhatsApp sits above it */
.pr-proj-bar {
	display: none;
}
@media (max-width: 991.98px) {
	.pr-proj-bar {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 90;
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 8px;
		height: calc(71px + env(safe-area-inset-bottom, 0px));
		padding: 11px 12px calc(11px + env(safe-area-inset-bottom, 0px));
		background-color: var(--pr-surface);
		border-top: 1px solid var(--pr-border);
	}
	body:has(.pr-proj-bar) { padding-bottom: 71px; }
	.pr-proj-bar-btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		font-size: 15px;
		font-weight: 600;
		color: var(--pr-ink);
		background-color: var(--pr-surface);
		border: 1px solid var(--pr-border);
		border-radius: var(--pr-radius-btn);
		text-decoration: none;
	}
	.pr-proj-bar-btn--whatsapp { color: var(--pr-surface); background-color: var(--pr-whatsapp); border-color: var(--pr-whatsapp); }
	.pr-proj-bar-btn--primary { color: var(--pr-surface); background-color: var(--pr-primary); border-color: var(--pr-primary); }
}

@media (max-width: 1024px) {
	.pr-area-facts.pr-proj-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.pr-proj-section { padding: 56px 0; }
	.pr-proj-head { padding: 24px 0 16px; }
	.pr-proj-head-side { align-items: flex-start; }
	.pr-proj-gallery-section { padding-bottom: 40px; }
	.pr-proj-gallery { display: none; }
	.pr-proj-slider {
		display: flex;
		gap: 10px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		margin: 0 -26px;
		padding: 0 26px;
		scrollbar-width: none;
	}
	.pr-proj-slider::-webkit-scrollbar { display: none; }
	.pr-proj-slide {
		flex: 0 0 88%;
		aspect-ratio: 4 / 3;
		scroll-snap-align: center;
	}
	.pr-units,
	.pr-units tbody,
	.pr-units tr,
	.pr-units th,
	.pr-units td { display: block; }
	.pr-units { border: 0; background: transparent; }
	.pr-units thead { display: none; }
	.pr-units tbody { display: flex; flex-direction: column; gap: 12px; }
	.pr-units tr {
		display: grid;
		grid-template-columns: 1fr 1fr;
		padding: 16px;
		background-color: var(--pr-surface);
		border: 1px solid var(--pr-border);
		border-radius: var(--pr-radius-card);
	}
	.pr-units th,
	.pr-units td { padding: 6px 0; border: 0; }
	.pr-units tbody th { grid-column: 1 / -1; font-size: 17px; padding-bottom: 10px; }
	.pr-units td[data-label]::before {
		content: attr(data-label);
		display: block;
		font-size: 12px;
		letter-spacing: .06em;
		text-transform: uppercase;
		color: var(--pr-muted);
	}
	.pr-units-action { grid-column: 1 / -1; text-align: left; padding-top: 10px !important; }
	.pr-units-enquire { width: 100%; justify-content: center; height: 44px; }
	#houzez-single-listing-map-address.pr-proj-map { height: 300px; }
}
@media (prefers-reduced-motion: reduce) {
	.pr-proj-gallery img, .pr-proj-btn, .pr-btn-primary { transition: none; }
}

/* Units (Houzez single template): "Back to [project]" above the title */
.pr-unit-back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 16px 0 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--pr-primary);
	text-decoration: none;
}
.pr-unit-back:hover { text-decoration: underline; }


/* 26. About page (page 16650, Elementor) */
.elementor-widget.pr-about-photo img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--pr-radius-card);
}
/* Meet the founder: 280px round portrait left, compact text right; stacked + centred on phones */
.pr-founder > .elementor-container > .pr-founder-photo-col {
	flex: 0 0 320px;
	width: 320px !important;
}
.pr-founder > .elementor-container > .elementor-column:last-child {
	flex: 1 1 auto;
	width: auto !important;
}
.elementor-widget.pr-founder-photo img {
	width: 280px;
	height: 280px;
	object-fit: cover;
	border-radius: 50%;
	border: 1px solid var(--pr-border); /* defines the white studio background on the off-white band */
}
.elementor-widget.pr-founder-name,
.elementor-widget.pr-founder-role {
	--kit-widget-spacing: 0px;
}
.pr-founder-name .elementor-heading-title {
	font-family: var(--pr-font-heading);
	font-size: 28px;
	font-weight: 600;
	line-height: 1.25;
}
.pr-founder-role .elementor-heading-title {
	font-family: var(--pr-font-body);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;
}
@media (max-width: 767px) {
	.pr-founder > .elementor-container > .pr-founder-photo-col,
	.pr-founder > .elementor-container > .elementor-column:last-child {
		flex: none;
		width: 100% !important;
	}
	.pr-founder > .elementor-container > .pr-founder-photo-col { margin-bottom: 24px; }
	.elementor-widget.pr-founder-photo,
	.pr-founder > .elementor-container > .elementor-column:last-child { text-align: center; }
	.elementor-widget.pr-founder-photo img { display: block; margin: 0 auto; }
	.pr-founder .pr-text { margin-left: auto; margin-right: auto; }
	.pr-founder-links .elementor-icon-list-items { justify-content: center; }
}
/* How we work (About only): roomier cards */
.pr-about-cards .elementor-widget.pr-feature-card {
	padding: 40px;
}
.pr-about-cards .pr-feature-card .elementor-icon-box-title,
.pr-about-cards .pr-feature-card .elementor-icon-box-title a {
	font-size: 22px;
	font-weight: 600;
	line-height: 1.3;
}
.pr-about-cards .pr-feature-card .elementor-icon-box-description {
	font-size: 16px;
	line-height: 1.6;
}
@media (max-width: 767px) {
	.pr-about-cards .elementor-widget.pr-feature-card { padding: 28px; }
}
/* Our story: space between the text and the photo (columns keep the default gap so edges align) */
@media (min-width: 768px) {
	.pr-about-story > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap { padding-right: 48px !important; }
}


/* 27. Footer layout (2026-10-10): brand column 35%, three link columns; headings 18px,
   links 15px with 12px spacing; social icons under the tagline; "Privacy policy · Terms"
   in the bottom bar (Houzez Footer Menu location = "Footer — Legal").
   -------------------------------------------------------------------------- */
@media (min-width: 992px) {
	.footer-top-wrap .row > div:first-child {
		flex: 0 0 auto;
		width: 35%;
	}
	.footer-top-wrap .row > div:not(:first-child) {
		flex: 0 0 auto;
		width: 21.6667%;
	}
}
.footer-wrap .widget-title {
	margin-bottom: 20px !important;
	font-family: var(--pr-font-heading);
	font-size: 18px;
	line-height: 1.3;
}
.footer-wrap .widget_nav_menu ul {
	margin: 0;
	padding: 0;
}
.footer-wrap .widget_nav_menu li {
	margin: 0 0 12px;
	padding: 0;
	border: 0;
}
.footer-wrap .widget_nav_menu li a,
.pr-footer-contact a,
.pr-footer-contact li {
	font-size: 15px;
	line-height: 1.5;
}
/* "View all areas →": full white, bold, arrow nudges right on hover */
.footer-wrap .footer-widget.widget_nav_menu ul li.pr-footer-all > a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 600 !important; /* same Houzez :not() rule as above */
	color: var(--pr-on-primary);
}
.footer-wrap .widget_nav_menu li.pr-footer-all a::after {
	content: "\2192"; /* → */
	transition: transform .2s ease;
}
.footer-wrap .widget_nav_menu li.pr-footer-all a:hover::after,
.footer-wrap .widget_nav_menu li.pr-footer-all a:focus-visible::after {
	transform: translateX(4px);
}
.pr-footer-contact li {
	margin-bottom: 16px;
}
/* Social icons under the tagline */
.pr-footer-social {
	display: flex;
	gap: 12px;
	margin: 20px 0 0;
	padding: 0;
}
.pr-footer-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	color: var(--pr-on-primary);
	background-color: color-mix(in srgb, var(--pr-on-primary) 12%, transparent);
	border-radius: 50%;
	transition: background-color .2s ease, color .2s ease;
}
.footer-wrap .pr-footer-social a:hover,
.footer-wrap .pr-footer-social a:focus-visible {
	color: var(--pr-primary);
	background-color: var(--pr-on-primary);
}
.pr-footer-social .pr-social-icon {
	display: block;
	width: 18px;
	height: 18px;
}
/* Bottom bar: © left, "Privacy policy · Terms" right */
.footer-bottom-wrap .footer-copyright,
.footer-bottom-wrap .footer-nav a {
	font-size: 14px;
}
.footer-bottom-wrap .footer-nav ul.nav {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0;
	margin: 0;
	padding: 0;
}
.footer-bottom-wrap .footer-nav ul.nav > li {
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: 0;
	white-space: nowrap;
}
.footer-bottom-wrap .footer-nav ul.nav > li + li::before {
	content: "\00B7"; /* · */
	margin: 0 10px;
	color: color-mix(in srgb, var(--pr-on-primary) 60%, transparent);
}
.footer-bottom-wrap .footer-nav .nav a {
	padding: 0;
}
@media (max-width: 767px) {
	.pr-footer-social {
		justify-content: flex-start;
	}
	.pr-footer-social a {
		width: 44px;
		height: 44px;
	}
	.footer-wrap .widget_nav_menu li {
		margin-bottom: 0;
	}
}
@media (prefers-reduced-motion: reduce) {
	.footer-wrap .widget_nav_menu li.pr-footer-all a::after,
	.pr-footer-social a { transition: none; }
}

/* 28. Contact page (page 16941): form 60% · details card 40% · office map.
   Card + map come from [prime_contact_card] / [prime_office_map] (inc/contact.php). */
@media (min-width: 1025px) {
	.pr-contact-main .pr-contact-form-col > .elementor-widget-wrap {
		padding-right: 48px;
	}
}
.pr-contact-details-col .elementor-widget:not(:last-child) {
	margin-bottom: 0;
}
.pr-contact-card {
	margin: 0;
	padding: 8px 32px;
	background: var(--pr-surface);
	border: 1px solid var(--pr-border);
	border-radius: var(--pr-radius-card);
}
.pr-contact-card-row {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	padding: 20px 0;
}
.pr-contact-card-row + .pr-contact-card-row {
	border-top: 1px solid var(--pr-border);
}
.pr-contact-card-icon {
	flex: 0 0 20px;
	margin-top: 2px;
	color: var(--pr-primary);
}
.pr-contact-card-label {
	display: block;
	margin-bottom: 4px;
	font-family: var(--pr-font-body);
	font-size: 14px;
	line-height: 1.5;
	color: var(--pr-muted);
}
.pr-contact-card-value {
	display: block;
	font-family: var(--pr-font-body);
	font-size: var(--pr-fs-body);
	line-height: 1.5;
	color: var(--pr-ink);
	overflow-wrap: break-word;
}
.pr-contact-card-value a {
	color: var(--pr-ink);
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, var(--pr-primary) 40%, transparent);
	text-underline-offset: 4px;
}
.pr-contact-card-value a:hover,
.pr-contact-card-value a:focus-visible {
	color: var(--pr-primary);
}
.pr-contact-card-value a.pr-contact-card-more {
	display: inline-block;
	margin-top: 8px;
	font-size: 15px;
	font-weight: 600;
	color: var(--pr-primary);
	text-decoration: none;
}
.pr-contact-card-value a.pr-contact-card-more:hover {
	color: var(--pr-primary-hover);
}
/* Social icons on a light background: burgundy on the brand tint */
.pr-footer-social.pr-social--light {
	margin-top: 24px;
}
.pr-social--light a {
	color: var(--pr-primary);
	background-color: var(--pr-primary-tint);
}
.pr-social--light a:hover,
.pr-social--light a:focus-visible {
	color: var(--pr-on-primary);
	background-color: var(--pr-primary);
}
/* Office map: full width, 400px; own stacking context so Leaflet's panes stay under the sticky header */
.pr-office-map {
	height: 400px;
	width: 100%;
	position: relative;
	z-index: 0;
	isolation: isolate;
	background: var(--pr-surface-alt);
}
.pr-map-pin span {
	display: block;
	width: 28px;
	height: 28px;
	background: var(--pr-primary);
	border: 3px solid var(--pr-on-primary);
	border-radius: 50% 50% 50% 0;
	transform: rotate(-45deg);
}
@media (max-width: 1024px) {
	.pr-contact-details-col {
		margin-top: 40px;
	}
}
@media (max-width: 767px) {
	.pr-contact-card {
		padding: 4px 20px;
	}
	.pr-office-map {
		height: 320px;
	}
	.pr-footer-social.pr-social--light {
		justify-content: flex-start;
	}
}


/* 29. Phones (≤767px), 2026-10-11 — one pass across the site.
   Type scale (style.css): H1 32 · H2 26 · H3 22 · card titles 17 · body 16. Elementor section
   padding on phones is 48px (set per section in Elementor); template pages match it here.
   Icons: Icon Box / Icon List widgets print line icons (inc/mobile.php) on a soft pink square.
   -------------------------------------------------------------------------- */

/* Line icons in feature cards: 24px burgundy line on a 48px brand-tint square (all sizes) */
.pr-feature-card .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	font-size: 24px;
	background-color: var(--pr-primary-tint);
	border-radius: 10px;
}
.pr-feature-card .elementor-icon .pr-line-icon {
	width: 24px;
	height: 24px;
}
/* Elementor fills its icon SVGs; line icons are strokes only */
.elementor-widget .pr-line-icon,
.elementor-widget .pr-line-icon * {
	fill: none !important;
	stroke: currentColor;
}
.pr-contact-list .elementor-icon-list-icon .pr-line-icon {
	width: 20px;
	height: 20px;
	color: var(--pr-primary);
}

/* Phone-only contact buttons ([prime_contact_buttons]); hidden on larger screens */
.pr-contact-buttons {
	display: none;
}

@media (max-width: 767px) {
	/* Template pages: same 48px rhythm as the Elementor pages */
	.pr-area-section,
	.pr-proj-section {
		padding: 48px 0;
	}

	/* Floating buttons: WhatsApp 48px; no back-to-top on phones */
	.pr-whatsapp-float {
		right: 16px;
		bottom: calc(16px + env(safe-area-inset-bottom, 0px));
		width: 48px;
		height: 48px;
		font-size: 26px;
	}
	.single-property .pr-whatsapp-float {
		bottom: calc(83px + env(safe-area-inset-bottom, 0px));
	}
	.back-to-top-wrap,
	.single-property .back-to-top-wrap {
		display: none !important;
	}

	/* Tap targets: every button and in-text link at least 44px tall */
	.elementor-button,
	.btn,
	.pr-filter-submit,
	.pr-pagination a,
	.pr-pagination span {
		min-height: 44px;
	}
	.pr-breadcrumb {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		column-gap: 6px;
	}
	.pr-breadcrumb a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}

	/* Footer links as 44px rows with a hairline between them */
	.footer-wrap .widget_nav_menu ul li {
		border-bottom: 1px solid color-mix(in srgb, var(--pr-on-primary) 14%, transparent);
	}
	.footer-wrap .widget_nav_menu ul li a {
		display: flex !important;
		width: 100%;
		min-height: 44px;
	}

	/* ---- Full-screen menu panel (template-parts/header/nav-mobile.php) ---- */
	.pr-mobile-menu.offcanvas {
		width: 100% !important;
		max-width: none;
		display: flex;
		flex-direction: column;
		border: 0;
	}
	.pr-mobile-menu .offcanvas-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		min-height: 64px;
		padding: 8px 16px;
		border-bottom: 1px solid var(--pr-border);
	}
	.pr-mobile-menu .offcanvas-header .logo-mobile img {
		height: 36px;
		width: auto;
	}
	.pr-mobile-menu .btn-close {
		width: 44px;
		height: 44px;
		margin: 0;
		opacity: 1;
		background: none;
		font-size: 20px;
		color: var(--pr-ink);
	}
	.pr-mobile-menu .offcanvas-mobile-menu-body {
		flex: 1 1 auto;
		overflow-y: auto;
		padding: 8px 16px;
	}
	.pr-mobile-menu #mobile-main-nav > li > .nav-link {
		display: flex;
		align-items: center;
		min-height: 56px;
		padding: 0 4px;
		font-family: var(--pr-font-heading);
		font-size: 22px;
		font-weight: var(--pr-weight-heading);
		color: var(--pr-ink);
	}
	.pr-mobile-menu #mobile-main-nav > li {
		border-bottom: 1px solid var(--pr-border);
	}
	.pr-mobile-menu #mobile-main-nav .dropdown-item {
		display: flex;
		align-items: center;
		min-height: 44px;
		font-size: 16px;
	}
	.pr-mobile-menu .nav-mobile-trigger {
		width: 56px;
		height: 56px;
	}
	.pr-mobile-menu-footer {
		display: grid;
		gap: 8px;
		padding: 16px 16px calc(16px + env(safe-area-inset-bottom, 0px));
		border-top: 1px solid var(--pr-border);
	}
	.pr-mobile-menu-cta {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 52px;
		border-radius: var(--pr-radius-btn);
		background-color: var(--pr-primary);
		color: var(--pr-on-primary);
		font-size: var(--pr-fs-button);
		font-weight: 600;
	}
	.pr-mobile-menu-cta:hover,
	.pr-mobile-menu-cta:focus {
		background-color: var(--pr-primary-hover);
		color: var(--pr-on-primary);
	}
	.pr-mobile-menu-tel {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 44px;
		color: var(--pr-ink);
		font-size: 15px;
	}

	/* ---- Homepage ---- */

	/* 1. Hero: shorter on phones, Budget + Status side by side (the short intro is a
	   phone-only Elementor text widget; the long one is hidden on phones) */
	.pr-hero .pr-hero-intro {
		max-width: none;
	}
	.pr-hero-search .houzez-ele-search-form-wrapper {
		display: flex;
		flex-wrap: wrap;
	}
	.pr-hero-search .elementor-field-group-field-budget,
	.pr-hero-search .elementor-field-group-field-status {
		width: 50% !important;
		flex: 0 0 50%;
	}
	.pr-hero-search .form-control,
	.pr-hero-search .bootstrap-select > .dropdown-toggle,
	.pr-hero-search .houzez-search-button {
		height: 48px;
		min-height: 48px;
	}

	/* 2. Featured slider: 1.15 cards, cards as tall as their own content, 3 equal buttons */
	.pr-featured-slider .swiper-slide {
		width: calc((100% - 12px) / 1.15);
	}
	.pr-featured-slider .swiper-wrapper {
		align-items: flex-start;
	}
	.pr-featured-slider .item-wrap,
	.pr-featured-slider .item-listing-wrap {
		height: auto;
	}
	.item-buttons-wrap .btn-item {
		flex: 1 1 0;
		flex-direction: column;
		gap: 2px !important;
		min-height: 52px;
		padding: 6px 4px !important;
		font-size: 12px;
		line-height: 1.2;
	}
	.item-buttons-wrap .btn-item {
		line-height: 1.2 !important; /* Houzez sets 36px, which pushes the stacked icon out of the button */
	}
	.item-buttons-wrap .btn-item .houzez-icon {
		font-size: 18px;
		line-height: 1 !important;
	}
	.item-buttons-wrap .btn-item .d-none {
		display: block !important;
	}

	/* 3. Why Prime / How we work: compact list — icon left, text right, no card box */
	.pr-cards-row .elementor-column {
		margin-bottom: 0 !important;
	}
	.pr-cards-row .elementor-widget-wrap {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}
	.elementor-widget.pr-feature-card {
		height: auto;
		padding: 20px 0;
		background: none;
		border: 0;
		border-bottom: 1px solid var(--pr-border);
		border-radius: 0;
	}
	.pr-cards-row .elementor-column:last-child .elementor-widget.pr-feature-card {
		border-bottom: 0;
	}
	.pr-feature-card:hover {
		transform: none;
	}
	.pr-feature-card .elementor-icon-box-wrapper {
		display: flex !important;
		flex-direction: row !important;
		align-items: flex-start;
		gap: 16px;
		text-align: left !important;
	}
	.pr-feature-card .elementor-icon-box-icon {
		flex: 0 0 48px;
		margin: 0 !important;
	}
	.pr-feature-card .elementor-icon-box-content {
		flex: 1 1 auto;
	}
	.pr-feature-card .elementor-icon-box-title {
		margin-bottom: 4px;
		font-size: var(--pr-fs-h4);
	}

	/* 4. Locations: 16:9 tiles, 16px names, arrow only */
	.pr-area-tile .grid-item {
		aspect-ratio: 16 / 9;
	}
	.pr-area-tile .grid-item-content,
	.pr-area-tile .grid-item-text-wrap {
		padding: 10px 12px !important;
	}
	.pr-area-tile .grid-item-title,
	.pr-area-tile .grid-item-title a,
	.pr-area-tile h2,
	.pr-area-tile h3 {
		font-size: 16px !important;
		line-height: 1.25 !important;
	}
	.pr-area-tile .grid-item-text-link {
		display: none !important;
	}
	.pr-area-tile .grid-item-text-wrap {
		position: relative;
	}
	.pr-area-tile .grid-item-icon {
		position: absolute;
		right: 10px;
		bottom: 8px;
		font-size: 0;
	}
	.pr-area-tile .grid-item-icon i {
		display: none;
	}
	.pr-area-tile .grid-item-icon::after {
		content: "→";
		font-size: 18px;
		line-height: 1;
		color: var(--pr-on-primary);
	}
	.pr-area-tile .grid-item-icon {
		opacity: 1;
		transform: none;
	}

	/* 5. Services: vertical timeline — number in a circle, thin line joining the steps */
	.pr-steps-row .pr-step {
		margin-bottom: 0 !important;
	}
	.pr-steps-row .pr-step > .elementor-widget-wrap {
		display: grid !important;
		grid-template-columns: 40px 1fr;
		column-gap: 16px;
		padding: 0 0 24px !important;
	}
	.pr-steps-row .pr-step > .elementor-widget-wrap > .elementor-widget {
		grid-column: 2;
		width: auto !important;
	}
	.pr-steps-row .pr-step > .elementor-widget-wrap > .elementor-widget.pr-step-num {
		grid-column: 1;
		grid-row: 1 / span 2;
		margin: 0;
	}
	.pr-step-num .elementor-heading-title {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 40px;
		height: 40px;
		padding: 0;
		font-size: 16px !important; /* beats the "Stats number" Global Font on the widget */
		line-height: 1 !important;
		border: 1px solid var(--pr-primary);
		border-radius: 50%;
		background-color: var(--pr-surface-alt);
	}
	.pr-steps-row .pr-step:not(:last-child) > .elementor-widget-wrap::after {
		display: block;
		top: 44px;
		bottom: 4px;
		left: 20px;
		right: auto;
		width: 1px;
		height: auto;
	}
	.elementor-widget.pr-step-title {
		margin: 8px 0 4px;
	}
	.pr-step-text p {
		max-width: none;
	}

	/* 6. Enquiry: fields use the full width; Call + WhatsApp buttons replace the contact list */
	.elementor-element-608eb11 > .elementor-container > .elementor-column > .elementor-widget-wrap {
		padding: 24px 16px !important;
	}
	.elementor-widget-houzez_elementor_inquiry_form .elementor-widget-container,
	.elementor-widget-houzez_elementor_inquiry_form {
		padding: 0 !important;
	}
	.pr-contact-buttons {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
		margin-top: 8px;
	}
	.pr-contact-btn {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		min-height: 48px;
		border-radius: var(--pr-radius-btn);
		font-size: var(--pr-fs-button);
		font-weight: 600;
	}
	.pr-contact-btn--call {
		border: 1px solid var(--pr-primary);
		color: var(--pr-primary);
		background-color: var(--pr-surface);
	}
	.pr-contact-btn--wa {
		background-color: var(--pr-whatsapp);
		color: var(--pr-ink);
	}
	.pr-contact-buttons-note {
		grid-column: 1 / -1;
		margin: 4px 0 0;
		font-size: var(--pr-fs-small);
		color: var(--pr-muted);
	}
}

/* Footer accordions (inc/contact.php: Areas + Company menus wrapped in <details>) */
.pr-footer-acc > summary {
	display: block;
	list-style: none;
}
.pr-footer-acc > summary::-webkit-details-marker {
	display: none;
}
@media (min-width: 768px) {
	.pr-footer-acc > summary {
		pointer-events: none; /* always open on larger screens */
	}
}
@media (max-width: 767px) {
	.footer-top-wrap {
		padding-top: 40px;
		padding-bottom: 8px;
	}
	.footer-top-wrap .footer-widget {
		margin-bottom: 0 !important;
		padding: 0 !important;
	}
	.footer-top-wrap .row > [class*="col-"] {
		margin-bottom: 0 !important;
	}
	.pr-footer-brand {
		padding-bottom: 24px;
	}
	.pr-footer-acc {
		border-top: 1px solid color-mix(in srgb, var(--pr-on-primary) 20%, transparent);
	}
	.pr-footer-acc > summary {
		position: relative;
		display: flex;
		align-items: center;
		min-height: 56px;
		cursor: pointer;
	}
	.pr-footer-acc > summary .widget-title {
		margin: 0 !important;
	}
	.pr-footer-acc > summary::after {
		content: "";
		position: absolute;
		right: 6px;
		top: 50%;
		width: 9px;
		height: 9px;
		margin-top: -7px;
		border-right: 1.5px solid var(--pr-on-primary);
		border-bottom: 1.5px solid var(--pr-on-primary);
		transform: rotate(45deg);
		transition: transform .2s ease;
	}
	.pr-footer-acc[open] > summary::after {
		margin-top: -2px;
		transform: rotate(-135deg);
	}
	.pr-footer-acc[open] > div {
		padding-bottom: 12px;
	}
	/* Contact stays open: heading as a row like the accordions, label beside the value */
	.footer-top-wrap #custom_html-2 {
		padding-top: 4px !important;
		border-top: 1px solid color-mix(in srgb, var(--pr-on-primary) 20%, transparent);
	}
	.footer-top-wrap #custom_html-2 .widget-header {
		display: flex;
		align-items: center;
		min-height: 52px;
	}
	.footer-top-wrap #custom_html-2 .widget-title {
		margin: 0 !important;
	}
	.pr-footer-contact li {
		display: grid;
		grid-template-columns: 64px 1fr;
		align-items: center;
		column-gap: 8px;
		margin-bottom: 4px;
		min-height: 44px;
	}
	.pr-footer-contact li span {
		margin: 0;
	}
	.pr-footer-contact a {
		min-height: 44px;
	}
	/* Bottom bar: left-aligned, with room for the floating WhatsApp button */
	.footer-bottom-wrap .d-flex {
		align-items: flex-start !important;
	}
	.footer-bottom-wrap {
		padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)) !important;
	}
	.footer-bottom-wrap .container > .d-flex {
		padding-inline: 30px; /* same left edge as the columns above */
	}
}
@media (prefers-reduced-motion: reduce) {
	.pr-footer-acc > summary::after { transition: none; }
}

/* 30. Project page on phones (single-property-project.php), 2026-10-11 */
.pr-proj-back,
.pr-proj-slider-count,
.pr-units-meta {
	display: none;
}
.pr-proj-gmaps {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	font-weight: 600;
	color: var(--pr-primary);
}
@media (max-width: 767px) {
	/* 1. Header: back link instead of the breadcrumb; name 28, price 22 under the address */
	.pr-proj-page .pr-proj-head .pr-breadcrumb {
		display: none;
	}
	.pr-proj-back {
		display: inline-flex;
		align-items: center;
		gap: 6px;
		min-height: 44px;
		margin-bottom: 4px;
		font-size: 15px;
		font-weight: 600;
		color: var(--pr-primary);
	}
	.pr-proj-page .pr-proj-title {
		font-size: 28px;
		line-height: 1.2;
	}
	.pr-proj-page .pr-proj-head-row {
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
	}
	.pr-proj-page .pr-proj-price {
		margin: 0;
		font-size: 22px;
	}
	/* 2. Photo counter */
	.pr-proj-gallery-section .pr-area-wrap {
		position: relative;
	}
	.pr-proj-slider-count {
		display: block;
		position: absolute;
		left: 38px; /* bottom-left of the first photo, clear of the next one peeking in */
		bottom: 12px;
		margin: 0;
		padding: 4px 10px;
		border-radius: 999px;
		background-color: color-mix(in srgb, var(--pr-ink) 60%, transparent);
		color: var(--pr-on-primary);
		font-size: 13px;
		line-height: 1.4;
		pointer-events: none;
	}
	.pr-proj-slide img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	/* 11. Section titles 24px */
	.pr-proj-page .pr-proj-h2 {
		margin-bottom: 20px;
		font-size: 24px;
	}
	/* 3. Key facts: two-column list, no boxes */
	.pr-proj-page .pr-proj-facts {
		gap: 0 16px;
	}
	.pr-proj-page .pr-proj-facts .pr-area-fact {
		display: grid;
		grid-template-columns: 22px 1fr;
		column-gap: 8px;
		align-items: start;
		padding: 12px 0;
		background: none;
		border: 0;
		border-bottom: 1px solid var(--pr-border);
		border-radius: 0;
	}
	.pr-proj-page .pr-proj-facts .pr-area-fact-icon {
		grid-row: 1 / span 2;
		margin: 0;
	}
	.pr-proj-page .pr-proj-facts .pr-area-fact-icon svg {
		width: 20px;
		height: 20px;
	}
	.pr-proj-page .pr-proj-facts dt {
		margin: 0;
		font-size: 12px;
	}
	.pr-proj-page .pr-proj-facts dd {
		margin: 0;
		font-size: 15px;
		line-height: 1.35;
	}
	/* 5. Units: one compact row each */
	.pr-proj-page .pr-units tbody {
		gap: 0;
		border-top: 1px solid var(--pr-border);
	}
	.pr-proj-page .pr-units tr {
		grid-template-columns: 1fr auto;
		align-items: center;
		column-gap: 12px;
		padding: 14px 0;
		background: none;
		border: 0;
		border-bottom: 1px solid var(--pr-border);
		border-radius: 0;
	}
	.pr-proj-page .pr-units tbody th {
		grid-column: 1;
		grid-row: 1 / span 2;
		padding: 0;
		font-size: 16px;
	}
	.pr-units-meta {
		display: block;
		margin-top: 2px;
		font-family: var(--pr-font-body);
		font-size: 13px;
		font-weight: 400;
		color: var(--pr-muted);
	}
	.pr-proj-page .pr-units td[data-label]:not(.pr-units-price) {
		display: none;
	}
	.pr-proj-page .pr-units td.pr-units-price {
		grid-column: 2;
		grid-row: 1;
		padding: 0;
		font-size: 15px;
		font-weight: 600;
		text-align: right;
		white-space: nowrap;
	}
	.pr-proj-page .pr-units td.pr-units-price::before {
		display: none;
	}
	.pr-proj-page .pr-units-action {
		grid-column: 2;
		grid-row: 2;
		padding: 0 !important;
		text-align: right;
	}
	.pr-proj-page .pr-units-enquire {
		width: auto;
		height: 36px;
		min-height: 36px;
		padding: 0 12px;
		font-size: 13px;
	}
	/* 6. Amenities: two-column list, small icons */
	.pr-proj-page .pr-proj-amenities {
		gap: 4px 12px;
	}
	.pr-proj-page .pr-proj-amenities li {
		flex-direction: row;
		align-items: center;
		gap: 8px;
		min-height: 36px;
	}
	.pr-proj-page .pr-proj-amenities .pr-area-amenity-icon {
		width: auto;
		height: auto;
		background: none;
	}
	.pr-proj-page .pr-proj-amenities .pr-area-amenity-icon svg {
		width: 20px;
		height: 20px;
	}
	.pr-proj-page .pr-proj-amenities .pr-area-amenity-name {
		font-size: 15px;
	}
	/* 7. Map: 220px picture that never catches the scroll */
	#houzez-single-listing-map-address.pr-proj-map {
		height: 220px;
		pointer-events: none;
	}
	.pr-proj-map .leaflet-control-zoom {
		display: none;
	}
	.pr-proj-page .pr-proj-location-text {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
	}
	/* 8. Enquiry: the bottom bar already has WhatsApp / Call */
	.pr-proj-enquiry .pr-contact-buttons {
		display: none;
	}
	/* 9. Similar projects: swipe row, 1.15 cards */
	.pr-similar-row {
		display: flex !important;
		gap: 12px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		margin: 0 -26px;
		padding: 0 26px 4px;
		scrollbar-width: none;
	}
	.pr-similar-row::-webkit-scrollbar {
		display: none;
	}
	.pr-similar-row > * {
		flex: 0 0 calc((100% - 12px) / 1.15);
		scroll-snap-align: start;
		scroll-margin-left: 26px;
	}
	/* 10. No floating WhatsApp on project pages: the bottom bar has it */
	.single-property .pr-whatsapp-float {
		display: none;
	}
}

/* 31. Project page round 2 + area pages on phones (2026-10-11) */
.pr-proj-about-block {
	margin-top: 40px;
}
.pr-proj-page .pr-proj-h2--sub {
	margin-bottom: 12px;
}
.pr-proj-about-block .pr-proj-about {
	max-width: 720px;
}
.pr-proj-loc-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 24px;
}
.pr-area-back,
.pr-area-all-projects {
	display: none;
}
.pr-readmore > summary {
	display: none; /* larger screens: always open, no toggle */
}
@media (max-width: 767px) {
	/* -- Project page -- */
	/* 1. Price and status are already in the header */
	.pr-proj-page .pr-proj-facts .pr-area-fact--tag,
	.pr-proj-page .pr-proj-facts .pr-area-fact--clock {
		display: none;
	}
	/* 2. About under the facts, smaller heading */
	.pr-proj-about-block {
		margin-top: 28px;
	}
	.pr-proj-page .pr-proj-h2--sub {
		font-size: 20px;
	}
	/* 3. Calmer rhythm: 36px sections */
	.pr-proj-page .pr-proj-section {
		padding: 36px 0;
	}
	/* 4. Amenity names: slightly smaller so most fit on one line */
	.pr-proj-page .pr-proj-amenities .pr-area-amenity-name {
		font-size: 14px;
		line-height: 1.3;
	}
	/* 5. Location: no repeated address; two buttons side by side */
	.pr-proj-page .pr-proj-address {
		display: none;
	}
	.pr-proj-loc-actions {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
		width: 100%;
		margin-top: 12px;
	}
	.pr-proj-loc-actions a {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 6px;
		min-height: 44px;
		padding: 0 8px;
		border: 1px solid var(--pr-primary);
		border-radius: var(--pr-radius-btn);
		background-color: var(--pr-surface);
		color: var(--pr-primary);
		font-size: 14px;
		font-weight: 600;
		text-align: center;
	}
	/* 6. Readable WhatsApp button in the bottom bar (ink on green) */
	.pr-proj-bar .pr-proj-bar-btn--whatsapp {
		color: var(--pr-ink);
	}

	/* -- Area pages -- */
	/* 1. Back link instead of the breadcrumb */
	.tax-property_city .pr-area-hero .pr-breadcrumb {
		display: none;
	}
	.pr-area-back {
		display: inline-flex;
		align-items: center;
		gap: 6px;
		min-height: 44px;
		margin-bottom: 4px;
		font-size: 15px;
		font-weight: 600;
		color: var(--pr-on-primary);
	}
	/* 2. About: first paragraph + Read more */
	.pr-readmore > summary {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		font-weight: 600;
		color: var(--pr-primary);
		cursor: pointer;
		list-style: none;
	}
	.pr-readmore > summary::-webkit-details-marker {
		display: none;
	}
	.pr-readmore > summary::after {
		content: " →";
		margin-left: 4px;
	}
	.pr-readmore[open] > summary {
		display: none;
	}
	/* 3. Key facts: two-column list, no boxes */
	.tax-property_city .pr-area-facts {
		gap: 0 16px;
	}
	.tax-property_city .pr-area-facts .pr-area-fact {
		display: grid;
		grid-template-columns: 22px 1fr;
		column-gap: 8px;
		align-items: start;
		padding: 12px 0;
		background: none;
		border: 0;
		border-bottom: 1px solid var(--pr-border);
		border-radius: 0;
	}
	.tax-property_city .pr-area-facts .pr-area-fact:last-child:nth-child(odd) {
		grid-column: auto;
	}
	.tax-property_city .pr-area-fact-icon {
		grid-row: 1 / span 2;
		margin: 0;
	}
	.tax-property_city .pr-area-fact-icon svg {
		width: 20px;
		height: 20px;
	}
	.tax-property_city .pr-area-fact dt {
		margin: 0;
		font-size: 12px;
	}
	.tax-property_city .pr-area-fact dd {
		margin: 0;
		font-size: 15px;
		line-height: 1.35;
	}
	/* 4. Amenities & landmarks: compact list, distance on the same line */
	.tax-property_city .pr-area-amenities {
		grid-template-columns: 1fr;
		gap: 0;
	}
	.tax-property_city .pr-area-amenities li {
		flex-direction: row;
		align-items: center;
		gap: 10px;
		min-height: 44px;
		padding: 6px 0;
		border-bottom: 1px solid var(--pr-border);
	}
	.tax-property_city .pr-area-amenity-icon {
		flex: 0 0 20px;
		width: 20px;
		height: 20px;
		background: none;
	}
	.tax-property_city .pr-area-amenity-icon svg {
		width: 20px;
		height: 20px;
	}
	.tax-property_city .pr-area-amenity-text {
		display: flex !important;
		flex-direction: row !important;
		flex: 1 1 auto;
		justify-content: space-between;
		align-items: baseline;
		gap: 12px;
	}
	.tax-property_city .pr-area-amenity-name {
		font-size: 15px;
	}
	.tax-property_city .pr-area-amenity-distance {
		white-space: nowrap;
	}
	/* 5. Projects: swipe row (shared .pr-similar-row) + link to the filtered list */
	.pr-area-all-projects {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		margin-top: 12px;
		font-weight: 600;
		color: var(--pr-primary);
	}
	/* 6. Nearby areas: 16:9 tiles, two per row, name + arrow */
	.tax-property_city .pr-area-tiles:not(.pr-area-tiles--all) {
		grid-template-columns: 1fr 1fr;
		gap: 12px;
	}
	.tax-property_city .pr-area-tiles:not(.pr-area-tiles--all) .pr-area-tile2 {
		aspect-ratio: 16 / 9;
		padding: 10px 12px;
	}
	.tax-property_city .pr-area-tiles:not(.pr-area-tiles--all) .pr-area-tile2-name {
		font-size: 16px;
		line-height: 1.25;
	}
	.tax-property_city .pr-area-tiles:not(.pr-area-tiles--all) .pr-area-tile2-more {
		display: none;
	}
	.tax-property_city .pr-area-tiles:not(.pr-area-tiles--all) .pr-area-tile2-foot {
		justify-content: flex-end;
	}
	.tax-property_city .pr-area-tiles:not(.pr-area-tiles--all) .pr-area-tile2-arrow {
		opacity: 1;
		transform: none;
		font-size: 0;
	}
	.tax-property_city .pr-area-tiles:not(.pr-area-tiles--all) .pr-area-tile2-arrow::before {
		content: "→";
		font-family: var(--pr-font-body);
		font-size: 18px;
		line-height: 1;
		color: var(--pr-on-primary);
	}
}
/* 7. Pages with the bottom contact bar: keep the footer's last line clear of it */
@media (max-width: 991.98px) {
	.single-property .footer-bottom-wrap {
		padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px)) !important;
	}
}

/* 32. About on phones: founder as a compact card after the award photo (2026-10-11) */
@media (max-width: 767px) {
	.pr-founder > .elementor-container {
		display: grid !important;
		grid-template-columns: 88px 1fr;
		column-gap: 16px;
		align-items: center;
		margin-top: 32px;
		padding: 20px;
		background-color: var(--pr-surface);
		border: 1px solid var(--pr-border);
		border-radius: var(--pr-radius-card);
		text-align: left;
	}
	.pr-founder > .elementor-container > .pr-founder-photo-col {
		grid-column: 1;
		grid-row: 1 / span 3;
		width: 88px !important;
		margin: 0 !important;
	}
	.pr-founder > .elementor-container > .pr-founder-photo-col > .elementor-widget-wrap {
		padding: 0 !important;
	}
	.elementor-widget.pr-founder-photo img {
		width: 88px !important;
		height: 88px !important;
		margin: 0 !important;
	}
	/* the text column dissolves so its widgets can sit in the card grid */
	.pr-founder > .elementor-container > .elementor-column:last-child,
	.pr-founder > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap {
		display: contents !important;
	}
	.pr-founder .elementor-widget {
		grid-column: 2;
		margin: 0 !important;
		text-align: left !important;
	}
	.pr-founder .elementor-widget.pr-founder-text,
	.pr-founder .elementor-widget.pr-founder-links {
		grid-column: 1 / -1;
	}
	.pr-founder .elementor-widget.pr-founder-text {
		margin-top: 16px !important;
	}
	.pr-founder .pr-founder-text p {
		margin: 0;
		font-size: 15px;
		line-height: 1.6;
	}
	.pr-founder-name .elementor-heading-title {
		font-size: 22px;
		line-height: 1.2;
	}
	.pr-founder-role .elementor-heading-title {
		font-size: 14px;
	}
	.pr-founder-links .elementor-icon-list-items {
		justify-content: flex-start !important;
	}
	.pr-founder .elementor-widget.pr-founder-links {
		margin-top: 8px !important;
	}
}

/* Card facts (Developer / Delivery): always one line each, so every card has the same height */
.pr-card-facts li {
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}
.item-wrap .item-address {
	display: flex;
	align-items: center;
	min-width: 0;
}
.item-wrap .item-address span {
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

/* 33. /projects/ and search results on phones (2026-10-11): compact filters, one-row toolbar,
   project cards as compact rows, no sidebar (prime-projects.php) */
.pr-projects-help {
	display: none;
}
@media (max-width: 767px) {
	/* 1. No breadcrumb on this top-level page */
	.pr-projects-page .pr-projects-head .pr-breadcrumb {
		display: none;
	}
	/* 2. Filters 2 × 2; no Search button while results update live (Clear stays) */
	.pr-projects-page .pr-filter-card {
		grid-template-columns: 1fr 1fr;
		gap: 10px;
		padding: 12px;
	}
	.pr-projects-page .pr-filter-field label {
		margin-bottom: 4px;
		font-size: 12px;
	}
	.pr-projects-page .pr-filter-field select {
		height: 44px;
		padding-left: 10px;
		font-size: 14px;
	}
	.pr-projects-page .pr-filter-card.is-live .pr-filter-submit {
		display: none;
	}
	.pr-projects-page .pr-filter-card.is-live .pr-filter-actions:not(:has(.pr-filter-clear)) {
		display: none;
	}
	/* 3. "45 projects" and Sort on one row */
	.pr-projects-page .pr-projects-toolbar {
		display: flex;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		margin-bottom: 12px;
	}
	.pr-projects-page .pr-projects-layout {
		grid-template-columns: minmax(0, 1fr); /* content may not widen the column past the screen */
	}
	.pr-projects-page .pr-projects-results {
		min-width: 0;
	}
	.pr-projects-page .pr-projects-sort {
		position: relative;
		display: flex;
		flex: 0 0 auto;
		width: auto; /* an older phone rule made it 100% */
		align-items: center;
		gap: 6px;
	}
	.pr-projects-page .pr-projects-count {
		margin: 0;
		white-space: nowrap;
	}
	.pr-projects-page .pr-projects-sort label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0); /* "Sort by" stays for screen readers; the select says "Newest" etc. */
	}
	.pr-projects-page .pr-projects-sort::after {
		bottom: 19px;
	}
	.pr-projects-page .pr-projects-sort select {
		width: auto;
		max-width: 190px;
		height: 44px;
		padding-right: 32px;
		font-size: 14px;
	}
	/* 4. Project cards as compact rows: photo left, details right, whole row opens the project */
	.pr-projects-grid {
		display: flex !important;
		flex-direction: column;
		gap: 10px;
	}
	.pr-projects-grid .item-wrap {
		position: relative;
	}
	.pr-projects-grid .item-wrap > .d-flex {
		flex-direction: row !important;
		align-items: stretch !important;
	}
	.pr-projects-grid .item-header {
		flex: 0 0 120px;
		width: 120px;
		margin: 0;
	}
	.pr-projects-grid .item-header .listing-image-wrap,
	.pr-projects-grid .item-header .listing-thumb,
	.pr-projects-grid .item-header a {
		height: 100%;
	}
	.pr-projects-grid .item-header img {
		width: 120px;
		height: 100% !important;
		min-height: 128px;
		aspect-ratio: auto !important;
		object-fit: cover;
		border-radius: var(--pr-radius-card) 0 0 var(--pr-radius-card);
	}
	.pr-projects-grid .item-header .labels-wrap,
	.pr-projects-grid .item-header .label-featured {
		display: none;
	}
	.pr-projects-grid .item-body {
		display: flex;
		flex-direction: column;
		flex: 1 1 auto !important;
		width: auto !important; /* Houzez's w-100 + the 120px photo overflowed the row */
		min-width: 0;
		padding: 10px 12px !important;
	}
	.pr-projects-grid .item-amenities {
		order: 4;
		margin: 2px 0 0 !important;
	}
	.pr-projects-grid .item-amenities li,
	.pr-projects-grid .item-amenities span {
		font-size: 11px !important;
	}
	.pr-projects-grid .item-title {
		order: 1;
		margin: 0 0 2px !important;
		font-size: 16px !important;
		line-height: 1.25 !important;
	}
	.pr-projects-grid .item-title a::after {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 1;
	}
	.pr-projects-grid .item-address {
		order: 2;
		margin: 0 0 4px !important;
		font-size: 13px !important;
	}
	.pr-projects-grid .item-price-wrap {
		order: 3;
		margin: 0 !important;
	}
	.pr-projects-grid .item-price,
	.pr-projects-grid .item-price-wrap li {
		font-size: 15px !important;
	}
	.pr-projects-grid .pr-card-facts {
		order: 5;
		display: flex;
		gap: 8px;
		margin: 6px 0 0;
		padding: 6px 0 0;
	}
	.pr-projects-grid .pr-card-facts li {
		margin: 0 !important;
		font-size: 12px;
	}
	.pr-projects-grid .pr-card-facts li + li::before {
		content: "·";
		margin-right: 8px;
		color: var(--pr-muted);
	}
	.pr-projects-grid .pr-card-facts li:first-child {
		flex: 0 1 auto;
		min-width: 0;
	}
	.pr-projects-grid .pr-card-facts li:last-child {
		flex: 0 0 auto;
	}
	.pr-projects-grid .pr-card-facts li span {
		display: none; /* "Developer" / "Delivery" labels: the values speak for themselves in a row */
	}
	.pr-projects-grid .item-footer {
		display: none;
	}
	/* 6. No sidebar on phones; one advisor line after the results */
	.pr-projects-page .pr-projects-sidebar {
		display: none;
	}
	.pr-projects-help {
		display: block;
		margin: 24px 0 0;
		font-size: 15px;
		color: var(--pr-ink);
	}
	.pr-projects-help a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		font-weight: 600;
		color: var(--pr-primary);
	}
}

/* Phone header: line phone icon centred on the bar, logo on the same middle line */
.header-mobile .pr-advisor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	line-height: 1;
	color: var(--pr-ink);
}
.header-mobile .pr-advisor-icon .pr-line-icon {
	display: block;
	width: 22px;
	height: 22px;
}
.header-mobile .pr-advisor-icon:hover,
.header-mobile .pr-advisor-icon:focus-visible {
	color: var(--pr-primary);
}
.header-mobile .logo-mobile a {
	display: flex;
	align-items: center;
	justify-content: center;
}
.header-mobile .logo-mobile img {
	transform: translateY(3px); /* image sat 3px above the bar's middle line */
}
