/* Revolv IDX Styles */

:root {
	--revolv-primary: #1e3a8a;
	--revolv-secondary: #64748b;
	--revolv-accent: #0ea5e9;
	--revolv-success: #22c55e;
	--revolv-danger: #ef4444;
	--revolv-light: #f8fafc;
	--revolv-border: #e2e8f0;
	--revolv-text: #1e293b;
	--revolv-text-light: #64748b;
	--revolv-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
}

/* General Styles */
.revolv-search-container,
.revolv-detail-container,
.revolv-agent-microsite {
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
	color: var(--revolv-text);
	line-height: 1.6;
}

.revolv-btn {
	display: inline-block;
	padding: 10px 20px;
	border: none;
	border-radius: 4px;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	text-decoration: none;
	transition: all 0.2s ease;
}

.revolv-btn-primary {
	background-color: var(--revolv-primary);
	color: white;
}

.revolv-btn-primary:hover {
	background-color: #1e40af;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(30, 58, 138, 0.3);
}

.revolv-btn-secondary {
	background-color: var(--revolv-secondary);
	color: white;
}

.revolv-btn-secondary:hover {
	background-color: #475569;
}

.revolv-btn-small {
	padding: 8px 16px;
	font-size: 12px;
}

/* Search Page */
.revolv-search-container {
	display: grid;
	grid-template-columns: 1fr;
	gap: 30px;
	margin-bottom: 30px;
}

.revolv-search-filters {
	background: white;
	padding: 20px;
	border: 1px solid var(--revolv-border);
	border-radius: 8px;
	box-shadow: var(--revolv-shadow);
}

.revolv-search-filters h2 {
	margin: 0 0 20px 0;
	font-size: 20px;
	color: var(--revolv-primary);
}

.filter-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 15px;
	margin-bottom: 15px;
}

.filter-group {
	display: flex;
	flex-direction: column;
}

.filter-group label {
	font-weight: 500;
	font-size: 12px;
	text-transform: uppercase;
	color: var(--revolv-secondary);
	margin-bottom: 5px;
}

.revolv-filter-input {
	padding: 10px;
	border: 1px solid var(--revolv-border);
	border-radius: 4px;
	font-size: 14px;
	font-family: inherit;
}

.revolv-filter-input:focus {
	outline: none;
	border-color: var(--revolv-accent);
	box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.1);
}

.revolv-search-results {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 20px;
	margin-bottom: 30px;
}

.revolv-map-container {
	position: sticky;
	top: 20px;
	height: 500px;
	border-radius: 8px;
	overflow: hidden;
	border: 1px solid var(--revolv-border);
	box-shadow: var(--revolv-shadow);
}

#revolv-map {
	width: 100%;
	height: 100%;
}

.revolv-results-container {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

#revolv-results-info {
	padding: 15px;
	background-color: var(--revolv-light);
	border-left: 4px solid var(--revolv-accent);
	border-radius: 4px;
	font-size: 14px;
	color: var(--revolv-secondary);
}

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

.revolv-property-card {
	background: white;
	border: 1px solid var(--revolv-border);
	border-radius: 8px;
	overflow: hidden;
	box-shadow: var(--revolv-shadow);
	transition: all 0.3s ease;
}

.revolv-property-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}

.revolv-property-image {
	display: block;
	width: 100%;
	height: 200px;
	overflow: hidden;
	background-color: var(--revolv-light);
}

.revolv-property-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.revolv-property-card:hover .revolv-property-image img {
	transform: scale(1.05);
}

.revolv-no-image {
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #f5f5f5 0%, #e5e5e5 100%);
}

.revolv-no-image-text {
	color: #999;
	font-size: 14px;
	font-weight: 500;
}

.revolv-property-info {
	padding: 15px;
}

.revolv-property-info h3 {
	margin: 0 0 5px 0;
	font-size: 16px;
}

.revolv-property-info h3 a {
	color: var(--revolv-primary);
	text-decoration: none;
}

.revolv-property-info h3 a:hover {
	text-decoration: underline;
}

.revolv-property-location {
	margin: 5px 0 10px 0;
	font-size: 12px;
	color: var(--revolv-secondary);
}

.revolv-property-price {
	margin: 10px 0;
	font-size: 18px;
	font-weight: bold;
	color: var(--revolv-primary);
}

.revolv-property-specs {
	display: flex;
	gap: 15px;
	margin: 10px 0;
	padding: 10px 0;
	border-top: 1px solid var(--revolv-border);
	border-bottom: 1px solid var(--revolv-border);
	font-size: 12px;
}

.revolv-spec strong {
	display: block;
	font-size: 16px;
	color: var(--revolv-primary);
}

/* Pagination */
.revolv-pagination {
	display: flex;
	justify-content: center;
	gap: 5px;
	margin-top: 20px;
}

