/**
 * Plugin baseline / fallback CSS (ADR — see class-rb-elementor.php).
 *
 * Registered ONLY under a handle the active theme has not already
 * registered (see RB_Elementor::register_baseline_fallbacks()) — on a
 * site whose theme provides the real presentation stylesheets (like this
 * one), none of this file ever loads. It exists purely so a component
 * still renders usable, readable, reasonably spaced markup on a theme
 * that provides nothing at all.
 *
 * Deliberately generic: no brand color palette, no custom font-family, no
 * decorative/hover treatment. Any property already covered by the Card
 * Appearance settings (--rb-card-*/--rb-rep-card-*) uses those exact
 * custom property names with a plain neutral fallback, so a site that HAS
 * customized Card Appearance still sees its own colors even without a
 * theme installed. Everything else uses a small set of --rb-baseline-*
 * tokens scoped to this file only (no collision with theme/Card
 * Appearance tokens, which use different names entirely).
 */

:root {
	--rb-baseline-text: #2b2b2b;
	--rb-baseline-text-muted: #6b6b6b;
	--rb-baseline-border: #d8d8d8;
	--rb-baseline-bg: #ffffff;
	--rb-baseline-surface: #f6f6f6;
	--rb-baseline-accent: #2b2b2b;
	--rb-baseline-radius: 6px;
	--rb-baseline-space-1: 4px;
	--rb-baseline-space-2: 8px;
	--rb-baseline-space-3: 12px;
	--rb-baseline-space-4: 16px;
	--rb-baseline-space-5: 24px;
}

/* ==========================================================================
   Listing Card (handle: rb-listing-card)
   ========================================================================== */
.rb-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--rb-card-bg, var(--rb-baseline-bg));
	border: var(--rb-card-border-width, 1px) solid var(--rb-card-border, var(--rb-baseline-border));
	border-radius: var(--rb-card-radius, var(--rb-baseline-radius));
	overflow: hidden;
}
.rb-card__link {
	position: absolute;
	inset: 0;
}
.rb-card__media {
	position: relative;
	aspect-ratio: 3 / 2;
	background: var(--rb-baseline-surface);
	overflow: hidden;
}
.rb-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.rb-badge {
	position: absolute;
	top: var(--rb-baseline-space-3);
	left: var(--rb-baseline-space-3);
	padding: var(--rb-baseline-space-1) var(--rb-baseline-space-3);
	border-radius: var(--rb-baseline-radius);
	font-size: 12.5px;
	color: #fff;
	background: var(--rb-baseline-accent);
}
.rb-card__star {
	position: absolute;
	top: var(--rb-baseline-space-3);
	right: var(--rb-baseline-space-3);
	width: 28px;
	height: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--rb-baseline-bg);
}
.rb-card__body {
	display: flex;
	flex-direction: column;
	gap: var(--rb-baseline-space-3);
	padding: var(--rb-baseline-space-4);
	flex-grow: 1;
}
.rb-card__pricing {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--rb-baseline-space-2);
}
.rb-card__price {
	font-size: var(--rb-card-price-size, 22px);
	font-weight: 700;
	color: var(--rb-card-price, var(--rb-baseline-text));
}
.rb-card__sde {
	font-size: 13px;
	color: var(--rb-baseline-text-muted);
}
.rb-card__title {
	font-size: var(--rb-card-title-size, 18px);
	font-weight: 600;
	line-height: 1.4;
	color: var(--rb-card-title, var(--rb-baseline-text));
	margin: 0;
}
.rb-card__meta,
.rb-card__highlights {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--rb-baseline-space-2) var(--rb-baseline-space-4);
	font-size: 14px;
	color: var(--rb-card-meta, var(--rb-baseline-text-muted));
}
.rb-card__highlights {
	flex-direction: column;
	color: var(--rb-card-body, var(--rb-baseline-text));
}
.rb-card__location {
	display: inline-flex;
	align-items: center;
	gap: var(--rb-baseline-space-1);
	margin: 0;
	font-size: 14px;
	color: var(--rb-card-meta, var(--rb-baseline-text-muted));
}
.rb-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--rb-baseline-space-2);
	margin-top: auto;
	padding-top: var(--rb-baseline-space-3);
	border-top: 1px solid var(--rb-baseline-border);
	font-size: 14px;
}
.rb-card__representative {
	display: inline-flex;
	align-items: center;
	gap: var(--rb-baseline-space-2);
	color: var(--rb-baseline-text-muted);
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.rb-card__avatar {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}
.rb-card__cta {
	display: inline-flex;
	align-items: center;
	gap: var(--rb-baseline-space-1);
	font-size: 12.5px;
	font-weight: 700;
	color: var(--rb-card-cta, var(--rb-baseline-text));
	white-space: nowrap;
}

/* ==========================================================================
   Listing Grid (handle: rb-listing-grid)
   ========================================================================== */
.rb-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--rb-baseline-space-5);
}
@media (max-width: 1024px) {
	.rb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.rb-grid { grid-template-columns: 1fr; }
}
.rb-grid__toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--rb-baseline-space-3);
	margin-bottom: var(--rb-baseline-space-4);
}
.rb-grid__pagination {
	display: flex;
	flex-wrap: wrap;
	gap: var(--rb-baseline-space-2);
}
.rb-grid__pagination a.page-numbers,
.rb-grid__pagination span.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	border-radius: var(--rb-baseline-radius);
	border: 1px solid var(--rb-baseline-border);
	color: var(--rb-baseline-text);
	text-decoration: none;
}
.rb-grid__pagination span.page-numbers.current {
	background: var(--rb-baseline-accent);
	color: #fff;
	border-color: var(--rb-baseline-accent);
}
.rb-grid__empty {
	text-align: center;
	padding: var(--rb-baseline-space-5);
}
.rb-grid__empty-title {
	font-size: 22px;
	margin: 0 0 var(--rb-baseline-space-2);
}

