@charset "UTF-8";
/**
 * GenieBuilder — Results Grid.
 * Token-driven responsive matrix. Cards render via the shared card styles.
 */

.mlsg-gb-grid {
	display: grid;
	grid-template-columns: repeat(var(--mlsg-gb-grid-cols, 3), minmax(0, 1fr));
	gap: var(--mlsg-gb-grid-gap, 1.5rem);
	width: 100%;
}

.mlsg-gb-grid__item {
	display: flex;
	min-width: 0;
}

.mlsg-gb-grid__item > .mlsg-gb-card {
	width: 100%;
}

.mlsg-gb-grid__empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--mlsg-gb-space-sm);
	padding: var(--mlsg-gb-space-lg);
	color: var(--mlsg-gb-color-muted);
	font-size: var(--mlsg-gb-font-meta);
	text-align: center;
}

.mlsg-gb-grid__empty i {
	font-size: 2rem;
	color: var(--mlsg-gb-color-muted);
}

/* ── Layout modes (Patch B) ───────────────────────────────────────────────── */
.mlsg-gb-grid--equal .mlsg-gb-grid__item > .mlsg-gb-card {
	height: 100%;
}

.mlsg-gb-grid--list {
	grid-template-columns: 1fr;
}

.mlsg-gb-grid--list .mlsg-gb-card {
	flex-direction: row;
	align-items: stretch;
}

.mlsg-gb-grid--list .mlsg-gb-card__media {
	flex: 0 0 40%;
	max-width: 40%;
	aspect-ratio: var(--mlsg-gb-aspect, 4 / 3);
}

.mlsg-gb-grid--list .mlsg-gb-card__body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

@media (max-width: 640px) {
	.mlsg-gb-grid--list .mlsg-gb-card {
		flex-direction: column;
	}
	.mlsg-gb-grid--list .mlsg-gb-card__media {
		flex-basis: auto;
		max-width: 100%;
	}
}

/* ── Visitor sort / filter toolbar (Patch E) ──────────────────────────────── */
.mlsg-gb-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--gbtb-gap, 12px);
	margin-bottom: var(--mlsg-gb-grid-gap, 1.5rem);
	padding: 12px 14px;
	background:var(--gbtb-bg, var(--mlsg-gb-color-surface, var(--mlsg-white)));
	border:1px solid var(--gbtb-border, var(--mlsg-gb-color-border, var(--mlsg-border)));
	border-radius: var(--mlsg-gb-radius-card, 12px);
}

.mlsg-gb-toolbar__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--gbtb-gap, 8px);
}

