/* "Your move starts here" cards: subtle image zoom on hover.
   The photo is the card's own background, so it's copied onto a layer
   that sits behind the shade and text and is scaled on its own. */
.wh-path-grid .wh-path-card {
	isolation: isolate;
}
.wh-path-grid .wh-path-card::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: inherit;
	transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
	pointer-events: none;
}
@media (hover: hover) {
	.wh-path-grid .wh-path-card:hover::after {
		transform: scale(1.05);
	}
}
@media (prefers-reduced-motion: reduce) {
	.wh-path-grid .wh-path-card::after {
		transition: none;
	}
}

/* Menu dropdowns while the header is transparent: frosted glass instead of
   the solid header colour. Reverts to the solid style once the header is sticky. */
@media (min-width: 1025px) {
	.l-header.bg_transparent:not(.sticky) .wh-main-menu.type_desktop .w-nav-list:not(.level_1) {
		background: rgba(17, 20, 20, 0.35);
		-webkit-backdrop-filter: blur(14px) saturate(140%);
		backdrop-filter: blur(14px) saturate(140%);
		border: 1px solid rgba(245, 245, 240, 0.14);
		border-radius: 6px;
		box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
		color: var(--color-header-transparent-text);
	}
	/* Menu items fill the full header height, leaving a gap under the menu text. Pull the
	   first dropdown level up relative to the current header height (112px = -26px, sticky 84px = -12px),
	   so the gap stays the same for transparent, solid and sticky headers */
	.l-header .wh-main-menu.type_desktop .w-nav-list.level_2 {
		margin-top: calc(30px - var(--header-area-height, 112px) / 2);
	}
}

/* ==========================================================================
   MLS listings (Webx Real Estate plugin), restyled for the dark site.
   The plugin's card template has light-theme colours inline, hence the !important.
   ========================================================================== */
#agentx-listings-search-box,
.agentx-listings,
.agentx-pattern-listing-item,
.agentx-result-count-sort,
.agentx-navigation,
.agentx-disclaimer {
	font-family: var(--font-family), sans-serif;
	color: var(--wh-muted);
}

/* Search bar */
input#agentx-listings-search-input {
	height: auto;
	min-height: 52px;
	padding: 14px 16px 14px 52px;
	font-size: 15px;
	color: var(--wh-ink);
	background: var(--wh-alt);
	border: 1px solid var(--wh-line);
	border-radius: 0;
	transition: border-color 0.25s ease;
}
input#agentx-listings-search-input::placeholder {
	color: var(--wh-muted);
	opacity: 1;
}
input#agentx-listings-search-input:focus {
	border-color: var(--wh-teal);
	outline: none;
}
.agentx-input-search-icon svg {
	width: 20px;
	height: 20px;
}
.agentx-input-search-icon svg g {
	fill: var(--wh-muted);
}
#agentx-filter-listings {
	min-height: 52px;
	font-size: 13px;
	letter-spacing: 0.02em;
	background: var(--color-content-primary);
	color: var(--wh-bg);
	transition: background-color 0.3s ease;
}
#agentx-filter-listings:hover {
	background: var(--wh-ink);
}

/* Autocomplete results */
#agentx-load-search-input-results {
	background: var(--wh-alt);
	border-color: var(--wh-line);
	color: var(--wh-ink);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
}
#agentx-load-search-input-results .agentx-search-result {
	border-bottom-color: var(--wh-line);
	font-size: 15px;
	color: var(--wh-ink);
}
#agentx-load-search-input-results .agentx-search-result:hover {
	background: rgba(245, 245, 240, 0.05);
	color: var(--wh-teal);
}
#agentx-load-search-input-results .input-search-results-header {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wh-muted);
}

/* Black plugin icons, lightened for the dark background */
#agentx-listings-search-box .agentx-icon,
.agentx-pattern-listing-item .agentx-field-icon {
	filter: invert(1);
	opacity: 0.7;
}