/* ==========================================================================
   Listing Single: hero / facts / gallery / broker sidebar (handle: rb-listing-single)
   ========================================================================== */
.rb-shero__media {
	position: relative;
	aspect-ratio: 3 / 2;
	max-height: 520px;
	width: 100%;
	overflow: hidden;
	background: var(--rb-baseline-surface);
}
.rb-shero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.rb-facts__highlights {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--rb-baseline-space-2) var(--rb-baseline-space-4);
}
@media (max-width: 600px) {
	.rb-facts__highlights { grid-template-columns: 1fr; }
}
.rb-sgallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--rb-baseline-space-2);
}
@media (max-width: 767px) {
	.rb-sgallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.rb-sgallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.rb-broker {
	padding: var(--rb-baseline-space-4);
	border: 1px solid var(--rb-baseline-border);
	border-radius: var(--rb-baseline-radius);
}
.rb-broker__head {
	display: flex;
	align-items: center;
	gap: var(--rb-baseline-space-3);
}
.rb-broker__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 var(--rb-baseline-space-4);
	border-radius: var(--rb-baseline-radius);
	border: 1px solid var(--rb-baseline-border);
	color: var(--rb-baseline-text);
	text-decoration: none;
}
.rb-broker__btn--primary {
	background: var(--rb-baseline-accent);
	border-color: var(--rb-baseline-accent);
	color: #fff;
}
@media (max-width: 767px) {
	.rb-broker { position: static; }
}

/* ==========================================================================
   Filter Bar (handle: rb-filter-bar)
   ========================================================================== */
.rb-filters__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--rb-baseline-space-4);
}
@media (max-width: 1024px) {
	.rb-filters__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
	.rb-filters__grid { grid-template-columns: 1fr; }
}
.rb-filters__field label {
	display: block;
	margin-bottom: var(--rb-baseline-space-1);
	font-size: 14px;
}
.rb-filters__field select,
.rb-filters__field input {
	width: 100%;
	min-height: 44px;
	padding: 0 var(--rb-baseline-space-3);
	border: 1px solid var(--rb-baseline-border);
	border-radius: var(--rb-baseline-radius);
	background: var(--rb-baseline-bg);
	color: var(--rb-baseline-text);
	font-size: 16px;
}
.rb-filters__field--check {
	display: flex;
	align-items: flex-end;
}
.rb-filters__actions {
	display: flex;
	align-items: center;
	gap: var(--rb-baseline-space-3);
	margin-top: var(--rb-baseline-space-3);
}
.rb-filters__submit {
	min-height: 44px;
	padding: 0 var(--rb-baseline-space-4);
	border: 0;
	border-radius: var(--rb-baseline-radius);
	background: var(--rb-baseline-accent);
	color: #fff;
	cursor: pointer;
}
.rb-filters__reset {
	color: var(--rb-baseline-text-muted);
}

