@charset "UTF-8";
/**
 * GenieBuilder — Recently Viewed Properties (GB_Recently_Viewed).
 * Photo on the left, then the address, beds/baths/garage, type and price —
 * or the same as cards in a grid. Every value comes from the token layer, so
 * a kit reskins it with the rest; the Elementor element's style controls
 * target these same classes.
 */

.mlsg-rv[hidden],
.mlsg-rv [hidden] {
	display: none;
}

.mlsg-rv {
	display: flex;
	flex-direction: column;
	gap: var(--mlsg-gb-space-md);
	color: var(--mlsg-gb-color-text);
}

.mlsg-rv__title {
	margin: 0;
}

.mlsg-rv__list {
	display: flex;
	flex-direction: column;
	gap: var(--mlsg-gb-space-md);
	margin: 0;
	padding: 0;
	list-style: none;
}

.mlsg-rv--grid .mlsg-rv__list {
	display: grid;
	grid-template-columns: repeat(var(--mlsg-rv-columns, 2), minmax(0, 1fr));
}

.mlsg-rv__item {
	display: grid;
	grid-template-columns: 6.5rem minmax(0, 1fr);
	align-items: center;
	gap: var(--mlsg-gb-space-md);
	margin: 0;
}

.mlsg-rv__item:not(:has(.mlsg-rv__thumb)) {
	grid-template-columns: minmax(0, 1fr);
}

.mlsg-rv--grid .mlsg-rv__item {
	grid-template-columns: minmax(0, 1fr);
	align-items: start;
}

.mlsg-rv__thumb {
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: var(--mlsg-gb-color-placeholder);
}

.mlsg-rv--grid .mlsg-rv__thumb {
	aspect-ratio: 4 / 3;
}

.mlsg-rv--img-rounded .mlsg-rv__thumb {
	border-radius: var(--mlsg-gb-radius-badge);
}

.mlsg-rv--img-circle .mlsg-rv__thumb {
	border-radius: 50%;
}

.mlsg-rv__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mlsg-rv__body {
	display: flex;
	flex-direction: column;
	gap: var(--mlsg-gb-space-xs);
	min-width: 0;
}

.mlsg-rv__link {
	color: inherit;
	font-weight: 700;
	line-height: 1.3;
	text-decoration: none;
}

.mlsg-rv__link:hover,
.mlsg-rv__link:focus-visible {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.mlsg-rv__facts {
	display: flex;
	flex-wrap: wrap;
	gap: var(--mlsg-gb-space-md);
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--mlsg-gb-color-muted);
}

.mlsg-rv__fact {
	display: inline-flex;
	align-items: center;
	gap: var(--mlsg-gb-space-xs);
}

.mlsg-rv__type {
	margin: 0;
	font-size: var(--mlsg-gb-font-meta);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.mlsg-rv__price {
	margin: 0;
	font-weight: 700;
}

.mlsg-rv__empty {
	margin: 0;
	color: var(--mlsg-gb-color-muted);
}

@media (max-width: 600px) {
	.mlsg-rv--grid .mlsg-rv__list {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Not every theme defines this; the fact labels must stay hidden without it. */
.mlsg-rv .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* The WordPress widget's box stays out of the sidebar until the list has
   something in it (mlsg-gb-recently-viewed.js adds .is-filled). */
.mlsg-rv-widget:not(.is-filled) {
	display: none;
}