/* Filter dropdowns and For Sale / For Rent toggle */
.agentx-search-box {
	border-color: var(--wh-line);
	background: var(--wh-alt);
	transition: border-color 0.25s ease;
}
.agentx-search-box:hover {
	border-color: var(--wh-muted);
}
select.agentx-search-select {
	height: auto;
	min-height: 0;
	padding: 12px 30px 12px 14px;
	font-family: inherit;
	font-size: 14px;
	color: var(--wh-ink);
	background: none;
	border: none;
}
select.agentx-search-select option,
.agentx-sort-select option {
	background: var(--wh-alt);
	color: var(--wh-ink);
}
.agentx-select-icon svg {
	fill: var(--wh-muted);
}
.agentx-rent-or-buy {
	border-radius: 0;
	background: var(--wh-alt);
	border-color: var(--wh-line);
	color: var(--wh-muted);
}
.agentx-rent-or-buy-toggle.active {
	border-radius: 0;
	background: var(--wh-ink);
	color: var(--wh-bg);
}
#agentx-search-boxes-button {
	color: var(--wh-ink);
}
.current-search-filter {
	background: var(--wh-alt);
	border-color: var(--wh-line);
	color: var(--wh-ink);
	font-size: 14px;
}
.current-search-filter .remove-filter {
	border-left-color: var(--wh-line);
	color: var(--wh-muted);
}
.current-search-filter .remove-filter:hover {
	color: var(--wh-teal);
}

/* MLS line, result count and sort */
.agentx-mls-line {
	background: var(--wh-line);
}
.agentx-mls-logo-top img,
.agentx-disclaimer img {
	filter: invert(1);
	mix-blend-mode: screen;
	opacity: 0.8;
}
#agentx-total-results-count,
.agentx-sorting-filter {
	font-size: 13px;
	color: var(--wh-muted);
}
.agentx-sort-select {
	color: var(--wh-ink);
	font-family: inherit;
	font-size: 13px;
	font-weight: 400;
	border: none;
}

/* Loading state */
.agentx-searching-text .agentxloadingdots,
.agentx-input-loader .agentxloadingdots {
	--_c: no-repeat radial-gradient(farthest-side, var(--wh-teal) 92%, #0000);
}
.agentx-searching-text .search-text {
	font-size: 15px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wh-muted);
}

