/**
 * Unagui Prop Public CSS
 * Structural styling for Hero, Destacados, and Home Page modules.
 * Aesthetics (Colors, typography, shadows) are managed in the theme.
 */

/* Core Variables */
:root {
	--unagui-primary: #2271b1;
	--unagui-primary-hover: #135e96;
	--unagui-bg-color: #f9fafb;
	--unagui-text-color: #1f2937;
	--unagui-text-muted: #6b7280;
	--unagui-font-family: 'Inter', system-ui, -apple-system, sans-serif;
}

body {
	font-family: var(--unagui-font-family);
}

.unagui-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

/* ==========================================================================
   Hero Module
   ========================================================================== */
.unagui-hero-module {
	position: relative;
	width: 100%;
	height: 80vh;
	min-height: 500px;
	overflow: hidden;
}

.unagui-hero-slider {
	position: relative;
	width: 100%;
	height: 100%;
}

.unagui-hero-slides-container {
	width: 100%;
	height: 100%;
}

.unagui-hero-slide {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	visibility: hidden;
	background-size: cover;
	background-position: center;
	transition: opacity 1s cubic-bezier(0.4, 0, 0.2, 1), visibility 1s;
}

.unagui-hero-slide.active {
	opacity: 1;
	visibility: visible;
}

.unagui-hero-slide-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 0 20px;
}

.unagui-hero-slide-content {
	max-width: 800px;
	transform: translateY(20px);
	opacity: 0;
	transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
}

.unagui-hero-slide.active .unagui-hero-slide-content {
	transform: translateY(0);
	opacity: 1;
}

.unagui-hero-slide-title {
	line-height: 1.1;
	margin-bottom: 0px;
}

.unagui-hero-slide-subtitle {
	margin-bottom: 20px;
}

.unagui-hero-slide-btn {
	display: inline-block;
	padding: 15px 35px;
	border-radius: 8px;
	text-decoration: none;
	transition: all 0.3s ease;
}

.unagui-hero-slide-btn:hover {
	transform: translateY(-2px);
}

/* Slider Nav */
.unagui-hero-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 50px;
	height: 50px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all 0.3s ease;
	z-index: 10;
}

.unagui-hero-nav.prev {
	left: 30px;
}

.unagui-hero-nav.next {
	right: 30px;
}

/* ==========================================================================
   Search Module (Homepage)
   ========================================================================== */
.unagui-search-module {
	padding: 50px 0;
	position: relative;
	z-index: 20;
}

.unagui-search-module .unagui-container {
	border-radius: 16px;
	padding: 30px;
}

/* ==========================================================================
   Destacados Module
   ========================================================================== */
.unagui-destacados-module {
	padding: 80px 0;
}

.unagui-section-header {
	text-align: center;
	margin-bottom: 50px;
}

.unagui-section-title {
	margin-bottom: 10px;
}

.unagui-no-destacados {
	text-align: center;
	padding: 40px;
	border-radius: 12px;
}

/* Video Background */
.unagui-hero-video-wrapper {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	z-index: 0;
}

.unagui-video-bg {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100vw;
	height: 100vh;
	transform: translate(-50%, -50%);
	pointer-events: none;
	object-fit: cover;
}

/* 2 Columns Layout (Split) */
.unagui-hero-slide.layout-split {
	display: flex;
	background-size: 50% 100%;
	background-position: left center;
	background-repeat: no-repeat;
}

.unagui-hero-slide.layout-split .unagui-hero-video-wrapper {
	width: 50%;
}

.unagui-hero-slide.layout-split .unagui-hero-slide-overlay {
	position: relative;
	width: 50%;
	margin-left: auto;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	padding: 40px;
	text-align: left;
}

.unagui-hero-slide.layout-split .unagui-hero-slide-content {
	max-width: 100%;
	transform: translateX(20px);
}

.unagui-hero-slide.layout-split.active .unagui-hero-slide-content {
	transform: translateX(0);
}

/* ==========================================================================
   Responsive Adjustments
   ========================================================================== */