.revolv-pagination-controls {
	display: flex;
	justify-content: center;
	gap: 5px;
	flex-wrap: wrap;
}

.revolv-pagination-btn {
	padding: 8px 12px;
	border: 1px solid var(--revolv-border);
	background: white;
	color: var(--revolv-primary);
	border-radius: 4px;
	cursor: pointer;
	font-size: 12px;
	font-weight: 500;
	transition: all 0.2s ease;
}

.revolv-pagination-btn:hover {
	border-color: var(--revolv-primary);
	background-color: var(--revolv-light);
}

.revolv-pagination-btn.active {
	background-color: var(--revolv-primary);
	color: white;
	border-color: var(--revolv-primary);
}

.revolv-no-results {
	text-align: center;
	padding: 40px 20px;
	color: var(--revolv-secondary);
}

/* Detail Page */
.revolv-detail-container {
	max-width: 1200px;
	margin: 0 auto;
}

.revolv-detail-header {
	background: linear-gradient(135deg, var(--revolv-primary) 0%, #1e40af 100%);
	color: white;
	padding: 30px;
	border-radius: 8px;
	margin-bottom: 30px;
}

.revolv-detail-header h1 {
	margin: 0 0 10px 0;
	font-size: 28px;
}

.revolv-detail-address {
	margin: 0 0 10px 0;
	font-size: 14px;
	opacity: 0.9;
}

.revolv-detail-price {
	margin: 0;
	font-size: 24px;
	font-weight: bold;
}

.revolv-detail-content {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 30px;
}

.revolv-detail-sidebar {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.revolv-photo-gallery {
	background: white;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: var(--revolv-shadow);
	margin-bottom: 20px;
}

.revolv-main-photo {
	width: 100%;
	height: 400px;
	overflow: hidden;
	background-color: var(--revolv-light);
}

.revolv-main-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.revolv-photo-thumbnails {
	display: flex;
	gap: 10px;
	padding: 10px;
	background-color: var(--revolv-light);
	overflow-x: auto;
}

.revolv-photo-thumb {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border-radius: 4px;
	cursor: pointer;
	border: 2px solid transparent;
	transition: border-color 0.2s;
}

.revolv-photo-thumb:hover {
	border-color: var(--revolv-accent);
}

.revolv-property-details,
.revolv-property-remarks {
	background: white;
	padding: 20px;
	border-radius: 8px;
	box-shadow: var(--revolv-shadow);
	margin-bottom: 20px;
}

.revolv-property-details h2,
.revolv-property-remarks h2 {
	margin: 0 0 15px 0;
	font-size: 18px;
	color: var(--revolv-primary);
	border-bottom: 2px solid var(--revolv-border);
	padding-bottom: 10px;
}

.revolv-details-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 15px;
}

.revolv-detail-item {
	display: flex;
	flex-direction: column;
}

.revolv-detail-item label {
	font-weight: 600;
	font-size: 12px;
	text-transform: uppercase;
	color: var(--revolv-secondary);
	margin-bottom: 5px;
}

.revolv-detail-item span {
	font-size: 16px;
	color: var(--revolv-primary);
}

.revolv-property-remarks p {
	margin: 0;
	line-height: 1.8;
}

.revolv-property-map {
	background: white;
	padding: 20px;
	border-radius: 8px;
	box-shadow: var(--revolv-shadow);
	margin-bottom: 20px;
}

.revolv-property-map h2 {
	margin: 0 0 15px 0;
	font-size: 18px;
	color: var(--revolv-primary);
}

/* Forms */
.revolv-form {
	background: white;
	padding: 20px;
	border-radius: 8px;
	box-shadow: var(--revolv-shadow);
}

.revolv-form h3 {
	margin: 0 0 15px 0;
	font-size: 18px;
	color: var(--revolv-primary);
	border-bottom: 2px solid var(--revolv-border);
	padding-bottom: 10px;
}

.revolv-form > p {
	margin: 0 0 15px 0;
	font-size: 14px;
	color: var(--revolv-secondary);
}

.revolv-form-group {
	margin-bottom: 15px;
}

.revolv-form-group label {
	display: block;
	font-weight: 600;
	font-size: 12px;
	text-transform: uppercase;
	color: var(--revolv-secondary);
	margin-bottom: 5px;
}

.revolv-form-group .required {
	color: var(--revolv-danger);
}

.revolv-form-input {
	width: 100%;
	padding: 10px;
	border: 1px solid var(--revolv-border);
	border-radius: 4px;
	font-size: 14px;
	font-family: inherit;
	box-sizing: border-box;
}

.revolv-form-input:focus {
	outline: none;
	border-color: var(--revolv-accent);
	box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.1);
}