/* Listing cards */
.agentx-pattern-listing-item {
	background: var(--wh-alt);
	border: 1px solid var(--wh-line);
	transition: border-color 0.3s ease;
}
.agentx-pattern-listing-item:hover {
	border-color: var(--wh-muted);
}
.agentx-pattern-listing-item a {
	color: inherit;
}
.agentx-pattern-listing-item .listing-image {
	overflow: hidden;
}
.agentx-pattern-listing-item .listing-image img {
	transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
/* Swap the plugin's dark hover overlay for the same subtle zoom as the homepage cards */
.agentx-pattern-listing-item:hover .listing-image:before {
	background: none;
}
@media (hover: hover) {
	.agentx-pattern-listing-item:hover .listing-image img {
		transform: scale(1.04);
	}
}
.agentx-pattern-listing-item .agentx-listing-field .load-content,
.agentx-pattern-listing-item .agentx-listing-field-wrapper,
.agentx-pattern-listing-item .has-text-color {
	color: var(--wh-muted) !important;
}
.agentx-pattern-listing-item .agentx-listing-field.price .load-content {
	font-size: 24px !important;
	font-weight: 400 !important;
	letter-spacing: -0.01em;
	color: var(--wh-ink) !important;
}
.agentx-pattern-listing-item .agentx-listing-field.addressLine .load-content,
.agentx-pattern-listing-item .agentx-listing-field.city .load-content {
	font-size: 14px !important;
	color: var(--wh-ink) !important;
}
.agentx-pattern-listing-item .agentx-listing-field.addressLine {
	margin-right: 4px;
}
.agentx-pattern-listing-item .agentx-listing-field.mlsNumber .load-content,
.agentx-pattern-listing-item .agentx-listing-field.officeName .load-content {
	font-size: 12px !important;
}
.agentx-pattern-listing-item .agentx-listing-field.bedrooms,
.agentx-pattern-listing-item .agentx-listing-field.bathrooms,
.agentx-pattern-listing-item .agentx-listing-field.floorAreaGrandTotal {
	margin-right: 18px;
}
.agentx-pattern-listing-item .agentx-listing-field.bedrooms .load-content,
.agentx-pattern-listing-item .agentx-listing-field.bathrooms .load-content,
.agentx-pattern-listing-item .agentx-listing-field.floorAreaGrandTotal .load-content {
	font-size: 13px !important;
	color: var(--wh-ink) !important;
}
/* Specs row gets a divider above it */
.agentx-pattern-listing-item .agentx-listing-field.bedrooms {
	padding-top: 0;
}
.agentx-pattern-listing-item .wp-block-group.is-nowrap:has(> .agentx-listing-field.bedrooms) {
	margin-top: 14px !important;
	padding-top: 12px;
	border-top: 1px solid var(--wh-line);
}

/* Status labels */
.agentx-pending-label,
.agentx-for-rent-label {
	background: var(--wh-teal-dark);
}
.agentx-open-house-label {
	background: var(--wh-bg);
	color: var(--wh-ink);
	font-size: 12px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* Pagination */
.agentx-navigation div.agentx-nav-button,
.agentx-navigation span.page-numbers {
	min-width: 40px;
	padding: 13px 12px;
	color: var(--wh-muted);
	border: 1px solid transparent;
	transition: color 0.25s ease, border-color 0.25s ease;
}
.agentx-navigation div.agentx-nav-button:hover,
.agentx-navigation .agentx-page-number:hover {
	background: none;
	color: var(--wh-ink);
	border-color: var(--wh-line);
}
.agentx-navigation span.page-numbers.current {
	background: none;
	color: var(--wh-ink);
	border-color: var(--wh-teal);
}

/* No results and disclaimer */
.no-listings-found p {
	color: var(--wh-ink);
	text-align: center;
	padding: 4em 0;
}
.agentx-disclaimer {
	margin-top: 40px;
	padding-top: 24px;
	border-top: 1px solid var(--wh-line);
	background: none !important;
}
.agentx-disclaimer p {
	font-size: 12px !important;
	line-height: 1.6;
	color: var(--wh-muted);
}

/* ==========================================================================
   Single MLS property page (Webx Real Estate plugin template).
   Layout follows a centred column: full-width slider, title/price row,
   stats box beside the description, details list, then the photo grid.
   The template sets light-theme colours and 4vw padding inline, hence the !important.
   ========================================================================== */
.agentx-custom-single-listing {
	--wh-listing-width: var(--site-content-width, 1312px);
	font-family: var(--font-family), sans-serif;
	color: var(--wh-muted);
}
/* The block is set to "full width", but it already sits in a full-width row, so
   Impreza's negative alignfull margins pushed it 64px off the left of the screen */
.agentx-custom-single-listing.alignfull {
	width: 100%;
	max-width: none;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.agentx-custom-single-listing p {
	margin: 0;
}

/* Centred content column for every section below the slider */
.agentx-custom-single-listing > .wp-block-group__inner-container > .wp-block-group {
	padding-left: 24px !important;
	padding-right: 24px !important;
}
.agentx-custom-single-listing > .wp-block-group__inner-container > .wp-block-group > .wp-block-group__inner-container {
	max-width: var(--wh-listing-width);
	margin-left: auto;
	margin-right: auto;
}
.agentx-custom-single-listing > .wp-block-group__inner-container > .wp-block-group > .wp-block-group__inner-container > * {
	max-width: none;
}

/* Slider */
.agentx-custom-single-listing .slick-banner .slick-arrow {
	top: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	margin-top: -26px;
	font-size: 20px;
	color: var(--wh-ink);
	text-shadow: none;
	border: 1px solid rgba(245, 245, 240, 0.38);
	border-radius: 50%;
	background: rgba(9, 11, 11, 0.35);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}
.agentx-custom-single-listing .slick-banner .slick-arrow:hover {
	transform: none;
	background: var(--wh-teal);
	border-color: var(--wh-teal);
	color: var(--wh-black);
}
.agentx-custom-single-listing .slick-arrow.dashicons-arrow-left-alt2 {
	left: 32px;
}
.agentx-custom-single-listing .slick-arrow.dashicons-arrow-right-alt2 {
	right: 32px;
}

/* Title and price row */
.agentx-custom-single-listing > .wp-block-group__inner-container > .wp-block-group:nth-child(2) {
	padding-top: 64px !important;
	padding-bottom: 0 !important;
}
.agentx-custom-single-listing > .wp-block-group__inner-container > .wp-block-group:nth-child(2) .wp-block-columns {
	align-items: flex-end !important;
	gap: 24px;
	padding-bottom: 28px !important;
	border-bottom: 1px solid var(--wh-line) !important;
}
.agentx-custom-single-listing .agentx-listing-field.status .agentx-listing-field-wrapper {
	padding: 6px 10px !important;
	background: none !important;
	border: 1px solid var(--wh-teal);
}
.agentx-custom-single-listing .agentx-listing-field.status .load-content {
	font-size: 11px !important;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wh-teal);
}
.agentx-custom-single-listing .agentx-listing-field.title h1 {
	margin: 0;
	font-size: clamp(30px, 3vw, 44px) !important;
	font-weight: 400;
	line-height: 1.1;
	letter-spacing: -0.01em;
	color: var(--wh-ink);
}
.agentx-custom-single-listing .agentx-listing-field.city .load-content,
.agentx-custom-single-listing .agentx-listing-field.province .load-content,
.agentx-custom-single-listing .agentx-listing-field.postalCode .load-content {
	font-size: 15px;
	color: var(--wh-muted);
}
.agentx-custom-single-listing .agentx-listing-field.price .agentx-listing-field-wrapper {
	padding: 0 !important;
}
.agentx-custom-single-listing .agentx-listing-field.price .load-content {
	font-size: clamp(30px, 3vw, 44px) !important;
	font-weight: 400 !important;
	line-height: 1.1;
	letter-spacing: -0.01em;
	color: var(--wh-ink);
}

/* Stats box and description */
.agentx-custom-single-listing > .wp-block-group__inner-container > .wp-block-group:nth-child(3) {
	padding-top: 40px !important;
	padding-bottom: 0 !important;
}
.agentx-custom-single-listing > .wp-block-group__inner-container > .wp-block-group:nth-child(3) .wp-block-columns {
	gap: 56px;
}
.agentx-custom-single-listing .wp-block-column.has-background {
	flex: 0 0 280px !important;
	align-self: flex-start;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 6px;
	padding: 32px !important;
	background: var(--wh-alt) !important;
	border: 1px solid var(--wh-line);
}
.agentx-custom-single-listing .wp-block-column.has-background .agentx-listing-field-wrapper {
	padding: 6px 0 !important;
}
.agentx-custom-single-listing .wp-block-column.has-background .wp-block-group__inner-container {
	display: flex !important;
	align-items: center;
	gap: 14px;
}
.agentx-custom-single-listing .wp-block-column.has-background .load-content {
	font-size: 16px;
	color: var(--wh-ink);
}
.agentx-custom-single-listing .agentx-field-icon {
	width: 18px;
	height: 18px;
	object-fit: contain;
	filter: invert(1);
	opacity: 0.7;
}
.agentx-custom-single-listing .agentx-listing-field.description .agentx-listing-field-wrapper {
	padding-top: 0 !important;
	padding-bottom: 32px !important;
}
.agentx-custom-single-listing .agentx-listing-field.description .load-content {
	font-size: 16px !important;
	line-height: 1.75 !important;
	color: var(--wh-muted) !important;
}

/* MLS number / Listed by / Listed date, with labels above the values */
.agentx-custom-single-listing .wp-block-column .wp-block-group.is-layout-flex:has(.agentx-listing-field.mlsNumber) {
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 24px 48px;
	padding-top: 28px;
	border-top: 1px solid var(--wh-line);
}
.agentx-custom-single-listing .agentx-listing-field.mlsNumber .agentx-listing-field-wrapper,
.agentx-custom-single-listing .agentx-listing-field.officeName .agentx-listing-field-wrapper,
.agentx-custom-single-listing .agentx-listing-field.listingDate .agentx-listing-field-wrapper {
	padding: 0 !important;
}
.agentx-custom-single-listing .agentx-listing-field.mlsNumber .wp-block-group__inner-container,
.agentx-custom-single-listing .agentx-listing-field.officeName .wp-block-group__inner-container,
.agentx-custom-single-listing .agentx-listing-field.listingDate .wp-block-group__inner-container {
	display: flex;
	flex-direction: column-reverse;
	gap: 6px;
}
.agentx-custom-single-listing .agentx-listing-field.mlsNumber p:not(.load-content),
.agentx-custom-single-listing .agentx-listing-field.officeName p:not(.load-content),
.agentx-custom-single-listing .agentx-listing-field.listingDate p:not(.load-content) {
	font-size: 12px !important;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wh-muted) !important;
}
.agentx-custom-single-listing .agentx-listing-field.mlsNumber .load-content,
.agentx-custom-single-listing .agentx-listing-field.officeName .load-content,
.agentx-custom-single-listing .agentx-listing-field.listingDate .load-content {
	font-size: 15px;
	font-weight: 400 !important;
	color: var(--wh-ink);
}
.agentx-custom-single-listing .wp-block-group:has(> .wp-block-buttons) {
	margin-left: auto;
}

/* Buttons, matching the site's button styles */
.agentx-custom-single-listing .wp-block-button .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	padding: 1.25em 1.85em;
	font-family: inherit;
	font-size: 13px !important;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 0;
	border-radius: 0;
	transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}