/* ==========================================================================
   Inquiry Form + Mobile Enquire Bar (handle: rb-inquiry-form)
   ========================================================================== */
.rb-iform {
	padding: var(--rb-baseline-space-4);
	background: var(--rb-baseline-bg);
	border: 1px solid var(--rb-baseline-border);
	border-radius: var(--rb-baseline-radius);
}
.rb-iform__title {
	font-size: 20px;
	margin: 0 0 var(--rb-baseline-space-4);
}
.rb-iform__success,
.rb-iform__error {
	padding: var(--rb-baseline-space-3);
	border-radius: var(--rb-baseline-radius);
	font-size: 14px;
	margin: 0 0 var(--rb-baseline-space-4);
	border: 1px solid var(--rb-baseline-border);
}
.rb-iform__form {
	display: flex;
	flex-direction: column;
	gap: var(--rb-baseline-space-4);
}
.rb-iform__row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--rb-baseline-space-4);
}
@media (max-width: 767px) {
	.rb-iform__row { grid-template-columns: 1fr; }
}
.rb-iform__field label {
	display: block;
	margin-bottom: var(--rb-baseline-space-1);
	font-size: 14px;
}
.rb-iform__field input[type="text"],
.rb-iform__field input[type="email"],
.rb-iform__field input[type="tel"],
.rb-iform__field select,
.rb-iform__field textarea {
	width: 100%;
	min-height: 44px;
	padding: var(--rb-baseline-space-2) var(--rb-baseline-space-3);
	border: 1px solid var(--rb-baseline-border);
	border-radius: var(--rb-baseline-radius);
	background: var(--rb-baseline-bg);
	color: var(--rb-baseline-text);
	font-size: 16px;
}
.rb-iform__field textarea {
	resize: vertical;
}
.rb-iform__field--consent label {
	display: flex;
	gap: var(--rb-baseline-space-2);
	align-items: flex-start;
	font-size: 13.5px;
	cursor: pointer;
}
.rb-iform__field--consent input {
	width: 18px;
	height: 18px;
	margin-top: 2px;
	flex-shrink: 0;
}
.rb-iform__hint {
	margin: 0;
	font-size: 12.5px;
	color: var(--rb-baseline-text-muted);
}
.rb-iform__submit {
	min-height: 44px;
	border: 0;
	border-radius: var(--rb-baseline-radius);
	background: var(--rb-baseline-accent);
	color: #fff;
	font-weight: 600;
	font-size: 15px;
	cursor: pointer;
}
/* Honeypot: must render fully off-screen to real users while staying in
   the DOM for bots — this is a security control, not a design choice, so
   it is deliberately exempt from the "avoid !important" rule (a theme
   with a competing, higher-specificity `.rb-iform__hp`-adjacent selector
   must never be able to accidentally reveal the trap field). */
.rb-iform__hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.rb-ebar {
	display: none;
}
@media (max-width: 767px) {
	.rb-ebar {
		display: flex;
		gap: var(--rb-baseline-space-2);
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 90;
		padding: var(--rb-baseline-space-2) var(--rb-baseline-space-3);
		background: var(--rb-baseline-bg);
		border-top: 1px solid var(--rb-baseline-border);
	}
	.rb-ebar__btn {
		flex: 1;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 44px;
		border: 1px solid var(--rb-baseline-border);
		border-radius: var(--rb-baseline-radius);
		color: var(--rb-baseline-text);
		text-decoration: none;
	}
	.rb-ebar__btn--primary {
		background: var(--rb-baseline-accent);
		border-color: var(--rb-baseline-accent);
		color: #fff;
	}
}