@media (max-width: 768px) {
	.unagui-hero-nav {
		display: none;
	}

	.unagui-search-module {
		padding: 30px 0;
	}

	.unagui-search-module .unagui-container {
		padding: 20px;
	}

	/* Layout Split on Mobile: Text on top, Image on bottom */
	.unagui-hero-slide.layout-split {
		flex-direction: column-reverse;
		background-size: 100% 50%;
		background-position: bottom center;
	}

	.unagui-hero-slide.layout-split .unagui-hero-video-wrapper {
		width: 100%;
		height: 50%;
		top: auto;
		bottom: 0;
	}

	.unagui-hero-slide.layout-split .unagui-hero-slide-overlay {
		width: 100%;
		height: 50%;
		margin-left: 0;
		padding: 30px 20px;
		text-align: center;
		justify-content: center;
	}

	.unagui-hero-slide.layout-split .unagui-hero-slide-content {
		transform: translateY(20px);
	}

	.unagui-hero-slide.layout-split.active .unagui-hero-slide-content {
		transform: translateY(0);
	}
}

/* Hero Slide Tags */
.unagui-hero-slide-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	margin-top: 10px;
	margin-bottom: 20px;
}

.unagui-hero-slide-tag {
	padding: 4px 12px;
	border-radius: 20px;
}

.layout-split .unagui-hero-slide-tags {
	justify-content: flex-start;
}

/* Property Slide Overrides */
.unagui-hero-slide-tags.unagui-op-tags {
	margin-bottom: 10px;
}

.unagui-hero-slide-location {
	display: flex;
	align-items: center;
	margin: 0px;
}

.unagui-hero-slide-price {
	margin: 0px 0px 10px;
}

.unagui-prop-slide .unagui-hero-slide-btn {
	padding: 12px 25px;
}

/* Split Layout overrides for Solid Color */
.unagui-hero-slide.layout-split.bg-type-color .unagui-hero-slide-overlay {
	background: transparent !important;
}

/* Slide Overlay Gradients Customization */
.unagui-hero-slide-overlay.overlay-none {
	background: transparent !important;
}

.unagui-hero-slide-overlay.overlay-dark {
	background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0.1) 100%) !important;
}

.unagui-hero-slide-overlay.overlay-dark h1,
.unagui-hero-slide-overlay.overlay-dark p,
.unagui-hero-slide-overlay.overlay-dark span {
	color: #fff !important;
}

.unagui-hero-slide-overlay.overlay-light {
	background: linear-gradient(to top, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.7) 50%, rgba(255, 255, 255, 0.4) 100%) !important;
}

.unagui-hero-slide-overlay.overlay-light h1,
.unagui-hero-slide-overlay.overlay-light p,
.unagui-hero-slide-overlay.overlay-light span {
	color: #111 !important;
}

/* Buscador Tabs Styling */
.unagui-prop-tabs-wrapper {
	width: 100%;
	margin-bottom: 20px;
}

.unagui-prop-tabs {
	display: flex;
	gap: 12px;
	border-bottom: 2px solid #e2e8f0;
	padding-bottom: 0px;
	width: 100%;
	margin: 0;
}

.unagui-prop-tab-btn {
	background: transparent;
	border: none;
	border-bottom: 3px solid transparent;
	padding: 10px 24px;
	font-size: 15px;
	font-weight: 600;
	color: #64748b;
	cursor: pointer;
	transition: all 0.2s ease;
	outline: none;
	margin-bottom: -2px;
}