.agentx-custom-single-listing .wp-block-button.is-style-fill .wp-block-button__link {
	background: var(--color-content-primary);
	color: var(--wh-bg);
}
.agentx-custom-single-listing .wp-block-button.is-style-fill .wp-block-button__link:hover {
	background: var(--wh-ink);
}
.agentx-custom-single-listing .wp-block-button.is-style-outline .wp-block-button__link {
	background: none;
	color: var(--wh-ink);
	border: 1px solid var(--wh-line);
}
.agentx-custom-single-listing .wp-block-button.is-style-outline .wp-block-button__link:hover {
	border-color: var(--wh-teal);
	color: var(--wh-teal);
}

/* Property details list */
.agentx-custom-single-listing > .wp-block-group__inner-container > .wp-block-group:nth-child(4) {
	padding-top: 96px !important;
}
.agentx-custom-single-listing > .wp-block-group__inner-container > .wp-block-group:nth-child(4) > .wp-block-group__inner-container > p.wp-block-paragraph {
	margin-bottom: 16px;
	font-size: var(--h4-font-size) !important;
	font-weight: 400 !important;
	line-height: var(--h4-line-height);
	letter-spacing: -0.01em;
	color: var(--wh-ink);
}
.agentx-custom-single-listing .agentx-listing-field > .wp-block-columns.is-not-stacked-on-mobile {
	margin: 0 !important;
	padding: 20px 0 !important;
	border-bottom: 1px solid var(--wh-line) !important;
}
.agentx-custom-single-listing .agentx-listing-field > .wp-block-columns.is-not-stacked-on-mobile p {
	font-size: 15px !important;
	font-weight: 400 !important;
}
.agentx-custom-single-listing .agentx-listing-field > .wp-block-columns.is-not-stacked-on-mobile p:not(.load-content) {
	color: var(--wh-muted) !important;
}
.agentx-custom-single-listing .agentx-listing-field > .wp-block-columns.is-not-stacked-on-mobile .load-content {
	color: var(--wh-ink);
}