/* ==========================================================================
   Representative Card / Grid / Profile (handle: rb-representative)
   ========================================================================== */
.rb-bgrid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--rb-baseline-space-5);
}
@media (max-width: 1024px) {
	.rb-bgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.rb-bgrid { grid-template-columns: 1fr; }
}
.rb-bcard {
	text-align: center;
	background: var(--rb-rep-card-bg, var(--rb-baseline-bg));
	border: var(--rb-rep-card-border-width, 1px) solid var(--rb-rep-card-border, var(--rb-baseline-border));
	border-radius: var(--rb-rep-card-radius, var(--rb-baseline-radius));
	padding: var(--rb-baseline-space-4);
}
.rb-bcard__photo {
	width: 140px;
	height: 140px;
	margin: 0 auto var(--rb-baseline-space-3);
	border-radius: 50%;
	overflow: hidden;
	background: var(--rb-baseline-surface);
}
.rb-bcard__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.rb-bcard__name {
	margin: 0 0 var(--rb-baseline-space-1);
	font-size: var(--rb-rep-card-name-size, 18px);
	color: var(--rb-rep-card-name, var(--rb-baseline-text));
}
.rb-bcard__position {
	margin: 0 0 var(--rb-baseline-space-2);
	font-size: var(--rb-rep-card-position-size, 13.5px);
	color: var(--rb-rep-card-position, var(--rb-baseline-text-muted));
}
.rb-bcard__specialties {
	margin: 0 0 var(--rb-baseline-space-3);
	font-size: var(--rb-rep-card-specialty-size, 12.5px);
	color: var(--rb-rep-card-specialty, var(--rb-baseline-text-muted));
}
.rb-bprofile__header {
	display: flex;
	gap: var(--rb-baseline-space-4);
	align-items: flex-start;
	flex-wrap: wrap;
	margin-bottom: var(--rb-baseline-space-4);
}
.rb-bprofile__photo {
	width: 140px;
	height: 140px;
	flex-shrink: 0;
	border-radius: var(--rb-baseline-radius);
	overflow: hidden;
	background: var(--rb-baseline-surface);
}
.rb-bprofile__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.rb-bprofile__facts {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--rb-baseline-space-3);
	padding: var(--rb-baseline-space-4);
	background: var(--rb-baseline-surface);
	border-radius: var(--rb-baseline-radius);
}
@media (max-width: 767px) {
	.rb-bprofile__header { flex-direction: column; align-items: center; text-align: center; }
	.rb-bprofile__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ==========================================================================
   Hero Search + Business Info (handle: rb-marketing — narrow subset only;
   the theme's own six presentation widgets are theme-owned and are
   intentionally NOT baselined here, see docs)
   ========================================================================== */
.rb-hero-search__form {
	display: flex;
	flex-wrap: wrap;
	gap: var(--rb-baseline-space-3);
	align-items: flex-end;
}
@media (max-width: 767px) {
	.rb-hero-search__form { flex-direction: column; align-items: stretch; }
}
.rb-hero-search__field {
	flex: 1 1 160px;
}
.rb-hero-search__field label {
	display: block;
	margin-bottom: var(--rb-baseline-space-1);
	font-size: 13px;
}
.rb-hero-search__field select,
.rb-hero-search__field input {
	width: 100%;
	min-height: 44px;
	padding: 0 var(--rb-baseline-space-3);
	border: 1px solid var(--rb-baseline-border);
	border-radius: var(--rb-baseline-radius);
	font-size: 16px;
}
.rb-hero-search__submit {
	min-height: 44px;
	padding: 0 var(--rb-baseline-space-4);
	border: 0;
	border-radius: var(--rb-baseline-radius);
	background: var(--rb-baseline-accent);
	color: #fff;
	cursor: pointer;
}
.rb-bizinfo__row {
	margin: 0 0 var(--rb-baseline-space-2);
	font-size: 14px;
}
.rb-bizinfo__label {
	display: inline-block;
	min-width: 60px;
	font-weight: 600;
	margin-right: var(--rb-baseline-space-2);
}
.rb-social {
	display: flex;
	gap: var(--rb-baseline-space-2);
	list-style: none;
	margin: 0;
	padding: 0;
}