.unagui-prop-tab-btn:hover {
	color: var(--unagui-primary, #6366f1);
}

.unagui-prop-tab-btn.active {
	color: var(--unagui-primary, #6366f1);
	border-bottom-color: var(--unagui-primary, #6366f1);
}

/* Grilla Inmuebles Responsive Column Overrides */
@media (max-width: 768px) {
	.unagui-prop-grid {
		grid-template-columns: 1fr !important;
	}
}

@media (min-width: 769px) and (max-width: 1024px) {
	.unagui-prop-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

/* Button hover color reset */
.unagui-btn,
.unagui-btn:hover,
.unagui-btn:focus,
.unagui-btn:active {
	color: #ffffff !important;
	text-decoration: none !important;
}

/* Grilla Inmuebles Layout Classes (Desktop) */
.unagui-prop-grid {
	display: grid;
	gap: 20px;
	font-family: 'Inter', sans-serif;
}

.unagui-prop-grid.cols-2 {
	grid-template-columns: repeat(2, 1fr);
}

.unagui-prop-grid.cols-3 {
	grid-template-columns: repeat(3, 1fr);
}

.unagui-prop-grid.cols-4 {
	grid-template-columns: repeat(4, 1fr);
}

/* Property Card Styling */
.unagui-prop-card {
	border: 1px solid #eee;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
	display: flex;
	flex-direction: column;
}

.unagui-prop-img {
	aspect-ratio: 4 / 3;
	background: #ddd;
	overflow: hidden;
}

.unagui-prop-img a {
	display: block;
	height: 100%;
}

.unagui-prop-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.unagui-prop-img-placeholder {
	text-align: center;
	padding-top: 80px;
	color: #94a3b8;
}

.unagui-prop-info {
	padding: 15px;
	display: flex;
	flex-direction: column;
	flex: 1;
	justify-content: space-between;
}

.unagui-prop-info h3 {
	margin: 0 0 0px 0;
	font-size: 15px;
	font-weight: 500;
}

.unagui-prop-info h3 a {
	text-decoration: none;
	color: #333;
}

.unagui-prop-price {
	font-weight: 600;
	font-size: 13px;
	color: #888888;
	margin: 0 0 0px 0;
}

.unagui-prop-features-list {
	display: flex;
	gap: 15px;
	margin-bottom: 5px;
	flex-wrap: wrap;
	color: #64748b;
	font-size: 12px;
	align-items: center;
	justify-content: flex-start;
}

.unagui-prop-feature-item {
	display: flex;
	align-items: center;
	gap: 5px;
}

.unagui-prop-feature-item img {
	width: 14px;
	height: 14px;
	filter: grayscale(1) opacity(0.75);
}

.unagui-prop-card .unagui-btn {
	text-align: center;
	display: block;
	margin-top: 10px;
	text-decoration: none;
	background-color: var(--unagui-primary, #6366f1) !important;
	color: #ffffff !important;
	font-size: 12px !important;
	padding: 10px 15px;
	border-radius: 6px;
	font-weight: 600;
	transition: background-color 0.2s ease;
}

.unagui-prop-card .unagui-btn:hover {
	background-color: var(--unagui-primary-hover, #4f46e5) !important;
}

/* Badges & Location styling */
.unagui-prop-img {
	position: relative;
}

.unagui-card-badges {
	position: absolute;
	top: 10px;
	left: 10px;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	z-index: 2;
}

.unagui-card-badge {
	background: rgba(0, 0, 0, 0.7);
	color: #fff;
	padding: 4px 10px;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	border-radius: 4px;
	letter-spacing: 0.5px;
}

.unagui-card-badge.type-badge {
	background: var(--unagui-primary, #6366f1);
}

.unagui-card-badge.op-badge {
	background: var(--unagui-secondary, #0ea5e9);
}

.unagui-card-location {
	font-size: 12px;
	color: var(--unagui-text-muted, #6b7280);
	margin-bottom: 8px;
	display: flex;
	align-items: center;
	gap: 4px;
}

/* List Layout (Desktop & Tablet) */
.unagui-prop-grid.layout-list {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.unagui-prop-grid.layout-list .unagui-prop-card {
	flex-direction: row;
	align-items: stretch;
	width: 100%;
}

.unagui-prop-grid.layout-list .unagui-prop-card .unagui-prop-img {
	width: 30%;
	min-width: 250px;
	max-width: 350px;
	height: auto;
	flex-shrink: 0;
}

.unagui-prop-grid.layout-list .unagui-prop-card .unagui-prop-info {
	width: 70%;
	flex: 1;
	padding: 20px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

/* Mobile responsive for list layout */
@media (max-width: 768px) {
	.unagui-prop-grid.layout-list .unagui-prop-card {
		flex-direction: column;
	}
	.unagui-prop-grid.layout-list .unagui-prop-card .unagui-prop-img {
		width: 100%;
		max-width: none;
		min-width: 0;
		height: auto;
	}
	.unagui-prop-grid.layout-list .unagui-prop-card .unagui-prop-info {
		width: 100%;
		padding: 15px;
	}
}

/* ==========================================================================
   Unified Card Layout Styles (prop-similar-card)
   ========================================================================== */
.prop-similar-card {
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.05);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.prop-similar-card:hover {
	transform: none !important;
	box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
}

.prop-similar-card.has-hover-effect:hover {
	transform: translateY(-5px) !important;
	box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
}

.prop-sim-header {
	position: relative;
	aspect-ratio: 4 / 3 !important;
	height: auto !important;
	background: #000;
	overflow: hidden;
}

/* Gradient overlay at the bottom of the image header for price readability */
.prop-sim-header::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 50%;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);
	pointer-events: none;
	z-index: 1;
}

.prop-sim-img-link {
	display: block;
	height: 100%;
}

.prop-sim-img-link img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: opacity 0.3s;
}

.prop-similar-card:hover .prop-sim-img-link img {
	opacity: 0.85;
}

.prop-sim-no-img {
	background: #cbd5e1;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: #fff;
	gap: 8px;
	font-size: 13px;
	font-weight: 500;
}

.unagui-no-img-icon {
	width: 30px !important;
	height: 30px !important;
	filter: brightness(0) invert(1);
}

.prop-sim-img-link img.unagui-no-img-icon {
	width: 30px !important;
	height: 30px !important;
	object-fit: contain !important;
	display: block;
	margin: 0 auto;
}

.prop-sim-badges-top {
	position: absolute;
	top: 15px;
	left: 15px;
	right: 15px;
	display: flex;
	justify-content: flex-start;
	gap: 6px;
	z-index: 2;
}

.prop-sim-badge {
	padding: 4px 8px;
	font-size: 10px;
	font-weight: 700;
	color: #fff;
	border-radius: 4px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.badge-sale { background: var(--unagui-primary, #2271b1); }
.badge-rent { background: #111; }

.prop-sim-price-overlay {
	position: absolute;
	bottom: 15px;
	left: 15px;
	z-index: 2;
}

.prop-sim-price {
	font-size: 14px !important;
	font-weight: 800;
	color: #fff;
	text-shadow: 0 1px 3px rgba(0,0,0,0.5);
}

.prop-sim-actions-overlay {
	display: none !important;
}

/* Card Gallery Carousel */
.prop-card-carousel {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.prop-carousel-slides {
	position: relative;
	width: 100%;
	height: 100%;
}

.prop-carousel-slide {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.4s ease, visibility 0.4s ease;
	z-index: 0;
}

.prop-carousel-slide.active {
	opacity: 1;
	visibility: visible;
	z-index: 1;
}

.prop-carousel-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover !important;
	display: block;
}

/* Nav arrows */
.prop-carousel-prev,
.prop-carousel-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(0, 0, 0, 0.5) !important;
	color: #fff !important;
	border: none !important;
	width: 30px !important;
	height: 30px !important;
	border-radius: 50% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 20px !important;
	line-height: 1 !important;
	cursor: pointer !important;
	transition: background 0.2s, opacity 0.2s, visibility 0.2s !important;
	z-index: 3 !important;
	opacity: 0 !important;
	visibility: hidden !important;
	padding: 0 !important;
	outline: none !important;
	box-shadow: none !important;
}

.prop-carousel-prev {
	left: 10px !important;
}

.prop-carousel-next {
	right: 10px !important;
}

.prop-similar-card:hover .prop-carousel-prev,
.prop-similar-card:hover .prop-carousel-next {
	opacity: 1 !important;
	visibility: visible !important;
}

.prop-carousel-prev:hover,
.prop-carousel-next:hover {
	background: var(--unagui-primary, #2271b1) !important;
}

/* Indicators */
.prop-carousel-indicators {
	position: absolute;
	bottom: 10px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 5px;
	z-index: 3;
}

.prop-carousel-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.4);
	transition: all 0.3s ease;
	cursor: pointer;
}

.prop-carousel-dot.active {
	background: #fff;
	width: 12px;
	border-radius: 3px;
}

/* Body */
.prop-sim-body {
	padding: 20px;
	flex-grow: 1;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.prop-sim-title {
	font-size: 15px !important;
	font-weight: 700;
	margin: 0 0 8px 0;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
}

.prop-sim-title a {
	color: var(--unagui-text-color, #1f2937);
	text-decoration: none;
	transition: color 0.2s;
}

.prop-sim-title a:hover {
	color: var(--unagui-primary, #2271b1);
}

.prop-sim-address {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--unagui-text-muted, #6b7280);
	margin-bottom: 15px;
}

.prop-sim-address svg {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
	color: var(--unagui-text-muted, #6b7280);
}

.prop-sim-features {
	display: flex;
	gap: 15px;
	margin-bottom: 15px;
	padding-bottom: 12px;
	border-bottom: 1px solid #f1f5f9;
}

.prop-sim-feat {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 11px;
	color: var(--unagui-text-color, #1f2937);
}

.unagui-card-feat-icon {
	width: 14px;
	height: 14px;
	filter: grayscale(1) opacity(0.7);
}

.prop-sim-feat .dashicons {
	font-size: 16px;
	color: var(--unagui-text-muted, #6b7280);
}

.prop-sim-meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: auto;
}

.prop-sim-type {
	font-size: 10px !important;
	font-weight: 700;
	color: #6b7280 !important;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.prop-sim-btn {
	background: var(--unagui-primary, #2271b1);
	color: #fff !important;
	padding: 6px 14px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s;
}

.prop-sim-btn:hover {
	background: var(--unagui-primary-hover, #135e96);
	color: #fff !important;
}

/* Footer */
.prop-sim-footer {
	padding: 12px 20px;
	background: #f8fafc;
	border-top: 1px solid #f1f5f9;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.prop-sim-agent {
	display: flex;
	align-items: center;
	gap: 8px;
}

.prop-sim-agent img {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	object-fit: cover;
}

.prop-sim-agent span {
	font-size: 10px !important;
	line-height: 1.2 !important;
	color: #475569;
}

.prop-sim-date {
	display: flex;
	align-items: center;
	gap: 4px;
	font-size: 10px !important;
	line-height: 1.2 !important;
	color: #94a3b8;
}

.prop-sim-date span {
	font-size: 10px !important;
	line-height: 1.2 !important;
}

.prop-sim-date .dashicons {
	font-size: 12px;
	width: 12px;
	height: 12px;
}

/* List layout adaptivity for the unified card */
.layout-list-card.prop-similar-card {
	flex-direction: row;
	align-items: stretch;
	width: 100%;
}

.layout-list-card.prop-similar-card .prop-sim-header {
	width: 30%;
	min-width: 250px;
	max-width: 350px;
	height: auto;
	aspect-ratio: auto;
	flex-shrink: 0;
}

.layout-list-card.prop-similar-card .prop-sim-body {
	width: 70%;
	flex: 1;
	padding: 20px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

@media (max-width: 768px) {
	.layout-list-card.prop-similar-card {
		flex-direction: column;
	}
	.layout-list-card.prop-similar-card .prop-sim-header {
		width: 100%;
		max-width: none;
		min-width: 0;
		aspect-ratio: 4 / 3;
	}
	.layout-list-card.prop-similar-card .prop-sim-body {
		width: 100%;
		padding: 15px;
	}
}

/* Disable hover elevation for detail panels in single property page */
.single-unagui_property .prop-card:hover {
    transform: none !important;
}