/* Floor plan button row */
.agentx-custom-single-listing > .wp-block-group__inner-container > .wp-block-group:nth-child(5) {
	padding-top: 32px !important;
	padding-bottom: 0 !important;
}

/* Photo grid */
.agentx-custom-single-listing > .wp-block-group__inner-container > .wp-block-group:nth-child(6) {
	padding-top: 48px !important;
	padding-bottom: 0 !important;
}
.agentx-custom-single-listing .agentx-listing-image-grid {
	grid-gap: 12px;
}
.agentx-custom-single-listing .listing-grid-image {
	overflow: hidden;
	aspect-ratio: 3 / 2;
	background: var(--wh-alt);
}
.agentx-custom-single-listing .listing-grid-image img {
	height: 100%;
	transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
@media (hover: hover) {
	.agentx-custom-single-listing .listing-grid-image:hover img {
		transform: scale(1.05);
	}
}
.agentx-listing-image-grid-overlay {
	background: var(--wh-black);
}

/* Disclaimer */
.agentx-custom-single-listing .agentx-disclaimer {
	margin-top: 64px;
	padding-top: 32px !important;
	padding-bottom: 64px !important;
}

@media (max-width: 781px) {
	.agentx-custom-single-listing > .wp-block-group__inner-container > .wp-block-group:nth-child(2) {
		padding-top: 40px !important;
	}
	.agentx-custom-single-listing > .wp-block-group__inner-container > .wp-block-group:nth-child(2) .wp-block-columns {
		align-items: flex-start !important;
		gap: 8px;
	}
	.agentx-custom-single-listing .agentx-listing-field.price .load-content {
		text-align: left !important;
	}
	.agentx-custom-single-listing > .wp-block-group__inner-container > .wp-block-group:nth-child(3) .wp-block-columns {
		gap: 32px;
	}
	.agentx-custom-single-listing .wp-block-column.has-background {
		flex-basis: 100% !important;
		align-self: stretch;
	}
	.agentx-custom-single-listing .wp-block-group:has(> .wp-block-buttons) {
		margin-left: 0;
	}
	.agentx-custom-single-listing > .wp-block-group__inner-container > .wp-block-group:nth-child(4) {
		padding-top: 64px !important;
	}
	.agentx-custom-single-listing .slick-banner .slick-arrow {
		width: 40px;
		height: 40px;
		margin-top: -20px;
		font-size: 16px;
	}
	.agentx-custom-single-listing .slick-arrow.dashicons-arrow-left-alt2 {
		left: 16px;
	}
	.agentx-custom-single-listing .slick-arrow.dashicons-arrow-right-alt2 {
		right: 16px;
	}
}

/* ==========================================================================
   Selling page (/selling/)
   ========================================================================== */

/* short teal rule under the centred statement */
.wh-statement::after {
	content: "";
	display: block;
	width: 72px;
	height: 1px;
	background: var(--wh-teal);
	margin: 32px auto 0;
}

/* six seller services in a 2-column grid */
.wh-sell-service-grid {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 36px 40px;
	align-items: stretch;
}
.wh-sell-service-grid > .w-vwrapper { width: auto; margin: 0 !important; }
@media (max-width: 767px) {
	.wh-sell-service-grid { grid-template-columns: 1fr; }
}

/* tall interior photo fills the right column */
.wh-sell-photo-col > .vc_column-inner,
.wh-sell-photo,
.wh-sell-photo > * { height: 100%; }
.wh-sell-photo img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1024px) {
	.wh-sell-photo-col > .vc_column-inner,
	.wh-sell-photo,
	.wh-sell-photo > * { height: auto; }
	.wh-sell-photo img { height: 440px; }
}

