@charset "UTF-8";
/**
 * GenieBuilder — Single Property.
 * Token-driven. Gallery + facts + description + features + map.
 */

.mlsg-gb-single {
	--gb-single-gallery-h: 480px;
	display: flex;
	flex-direction: column;
	gap: var(--gb-space-lg);
	color: var(--gb-color-text);
}

.mlsg-gb-single__gallery {
	display: flex;
	flex-direction: column;
	gap: var(--gb-space-sm);
}

.mlsg-gb-single__stage {
	width: 100%;
	height: var(--gb-single-gallery-h);
	border-radius: var(--gb-radius-card);
	overflow: hidden;
	background: var(--gb-color-placeholder);
}

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

.mlsg-gb-single__thumbs {
	display: flex;
	gap: var(--gb-space-sm);
	overflow-x: auto;
	padding-bottom: var(--gb-space-xs);
}

.mlsg-gb-single__thumb {
	flex: 0 0 auto;
	width: 92px;
	height: 64px;
	padding: 0;
	border: 2px solid transparent;
	border-radius: var(--gb-radius-badge);
	overflow: hidden;
	cursor: pointer;
	background: var(--gb-color-placeholder);
}

.mlsg-gb-single__thumb.is-active {
	border-color: var(--gb-color-primary);
}

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

.mlsg-gb-single__header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--gb-space-md);
}

.mlsg-gb-single__price {
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.1;
}

.mlsg-gb-single__status {
	padding: var(--gb-space-xs) var(--gb-space-sm);
	background: var(--gb-badge-bg, var(--gb-badge-bg-default, var(--gb-color-badge-bg)));
	color: var(--gb-badge-text, var(--gb-badge-text-default, var(--gb-color-badge-text)));
	border-radius: var(--gb-radius-badge);
	font-size: var(--gb-font-badge);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.mlsg-gb-single__address {
	flex-basis: 100%;
	margin: 0;
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--gb-color-muted);
}

.mlsg-gb-single__facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: var(--gb-space-md);
	padding: var(--gb-space-md);
	border: 1px solid var(--gb-color-border);
	border-radius: var(--gb-radius-card);
}

.mlsg-gb-single__fact {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.15rem;
	text-align: center;
}

.mlsg-gb-single__fact i {
	color: var(--gb-color-primary);
	font-size: 1.1rem;
	margin-bottom: 0.15rem;
}

.mlsg-gb-single__fact-val {
	font-size: 1.05rem;
	font-weight: 700;
}

.mlsg-gb-single__fact-label {
	font-size: var(--gb-font-badge);
	color: var(--gb-color-muted);
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.mlsg-gb-single__section {
	display: flex;
	flex-direction: column;
	gap: var(--gb-space-sm);
}

.mlsg-gb-single__h2 {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 700;
}

.mlsg-gb-single__desc {
	font-size: 1rem;
	line-height: 1.65;
	color: var(--gb-color-text);
}

.mlsg-gb-single__features {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: var(--gb-space-sm);
}

.mlsg-gb-single__feature {
	display: flex;
	align-items: center;
	gap: var(--gb-space-sm);
	font-size: var(--gb-font-meta);
}

.mlsg-gb-single__feature i {
	color: var(--gb-color-primary);
	font-size: 0.85rem;
}

.mlsg-gb-single__map {
	width: 100%;
	height: 340px;
	border-radius: var(--gb-radius-card);
	overflow: hidden;
	background: var(--gb-color-placeholder);
}

.mlsg-gb-single__courtesy {
	font-size: var(--gb-font-badge);
	color: var(--gb-color-muted);
	margin: 0;
}

.mlsg-gb-single__notice {
	padding: var(--gb-space-lg);
	color: var(--gb-color-muted);
	font-size: var(--gb-font-meta);
	text-align: center;
}

@media (max-width: 640px) {
	.mlsg-gb-single__price {
		font-size: 1.5rem;
	}
}

/* ── Gallery stage: opens the photo viewer ─────────────────────────────── */

.mlsg-gb-single__stage-btn {
	display: block;
	position: relative;
	width: 100%;
	padding: 0;
	border: 0;
	background: none;
	cursor: zoom-in;
}

.mlsg-gb-single__stage-btn img {
	display: block;
	width: 100%;
	height: auto;
}

.mlsg-gb-single__stage-icon {
	position: absolute;
	right: 1rem;
	bottom: 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background: rgba(17, 24, 39, 0.72);
	color: #fff;
	font-size: 0.875rem;
	opacity: 0;
	transition: opacity 0.2s ease;
}

.mlsg-gb-single__stage-btn:hover .mlsg-gb-single__stage-icon,
.mlsg-gb-single__stage-btn:focus-visible .mlsg-gb-single__stage-icon {
	opacity: 1;
}

/* ── Attribution + MLS disclaimer ──────────────────────────────────────── */

.mlsg-gb-single__attribution {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-top: 2rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--gb-border, #e2e8f0);
}

.mlsg-gb-single__attribution-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mlsg-gb-single__attribution-item {
	font-size: 0.9375rem;
}

.mlsg-gb-single__attribution-label {
	color: var(--gb-text-muted, #64748b);
}

.mlsg-gb-single__attribution-value {
	font-weight: 600;
}

.mlsg-gb-single__checked {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--gb-text-muted, #64748b);
}

.mlsg-gb-single__disclaimer {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-top: 2rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--gb-border, #e2e8f0);
}

.mlsg-gb-single__disclaimer-h2 {
	margin: 0;
	font-size: 1rem;
}

.mlsg-gb-single__disclaimer-sources {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	margin: 0;
	padding-left: 1.25rem;
	font-size: 0.9375rem;
	font-weight: 600;
}

.mlsg-gb-single__disclaimer-sources a {
	color: inherit;
}

.mlsg-gb-single__disclaimer-logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--gb-disclaimer-logo-gap, 1rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Scoped under the list so Elementor's ".elementor img" rule, which is
   more specific than one class, cannot collapse the logo to nothing. */
.mlsg-gb-single__disclaimer-logos .mlsg-gb-single__disclaimer-logo {
	display: block;
	width: auto;
	max-width: none;
	height: var(--gb-disclaimer-logo-h, 3.5rem);
}

.mlsg-gb-single__disclaimer-text {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.mlsg-gb-single__disclaimer-text p {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--gb-text-muted, #64748b);
}

.mlsg-gb-single__disclaimer-p {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--gb-text-muted, #64748b);
}