.mlsg-gb-toolbar__field {
	height: 40px;
	padding: 0 12px;
	font-size: 0.9375rem;
	color: var(--gbtb-field-color, var(--mlsg-gb-color-text, #1f2733));
	background:var(--gbtb-field-bg, var(--mlsg-white));
	border:1px solid var(--gbtb-field-border, var(--mlsg-gb-color-border, var(--mlsg-border)));
	border-radius: var(--gbtb-field-radius, 8px);
}

.mlsg-gb-toolbar__field--num {
	width: 96px;
}

.mlsg-gb-toolbar__field--money {
	width: 9ch;
	min-width: 96px;
	transition: width 0.15s ease;
}

.mlsg-gb-toolbar__field:focus-visible {
	outline:2px solid var(--gbtb-focus, var(--mlsg-teal));
	outline-offset: 1px;
}

.mlsg-gb-toolbar__check {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 40px;
	padding: 0 12px;
	font-size: 0.9375rem;
	color: var(--gbtb-field-color, var(--mlsg-gb-color-text, #1f2733));
	background:var(--gbtb-field-bg, var(--mlsg-white));
	border:1px solid var(--gbtb-field-border, var(--mlsg-gb-color-border, var(--mlsg-border)));
	border-radius: var(--gbtb-field-radius, 8px);
	cursor: pointer;
	white-space: nowrap;
}

.mlsg-gb-toolbar__check input[type="checkbox"] {
	margin: 0;
	accent-color: var(--gbtb-focus, #107dbd);
	cursor: pointer;
}

.mlsg-gb-toolbar__sort {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	white-space: nowrap;
}

.mlsg-gb-toolbar__sort-label {
	font-size: 0.875rem;
	font-weight: 600;
	color:var(--mlsg-gb-color-text-muted, var(--mlsg-text-muted));
}


@media (max-width: 640px) {
	.mlsg-gb-toolbar,
	.mlsg-gb-toolbar__filters {
		width: 100%;
	}
	.mlsg-gb-toolbar__field { flex: 1 1 auto; }
}

/* AJAX in-place filtering: dim results while the new set loads. */
.mlsg-gb-wrap.is-loading .mlsg-gb-results {
	opacity: 0.5;
	transition: opacity 0.15s ease;
	pointer-events: none;
}

/* Load More pagination (v1.9.179, styled v1.9.183) */
.mlsg-gb-more {
    display: flex;
    justify-content: var(--mlsg-gb-pg-align, center);
    margin-top: var(--mlsg-gb-space-lg, 1.5rem);
}
.mlsg-gb-wrap button.mlsg-gb-more__btn {
    display: inline-flex;
    align-items: center;
    gap: var(--mlsg-gb-space-sm, 0.5rem);
    padding: 0.75rem 1.75rem;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1;
    color:var(--mlsg-gb-pg-text-h, var(--mlsg-gb-color-primary, var(--mlsg-teal)));
    background:var(--mlsg-gb-pg-bg, var(--mlsg-gb-color-surface, var(--mlsg-white)));
    border:1.5px solid var(--mlsg-gb-pg-border-h, var(--mlsg-gb-color-primary, var(--mlsg-teal)));
    border-radius: var(--mlsg-gb-pg-radius, 999px);
    cursor: pointer;
    box-shadow: var(--mlsg-gb-shadow-card);
    transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.mlsg-gb-wrap button.mlsg-gb-more__btn:hover,
.mlsg-gb-wrap button.mlsg-gb-more__btn:focus-visible {
    color:var(--mlsg-gb-pg-text-c, var(--mlsg-gb-color-badge-text, var(--mlsg-on-brand)));
    background:var(--mlsg-gb-pg-bg-c, var(--mlsg-gb-color-primary, var(--mlsg-teal)));
    box-shadow: var(--mlsg-gb-shadow-card-hover);
    transform: translateY(-1px);
}
.mlsg-gb-wrap button.mlsg-gb-more__btn:focus-visible {
    outline:2px solid var(--mlsg-gb-color-primary, var(--mlsg-teal));
    outline-offset: 2px;
}
.mlsg-gb-wrap button.mlsg-gb-more__btn.is-loading {
    opacity: 0.6;
    pointer-events: none;
}

/* Numbered pagination (v1.9.180, styled v1.9.183) */
.mlsg-gb-pages {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    justify-content: var(--mlsg-gb-pg-align, center);
    gap: var(--mlsg-gb-pg-gap, var(--mlsg-gb-space-sm, 0.5rem));
    margin-top: var(--mlsg-gb-space-lg, 1.5rem);
}
.mlsg-gb-wrap a.mlsg-gb-pages__link,
.mlsg-gb-wrap a.mlsg-gb-pages__link:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: var(--mlsg-gb-pg-size, 2.75rem);
    height: var(--mlsg-gb-pg-size, 2.75rem);
    padding: 0 0.75rem;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1;
    color: var(--mlsg-gb-pg-text, var(--mlsg-gb-color-text, #1a1a1a));
    background:var(--mlsg-gb-pg-bg, var(--mlsg-gb-color-surface, var(--mlsg-white)));
    border:1px solid var(--mlsg-gb-pg-border, var(--mlsg-gb-color-border, var(--mlsg-border)));
    border-radius: var(--mlsg-gb-pg-radius, 999px);
    text-decoration: none;
    box-shadow: var(--mlsg-gb-shadow-card);
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.mlsg-gb-wrap a.mlsg-gb-pages__link:hover,
.mlsg-gb-wrap a.mlsg-gb-pages__link:focus-visible {
    color:var(--mlsg-gb-pg-text-h, var(--mlsg-gb-color-primary, var(--mlsg-teal)));
    background:var(--mlsg-gb-pg-bg-h, var(--mlsg-gb-pg-bg, var(--mlsg-gb-color-surface, var(--mlsg-white))));
    border-color:var(--mlsg-gb-pg-border-h, var(--mlsg-gb-color-primary, var(--mlsg-teal)));
    box-shadow: var(--mlsg-gb-shadow-card-hover);
    transform: translateY(-1px);
}
.mlsg-gb-wrap a.mlsg-gb-pages__link:focus-visible {
    outline:2px solid var(--mlsg-gb-color-primary, var(--mlsg-teal));
    outline-offset: 2px;
}
.mlsg-gb-wrap a.mlsg-gb-pages__link.is-current,
.mlsg-gb-wrap a.mlsg-gb-pages__link.is-current:visited {
    color:var(--mlsg-gb-pg-text-c, var(--mlsg-gb-color-badge-text, var(--mlsg-on-brand)));
    background:var(--mlsg-gb-pg-bg-c, var(--mlsg-gb-color-primary, var(--mlsg-teal)));
    border-color:var(--mlsg-gb-pg-bg-c, var(--mlsg-gb-color-primary, var(--mlsg-teal)));
    pointer-events: none;
}
.mlsg-gb-pages__gap {
    color: var(--mlsg-gb-color-muted, #667085);
    padding: 0 var(--mlsg-gb-space-xs, 0.25rem);
    align-self: center;
}