/* resource cards: image with a dark title bar along the bottom */
.wpb_column.wh-resource-card { padding: 0 !important; }
.wh-resource-card > .vc_column-inner { padding: 0 !important; }
.wh-resource-card .w-btn-wrapper {
	width: 100%;
	margin: 0 !important;
	position: relative;
	z-index: 1;
}
.w-btn.wh-resource-link {
	display: flex;
	width: 100%;
	justify-content: space-between;
	align-items: center;
	background: rgba(9, 11, 11, 0.87) !important;
	border-top: 1px solid rgba(255, 255, 255, 0.19) !important;
	padding: 24px 28px !important;
	font-size: 30px !important;
	line-height: 1.1;
	color: var(--wh-ink) !important;
	text-align: left;
}
.w-btn.wh-resource-link:hover { color: var(--wh-teal) !important; }
@media (max-width: 600px) {
	.w-btn.wh-resource-link { font-size: 24px !important; }
}

/* ==========================================================================
   Property evaluation and concierge search forms (Contact Form 7,
   /property-evaluation/ and /concierge-search/).
   Scoped by each form's hidden "form-type" field so other forms are untouched.
   ========================================================================== */
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0 24px;
	padding: 48px;
	background: var(--wh-alt);
	border: 1px solid var(--wh-line);
}
/* Name, email, phone, address, location and property type sit in pairs;
   beds, baths, sq ft and lot size share a row; additional info is full width.
   Each field spans a label row and an input row shared with its neighbours (subgrid),
   so a wrapped label or an error message never knocks the inputs out of line */
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) > p {
	grid-column: span 2;
	grid-row: span 2;
	display: grid;
	grid-template-rows: subgrid;
	align-items: end;
	margin: 0 0 28px;
}
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) > p > .wpcf7-form-control-wrap {
	align-self: start;
}
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) > p:has([name="bedrooms"]),
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) > p:has([name="bathrooms"]),
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) > p:has([name="sqft-approx"]),
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) > p:has([name="lot-size"]) {
	grid-column: span 1;
}
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) > p:has(textarea),
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) > .wpcf7-response-output {
	grid-column: 1 / -1;
	text-align: left;
}
/* Concierge search has one field fewer, so property type gets the full row */
.wpcf7-form:has(input[name="form-type"][value="purchasing"]) > p:has([name="propertytype"]) {
	grid-column: 1 / -1;
}
/* The last block also holds the Send button, so it lays out normally */
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) > p:has(textarea) {
	display: block;
	margin-bottom: 0;
}
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) br {
	display: none;
}
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) label {
	display: block;
	margin-bottom: 10px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wh-muted);
}
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) .wpcf7-form-control:not(.wpcf7-submit):not([type="hidden"]) {
	width: 100%;
	height: 52px;
	min-height: 0;
	padding: 14px 16px;
	font-family: inherit;
	font-size: 15px;
	color: var(--wh-ink);
	background: var(--wh-bg);
	border: 1px solid var(--wh-line);
	border-radius: 0;
	box-shadow: none;
	transition: border-color 0.25s ease;
}
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) .wpcf7-form-control:not(.wpcf7-submit):hover {
	border-color: var(--wh-muted);
}
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) .wpcf7-form-control:not(.wpcf7-submit):focus {
	border-color: var(--wh-teal);
	outline: none;
}
/* Keep browser autofill dark */
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) input:-webkit-autofill {
	-webkit-text-fill-color: var(--wh-ink);
	box-shadow: 0 0 0 100px var(--wh-bg) inset;
}
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) textarea.wpcf7-form-control:not(.wpcf7-submit):not([type="hidden"]) {
	display: block;
	height: 160px;
	resize: vertical;
}

