/* Favorites (M3) — overlay on card media, header toggle and listing grid. */

.abm-property-card { position: relative; }

.abm-card-media { position: relative; }

.abm-card-media .abm-card-image { position: relative; display: block; }

.abm-fav-toggle {
	position: absolute;
	z-index: 3;
	top: 10px;
	right: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 36px;
	height: 36px;
	padding: 0 12px;
	border: 1px solid var(--abm-border, #e3e9e7);
	border-radius: 999px;
	background: var(--abm-surface, #ffffff);
	color: var(--abm-text, #15211f);
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
	transition: transform 0.12s ease, background 0.12s ease, color 0.12s ease;
}

.abm-property-card .abm-fav-toggle { top: 12px; right: 12px; }

.abm-fav-toggle span { font-size: 16px; line-height: 1; }

.abm-fav-toggle:hover { transform: scale(1.06); }

.abm-fav-toggle.is-active {
	background: var(--abm-accent, #ff7356);
	border-color: var(--abm-accent, #ff7356);
	color: #ffffff;
}

.abm-single-header .abm-fav-toggle {
	position: static;
	margin-top: 12px;
}

/* Favorites listing grid */

.abm-favorites { max-width: 1100px; margin: 0 auto; padding: 24px 16px; }

.abm-favorites-title { margin: 0 0 16px; font-size: 22px; }

.abm-favorites .abm-property-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }

.abm-fav-card .abm-fav-remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	margin-left: 8px;
	padding: 0;
	border: 1px solid var(--abm-border, #e3e9e7);
	border-radius: 50%;
	background: transparent;
	color: var(--abm-muted, #66736f);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
}

.abm-fav-card .abm-fav-remove:hover { color: var(--abm-accent, #ff7356); border-color: var(--abm-accent, #ff7356); }

@media (max-width: 600px) {
	.abm-favorites .abm-property-grid { grid-template-columns: 1fr; }
}