.revolv-form textarea {
	resize: vertical;
	font-family: inherit;
}

.revolv-contact-form,
.revolv-save-search {
	display: flex;
	flex-direction: column;
	gap: 15px;
}

/* VOW Registration Wall */
.revolv-vow-registration {
	max-width: 600px;
	margin: 0 auto;
	padding: 30px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 30px;
	background: white;
	border-radius: 8px;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
}

.revolv-vow-preview {
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.revolv-vow-preview-image {
	width: 100%;
	height: 300px;
	object-fit: cover;
	border-radius: 8px;
}

.revolv-vow-preview h2 {
	margin: 0;
	font-size: 18px;
	color: var(--revolv-primary);
}

.revolv-vow-location {
	margin: 0;
	font-size: 12px;
	color: var(--revolv-secondary);
}

.revolv-vow-price {
	margin: 0;
	font-size: 20px;
	font-weight: bold;
	color: var(--revolv-primary);
}

.revolv-vow-form h3 {
	margin: 0 0 10px 0;
	font-size: 18px;
	color: var(--revolv-primary);
}

/* Agent Microsite */
.revolv-agent-microsite {
	max-width: 1200px;
	margin: 0 auto;
}

.revolv-agent-header {
	background: white;
	padding: 30px;
	border-radius: 8px;
	box-shadow: var(--revolv-shadow);
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 30px;
	align-items: center;
	margin-bottom: 40px;
}

.revolv-agent-photo {
	width: 200px;
	height: 200px;
	border-radius: 8px;
	object-fit: cover;
	display: block;
}

.revolv-agent-info h1 {
	margin: 0 0 10px 0;
	font-size: 28px;
	color: var(--revolv-primary);
}

.revolv-agent-bio {
	margin: 10px 0;
	color: var(--revolv-secondary);
	line-height: 1.8;
}

.revolv-agent-contact {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 15px;
}

.revolv-agent-phone,
.revolv-agent-email {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--revolv-accent);
	text-decoration: none;
	font-weight: 500;
}

.revolv-agent-phone:hover,
.revolv-agent-email:hover {
	text-decoration: underline;
}

.revolv-agent-listings h2 {
	margin: 0 0 20px 0;
	font-size: 24px;
	color: var(--revolv-primary);
}

/* MLS Attribution */
.revolv-mls-attribution {
	margin-top: 30px;
	padding: 15px;
	background-color: var(--revolv-light);
	border: 1px solid var(--revolv-border);
	border-radius: 4px;
	font-size: 12px;
	color: var(--revolv-secondary);
	text-align: center;
}

.revolv-mls-attribution p {
	margin: 0;
}

/* Error Messages */
.revolv-error {
	padding: 15px;
	background-color: #fee;
	border: 1px solid var(--revolv-danger);
	border-radius: 4px;
	color: var(--revolv-danger);
}

/* Loading State */
.revolv-loading {
	opacity: 0.6;
	pointer-events: none;
}

/* Responsive Design */
@media (max-width: 768px) {
	.revolv-search-results {
		grid-template-columns: 1fr;
	}

	.revolv-map-container {
		display: none;
	}

	.revolv-properties-grid {
		grid-template-columns: 1fr;
	}

	.revolv-detail-content {
		grid-template-columns: 1fr;
	}

	.revolv-detail-header {
		padding: 20px;
	}

	.revolv-detail-header h1 {
		font-size: 20px;
	}

	.revolv-photo-gallery {
		margin-bottom: 20px;
	}

	.revolv-main-photo {
		height: 300px;
	}

	.revolv-agent-header {
		grid-template-columns: 1fr;
		text-align: center;
	}

	.revolv-agent-photo {
		width: 150px;
		height: 150px;
		margin: 0 auto;
	}

	.revolv-agent-contact {
		flex-direction: row;
		justify-content: center;
		flex-wrap: wrap;
	}

	.filter-row {
		grid-template-columns: 1fr;
	}

	.revolv-vow-registration {
		grid-template-columns: 1fr;
		padding: 20px;
		margin: 20px;
	}

	.revolv-photo-thumbnails {
		gap: 5px;
	}

	.revolv-photo-thumb {
		width: 60px;
		height: 60px;
	}
}

@media (max-width: 480px) {
	.revolv-detail-header {
		padding: 15px;
	}

	.revolv-detail-header h1 {
		font-size: 18px;
	}

	.revolv-detail-header h1 {
		margin-bottom: 5px;
	}

	.revolv-search-filters {
		padding: 15px;
	}

	.revolv-properties-grid {
		grid-template-columns: 1fr;
	}

	.revolv-details-grid {
		grid-template-columns: 1fr;
	}

	.revolv-btn {
		width: 100%;
		text-align: center;
	}
}