/* Send button, matching the site's teal buttons */
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) .wpcf7-submit {
	float: none;
	margin-top: 32px;
	padding: 1.25em 2.6em;
	font-family: inherit;
	font-size: 13px;
	line-height: 1.2;
	letter-spacing: 0.02em;
	color: var(--wh-bg);
	background: var(--color-content-primary);
	border: none;
	border-radius: 0;
	cursor: pointer;
	transition: background-color 0.3s ease;
}
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) .wpcf7-submit:hover {
	background: var(--wh-ink);
}

/* Validation and response messages */
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) .wpcf7-not-valid {
	border-color: #d9776b !important;
}
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) .wpcf7-not-valid-tip {
	margin-top: 8px;
	font-size: 12px;
	color: #e08b80;
}
.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) .wpcf7-response-output {
	margin: 8px 0 0 !important;
	padding: 14px 18px !important;
	font-size: 14px;
	color: var(--wh-ink);
	border: 1px solid var(--wh-line) !important;
}
.wpcf7-form.sent:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) .wpcf7-response-output {
	border-color: var(--wh-teal) !important;
}
.wpcf7-form.invalid:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) .wpcf7-response-output,
.wpcf7-form.failed:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) .wpcf7-response-output {
	border-color: #d9776b !important;
}

@media (max-width: 767px) {
	.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0 16px;
		padding: 28px 20px;
	}
	.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) > p {
		grid-column: 1 / -1;
		margin-bottom: 22px;
	}
	.wpcf7-form:has(input[name="form-type"]:is([value="home evaluation"], [value="purchasing"])) .wpcf7-submit {
		width: 100%;
	}
}

