/* IWL Real Estate — front-end styles
   Minimal overrides only. The active theme provides the primary design.
   These styles are scoped so they don't leak into non-RE pages.
*/

/* ── No-results ─────────────────────────────────────────────────────────────── */
.iwl-re-no-results {
	padding: 2rem;
	text-align: center;
	color: var(--color-text-secondary, #6b7280);
}

/* ── Form messages ───────────────────────────────────────────────────────────── */
.iwl-re-form-message,
.ere__message {
	margin-top: .75rem;
	padding: .5rem .75rem;
	border-radius: var(--radius-m, 4px);
	font-size: .9rem;
}
.iwl-re-form-message.success,
.ere__message.success {
	background: #d1fae5;
	color: #065f46;
}
.iwl-re-form-message.error,
.ere__message.error {
	background: #fee2e2;
	color: #991b1b;
}

/* ── Property loop ───────────────────────────────────────────────────────────── */
.property-status-badge,
.property-label-badge,
.property-featured-badge {
	position: absolute;
	top: .5rem;
	left: .5rem;
	padding: .2rem .5rem;
	font-size: .75rem;
	font-weight: 600;
	border-radius: var(--radius-s, 3px);
	text-transform: uppercase;
	letter-spacing: .05em;
}
.property-status-badge  { background: var(--color-primary, #1d4ed8); color: #fff; }
.property-label-badge   { background: var(--color-accent,  #f59e0b); color: #fff; top: 2rem; }
.property-featured-badge{ background: #16a34a; color: #fff; right: .5rem; left: auto; }

.property-thumbnail { position: relative; overflow: hidden; }
.property-thumbnail img { width: 100%; height: 100%; object-fit: cover; display: block; }

.property-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	font-size: .875rem;
	color: var(--color-text-secondary, #6b7280);
	margin-top: .5rem;
}
.property-meta span { display: flex; align-items: center; gap: .25rem; }

/* ── Search form ─────────────────────────────────────────────────────────────── */
.iwl-re-search-form {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	align-items: flex-end;
}
.iwl-re-search-form .search-field { flex: 1 1 160px; }
.iwl-re-search-form .search-field--price { display: flex; gap: .5rem; flex: 2 1 220px; }
.iwl-re-search-form input,
.iwl-re-search-form select {
	width: 100%;
	padding: .5rem .75rem;
	border: 1px solid var(--color-border, #d1d5db);
	border-radius: var(--radius-m, 4px);
	font-size: .9rem;
}

/* ── Map ─────────────────────────────────────────────────────────────────────── */
/* Both the theme's canvas (#ere__single_property_map) and the plugin fallback (#iwl-re-map)
   need an explicit height — Leaflet won't render in a zero-height container. */
#ere__single_property_map,
#iwl-re-map {
	width: 100%;
	height: 400px;
	border-radius: var(--radius-m, 4px);
}

/* ── Contact agent panel ─────────────────────────────────────────────────────── */
.iwl-re-contact-agent {
	padding: 1.5rem;
	border: 1px solid var(--color-border, #e5e7eb);
	border-radius: var(--radius-m, 6px);
	background: #fff;
}

.iwl-re-contact-agent__heading {
	margin: 0 0 1rem;
	font-size: 1.1rem;
	font-weight: 600;
}

/* Agent mini-card */
.iwl-re-agent-mini-card {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin-bottom: 1.25rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--color-border, #e5e7eb);
}

.iwl-re-agent-mini-card__photo {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}

.iwl-re-agent-mini-card__body {
	display: flex;
	flex-direction: column;
	gap: .15rem;
}

.iwl-re-agent-mini-card__name {
	font-size: .95rem;
	font-weight: 600;
	line-height: 1.2;
}

.iwl-re-agent-mini-card__position {
	font-size: .8rem;
	color: var(--color-text-secondary, #6b7280);
}

/* WhatsApp CTA button */
.iwl-re-whatsapp-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	width: 100%;
	padding: .75rem 1rem;
	margin-bottom: 1.25rem;
	background: #25d366;
	color: #fff;
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	border-radius: var(--radius-m, 6px);
	transition: background .15s ease, transform .1s ease;
}

.iwl-re-whatsapp-btn:hover,
.iwl-re-whatsapp-btn:focus {
	background: #1ebe5d;
	color: #fff;
	text-decoration: none;
	transform: translateY(-1px);
}

.iwl-re-whatsapp-btn:active {
	transform: translateY(0);
}

/* Contact form fields */
.iwl-re-field-group {
	display: flex;
	flex-direction: column;
	gap: .3rem;
	margin-bottom: .875rem;
}

.iwl-re-field-group label {
	font-size: .875rem;
	font-weight: 500;
	color: var(--color-text, #111827);
}

.iwl-re-required {
	color: #dc2626;
	margin-left: .15rem;
}

.iwl-re-input {
	width: 100%;
	padding: .6rem .75rem;
	border: 1px solid var(--color-border, #d1d5db);
	border-radius: var(--radius-m, 4px);
	font-size: .9rem;
	line-height: 1.5;
	color: var(--color-text, #111827);
	background: #fff;
	box-sizing: border-box;
	transition: border-color .15s ease;
}

.iwl-re-input:focus {
	outline: none;
	border-color: var(--color-primary, #1d4ed8);
	box-shadow: 0 0 0 3px rgba(29,78,216,.12);
}

.iwl-re-textarea {
	resize: vertical;
	min-height: 100px;
}

.iwl-re-submit-btn {
	display: block;
	width: 100%;
	padding: .75rem 1rem;
	background: var(--color-primary, #1d4ed8);
	color: #fff;
	font-size: .95rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
	border: none;
	border-radius: var(--radius-m, 4px);
	cursor: pointer;
	transition: background .15s ease;
}

.iwl-re-submit-btn:hover,
.iwl-re-submit-btn:focus {
	background: var(--color-primary-dark, #1e3a8a);
}

.iwl-re-submit-btn:disabled {
	opacity: .65;
	cursor: not-allowed;
}

/* ── Pagination ──────────────────────────────────────────────────────────────── */
.ere-pagination {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: .25rem;
	margin-top: 2rem;
}
.ere-pagination .page-numbers {
	padding: .4rem .75rem;
	border: 1px solid var(--color-border, #d1d5db);
	border-radius: var(--radius-m, 4px);
	color: inherit;
	text-decoration: none;
}
.ere-pagination .page-numbers.current {
	background: var(--color-primary, #1d4ed8);
	color: #fff;
	border-color: var(--color-primary, #1d4ed8);
}