/* ==========================================================================
   Mobile menu panel: cleaner rows, arrows on the right, indented sub-items.
   Frosted glass while the header is transparent, solid once the header is.
   ========================================================================== */
.l-header .wh-main-menu.type_mobile .w-nav-list.level_1 {
	padding: 4px 40px 20px;
	box-shadow: 0 24px 40px rgba(0, 0, 0, 0.25);
}
.l-header.bg_transparent:not(.sticky) .wh-main-menu.type_mobile .w-nav-list.level_1 {
	background: rgba(17, 20, 20, 0.72);
	-webkit-backdrop-filter: blur(20px) saturate(140%);
	backdrop-filter: blur(20px) saturate(140%);
	border-top: 1px solid rgba(245, 245, 240, 0.12);
}
/* Dividers sit on the item, so an opened sub-menu stays above its line */
.l-header .wh-main-menu.type_mobile .w-nav-item.level_1 {
	border-bottom: 1px solid rgba(245, 245, 240, 0.1);
}
/* The menu ends with Impreza's hidden close button, so also match the item just before it */
.l-header .wh-main-menu.type_mobile .w-nav-item.level_1:last-child,
.l-header .wh-main-menu.type_mobile .w-nav-item.level_1:has(+ .w-nav-close) {
	border-bottom: none;
}
.l-header .wh-main-menu.type_mobile .w-nav-anchor.level_1:not(.w-btn) {
	align-items: center;
	justify-content: space-between;
	margin-inline: 0;
	padding: 17px 0;
	font-size: 19px;
	line-height: 1.3;
}
/* Hide the desktop underline on the current page in the mobile menu */
.l-header .wh-main-menu.type_mobile .w-nav-title::after {
	display: none;
}
.l-header .wh-main-menu.type_mobile .w-nav-arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	margin: -6px -8px -6px auto;
	opacity: 0.7;
}
.l-header .wh-main-menu.type_mobile .w-nav-arrow::before {
	font-size: 13px;
}
.l-header .wh-main-menu.type_mobile .menu-item-has-children.opened > .w-nav-anchor .w-nav-arrow {
	opacity: 1;
}

/* Sub-items */
.l-header .wh-main-menu.type_mobile .w-nav-list.level_2 {
	margin: -4px 0 16px 2px;
	padding: 2px 0 2px 18px;
	background: none;
	border-left: 1px solid rgba(245, 245, 240, 0.16);
	box-shadow: none;
}
.l-header .wh-main-menu.type_mobile .w-nav-anchor.level_2:not(.w-btn) {
	padding: 9px 0;
	font-size: 16px;
	line-height: 1.35;
	color: var(--wh-muted);
}
.l-header .wh-main-menu.type_mobile .w-nav-item.level_2.current-menu-item > .w-nav-anchor,
.l-header .wh-main-menu.type_mobile .w-nav-anchor.level_2:hover {
	color: var(--wh-teal);
}

/* ==========================================================================
   Stacked columns on tablet and mobile: cap the vertical gap between columns.
   min() keeps grids that are meant to be tight (16px cards, 1px hairlines) as they are.
   ========================================================================== */
@media (max-width: 1024px) {
	.g-cols.via_grid.tablets-cols_1 {
		row-gap: min(var(--columns-gap, 3rem), 32px) !important;
	}
}
@media (max-width: 600px) {
	.g-cols.via_grid.mobiles-cols_1 {
		row-gap: min(var(--columns-gap, 3rem), 24px) !important;
	}
}
