/**
 * Propiedades CSS — Estilos frontend para archive + single de inmuebles.
 * Diseño "Propuesta C — Minimalista Lujo"
 *
 * Namespace: prefijos .tarjeta-propiedad__, .seccion-, .galeria-, .filtros-, .btn-
 * NO sobreescribe CSS de XStore.
 *
 * @package SoriaInmovillaSync
 */

/* ===================================================================
   UTILIDADES — Clases de control
   =================================================================== */
.sis-oculto {
	display: none !important;
}

/* ===================================================================
   VARIABLES — Identidad visual Soria Casas
   =================================================================== */
:root {
	--sc-azul:          #4a8fcc;
	--sc-azul-hover:    #3a7fb8;
	--sc-beige:         #fbf5e9;
	--sc-blanco:        #ffffff;
	--sc-gris-texto:    #54585e;
	--sc-negro:         #333333;
	--sc-gris-borde:    #e5e5e5;
	--sc-gris-claro:    #f7f8fa;
	--sc-sombra:        0 2px 8px rgba(0,0,0,0.08);
	--sc-sombra-hover:  0 4px 16px rgba(0,0,0,0.12);
	--sc-radio:         8px;
	--sc-radio-sm:      6px;
	--sc-fuente:        -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	--sc-transicion:    all 0.3s ease;
	--sc-contenedor:    1200px;
}

/* ===================================================================
   CONTENEDOR BASE — Aislado del tema XStore
   =================================================================== */
.contenedor {
	max-width: var(--sc-contenedor);
	margin: 0 auto;
	padding: 0 20px;
	font-family: var(--sc-fuente);
	color: var(--sc-negro);
	box-sizing: border-box;
	line-height: 1.6;
	font-size: 15px;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.contenedor *, .contenedor *::before, .contenedor *::after {
	box-sizing: border-box;
}

/* Reset XStore overrides en nuestro contenedor */
.contenedor p,
.contenedor h1, .contenedor h2, .contenedor h3, .contenedor h4,
.contenedor span, .contenedor a, .contenedor div {
	font-family: var(--sc-fuente);
	letter-spacing: normal;
	text-transform: none;
}
.contenedor a {
	text-decoration: none;
}
.contenedor img {
	max-width: 100%;
	height: auto;
}

/* ===================================================================
   BADGES — Sobre imagen de tarjeta y single
   =================================================================== */
.tarjeta-propiedad__badge,
.galeria__badge {
	position: absolute;
	top: 16px;
	left: 16px;
	padding: 7px 16px;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	border-radius: 6px;
	color: var(--sc-blanco);
	z-index: 2;
	letter-spacing: 0.6px;
	line-height: 1.3;
}

.badge--reservado  { background: #f0ad4e; }
.badge--nuevo      { background: #4a8fcc; }
.badge--vacacional { background: #5cb85c; }
.badge--alquiler   { background: #5bc0de; }
.badge--vendida    { background: #c47030; }
.badge--alquilada  { background: #2e8b57; }

/* ── Tarjeta reservada — misma apariencia que disponible, solo badge ── */
.tarjeta-propiedad--reservada {
	position: relative;
}

/* ── Tarjeta vendida — desaturación sutil + borde terracota ────── */
.tarjeta-propiedad--vendida {
	opacity: 0.85;
	border: 2px solid #c47030;
	position: relative;
}
.tarjeta-propiedad--vendida .tarjeta-propiedad__imagen img {
	filter: grayscale(25%) saturate(0.8);
}
.tarjeta-propiedad--vendida:hover {
	opacity: 0.95;
}

/* ── Tarjeta alquilada — desaturación sutil + borde verde ──────── */
.tarjeta-propiedad--alquilada {
	opacity: 0.85;
	border: 2px solid #2e8b57;
	position: relative;
}
.tarjeta-propiedad--alquilada .tarjeta-propiedad__imagen img {
	filter: grayscale(25%) saturate(0.8);
}
.tarjeta-propiedad--alquilada:hover {
	opacity: 0.95;
}

/* Iconos de media (tour virtual / vídeo) sobre la imagen */
.tarjeta-propiedad__media-icons {
	position: absolute;
	bottom: 12px;
	left: 12px;
	display: flex;
	gap: 6px;
	z-index: 2;
}
.tarjeta-propiedad__media-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	background: rgba(0, 0, 0, 0.65);
	border-radius: 50%;
	color: #fff;
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	transition: background 0.2s;
}
.tarjeta-propiedad__media-icon:hover {
	background: rgba(74, 143, 204, 0.85);
}

/* ===================================================================
   BOTONES
   =================================================================== */
.btn-primario {
	display: inline-block;
	background: var(--sc-azul);
	color: var(--sc-blanco);
	padding: 14px 28px;
	border-radius: var(--sc-radio-sm);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: var(--sc-transicion);
	text-align: center;
	border: none;
	cursor: pointer;
	font-family: var(--sc-fuente);
	line-height: 1.4;
}
.btn-primario:hover {
	background: var(--sc-azul-hover);
	color: var(--sc-blanco);
}

.btn-secundario {
	display: inline-block;
	background: transparent;
	color: var(--sc-azul);
	padding: 12px 26px;
	border: 2px solid var(--sc-azul);
	border-radius: var(--sc-radio-sm);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: var(--sc-transicion);
	text-align: center;
	cursor: pointer;
	font-family: var(--sc-fuente);
	line-height: 1.4;
}
.btn-secundario:hover {
	background: var(--sc-azul);
	color: var(--sc-blanco);
}

/* ===================================================================
   AISLAMIENTO del tema — Resetear herencia de XStore en tarjetas
   =================================================================== */
.tarjeta-propiedad,
.tarjeta-propiedad *,
.archivo-hero,
.archivo-hero *,
.filtros-barra,
.filtros-barra *,
.listado-propiedades,
.listado-propiedades * {
	box-sizing: border-box;
	text-transform: none;
	letter-spacing: normal;
	word-spacing: normal;
}

.tarjeta-propiedad p,
.tarjeta-propiedad h2 {
	margin: 0;
	padding: 0;
}

/* ===================================================================
   ======  A R C H I V E  ======
   =================================================================== */

/* ── Hero ─────────────────────────────────────────────────────────── */
.archivo-hero {
	background: var(--sc-beige);
	padding: 60px 0;
	text-align: center;
	width: 100%;
}

.archivo-hero__titulo {
	font-size: 36px;
	font-weight: 700;
	color: var(--sc-negro);
	margin: 0 0 12px;
	line-height: 1.2;
	font-family: var(--sc-fuente);
	padding: 0;
}

.archivo-hero__subtitulo {
	font-size: 16px;
	color: var(--sc-gris-texto);
	margin: 0;
	line-height: 1.6;
	font-family: var(--sc-fuente);
	padding: 0;
}

/* ── Filtros ──────────────────────────────────────────────────────── */
.filtros-barra {
	padding: 30px 0 10px;
}

.filtros-grupo {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
	margin-bottom: 16px;
}

.filtros-grupo__label {
	font-size: 13px;
	font-weight: 600;
	color: var(--sc-gris-texto);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-right: 8px;
	align-self: center;
	display: none; /* Oculto: los botones son autoexplicativos */
}

.filtro-btn {
	display: inline-block;
	padding: 8px 20px;
	border: 1px solid var(--sc-gris-borde);
	border-radius: 50px;
	background: var(--sc-blanco);
	color: var(--sc-gris-texto);
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: var(--sc-transicion);
	font-family: var(--sc-fuente);
	line-height: 1.4;
	white-space: nowrap;
}
.filtro-btn:hover {
	border-color: var(--sc-azul);
	color: var(--sc-azul);
}
.filtro-btn.activo {
	background: var(--sc-azul);
	color: var(--sc-blanco);
	border-color: var(--sc-azul);
}

/* ── Listado de propiedades ───────────────────────────────────────── */
.listado-propiedades {
	padding: 30px 0 60px;
}

.listado-propiedades__contador {
	font-size: 14px;
	color: var(--sc-gris-texto);
	margin-bottom: 24px;
}

.listado-propiedades__no-resultados {
	text-align: center;
	padding: 60px 20px;
	color: var(--sc-gris-texto);
	font-size: 16px;
	display: none;
}
.listado-propiedades__no-resultados.visible {
	display: block;
}

/* ── Paginación ───────────────────────────────────────────────────── */
.paginacion {
	display: flex;
	justify-content: center;
	gap: 6px;
	flex-wrap: wrap;
	margin-top: 40px;
}

.paginacion .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 14px;
	border-radius: 50px;
	font-size: 15px;
	font-weight: 500;
	color: var(--sc-negro);
	background: var(--sc-blanco);
	border: 1px solid var(--sc-gris-borde);
	text-decoration: none;
	transition: var(--sc-transicion);
}
.paginacion .page-numbers:hover {
	border-color: var(--sc-azul);
	color: var(--sc-azul);
}
.paginacion .page-numbers.current {
	background: var(--sc-azul);
	color: var(--sc-blanco);
	border-color: var(--sc-azul);
}

/* ===================================================================
   WRAPPER EXTERIOR — Sombra y hover en el wrapper, no en la tarjeta
   =================================================================== */
.tarjeta-wrapper {
	background: #ffffff;
	border-radius: 12px;
	padding: 16px;
	margin-bottom: 32px;
	box-shadow: 0 4px 20px rgba(0,0,0,0.10);
	transition: all 0.3s ease;
}
.tarjeta-wrapper:hover {
	box-shadow: 0 8px 32px rgba(0,0,0,0.15);
	transform: translateY(-3px);
}

/* ===================================================================
   TARJETA PROPIEDAD — Horizontal 55/45 desktop, vertical móvil
   Imagen 3:2 SIEMPRE · NUNCA object-fit:cover
   =================================================================== */
.tarjeta-propiedad {
	display: flex;
	background: #ffffff;
	border: 1px solid #e5e5e5;
	border-radius: 8px;
	overflow: hidden;
}

/* ── Imagen (55% desktop) ────────────────────────────────────────── */
.tarjeta-propiedad__imagen {
	flex: 0 0 55%;
	max-width: 55%;
	position: relative;
	display: block;
	overflow: hidden;
	text-decoration: none;
	background: var(--sc-gris-claro);
}
.tarjeta-propiedad__imagen img {
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: contain;
	background: var(--sc-gris-claro);
	display: block;
	transition: transform 0.4s ease;
}
.tarjeta-propiedad:hover .tarjeta-propiedad__imagen img {
	transform: scale(1.03);
}
.tarjeta-propiedad__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 3 / 2;
	background: var(--sc-gris-claro);
}

/* ── Contenido (45% desktop) ─────────────────────────────────────── */
.tarjeta-propiedad__contenido {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 24px 28px;
	min-width: 0;
	gap: 6px;
}

/* Badge line (tipo + operación + estado) */
.tarjeta-propiedad__badge-line {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
	margin-bottom: 2px;
}
.tarjeta-propiedad__tipo-badge {
	display: inline-block;
	padding: 6px 14px;
	background: var(--sc-azul);
	color: var(--sc-blanco);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	border-radius: 6px;
	line-height: 1.3;
}

/* Badge operación (Venta, Alquiler, Vacacional) */
.tarjeta-propiedad__op-badge {
	display: inline-block;
	padding: 6px 14px;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	border-radius: 6px;
	line-height: 1.3;
	color: var(--sc-blanco);
	background: #5cb85c;
}
.tarjeta-propiedad__op-badge--venta     { background: #5cb85c; color: #fff; }
.tarjeta-propiedad__op-badge--alquiler  { background: var(--sc-azul); color: #fff; }
.tarjeta-propiedad__op-badge--vacacional { background: #e8975a; color: #fff; }
.tarjeta-propiedad__op-badge--traspaso  { background: #9b59b6; color: #fff; }

/* Badge estado (Reservado, Vendido, Alquilado) */
.tarjeta-propiedad__estado-badge {
	display: inline-block;
	padding: 6px 14px;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	border-radius: 6px;
	line-height: 1.3;
}
.tarjeta-propiedad__estado-badge--reservado {
	background: #f0ad4e;
	color: var(--sc-blanco);
}
.tarjeta-propiedad__estado-badge--vendido {
	background: #c47030;
	color: var(--sc-blanco);
}
.tarjeta-propiedad__estado-badge--alquilado {
	background: #2e8b57;
	color: var(--sc-blanco);
}

/* Titulo */
.tarjeta-propiedad__titulo {
	font-size: 18px;
	color: var(--sc-negro);
	font-weight: 600;
	line-height: 1.4;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.tarjeta-propiedad__titulo a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s;
}
.tarjeta-propiedad__titulo a:hover {
	color: var(--sc-azul);
}

/* Excerpt */
.tarjeta-propiedad__excerpt {
	font-size: 13px;
	color: var(--sc-gris-texto);
	line-height: 1.5;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Divider */
.tarjeta-propiedad__divider {
	border: none;
	border-top: 1px solid var(--sc-gris-borde);
	margin: 6px 0;
}

/* Precio */
.tarjeta-propiedad__precio-bloque {
	display: flex;
	align-items: baseline;
	gap: 12px;
}
.tarjeta-propiedad__precio {
	font-size: 32px;
	color: var(--sc-azul);
	font-weight: 700;
	line-height: 1.2;
}
.tarjeta-propiedad__precio-anterior {
	font-size: 16px;
	color: #999;
	text-decoration: line-through;
	font-weight: 400;
}

/* Características (ubicación, m², hab, baños) con SVG */
.tarjeta-propiedad__features {
	display: flex;
	gap: 16px;
	align-items: center;
	flex-wrap: wrap;
}
.tarjeta-propiedad__feature {
	display: flex;
	align-items: center;
	gap: 4px;
	color: var(--sc-gris-texto);
	font-size: 13px;
	font-weight: 500;
	white-space: nowrap;
}
.tarjeta-propiedad__feature svg {
	color: var(--sc-azul);
	flex-shrink: 0;
}

/* Extras en línea (pills compactos) */
.tarjeta-propiedad__extras {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.tarjeta-propiedad__extra {
	display: inline-flex;
	align-items: center;
	background: #fbf5e9;
	border: 1px solid #e8dcc8;
	border-radius: 6px;
	padding: 5px 14px;
	font-size: 12px;
	color: #6b5e4f;
	font-weight: 500;
	white-space: nowrap;
}

/* Referencia */
.tarjeta-propiedad__ref {
	color: #aaa;
	font-size: 11px;
}

/* Acciones (2 botones) */
.tarjeta-propiedad__acciones {
	display: flex;
	gap: 12px;
	margin-top: 4px;
}
.tarjeta-propiedad__btn-visita,
.tarjeta-propiedad__btn-detalles {
	padding: 14px 28px;
	font-size: 15px;
	font-weight: 600;
}

/* ===================================================================
   TARJETA PROPIEDAD VERTICAL — Para relacionadas
   =================================================================== */
.tarjeta-vertical {
	background: var(--sc-blanco);
	border: 1px solid var(--sc-gris-borde);
	border-radius: var(--sc-radio);
	overflow: hidden;
	box-shadow: var(--sc-sombra);
	transition: var(--sc-transicion);
	display: flex;
	flex-direction: column;
}
.tarjeta-vertical:hover {
	box-shadow: var(--sc-sombra-hover);
	transform: translateY(-3px);
}

.tarjeta-vertical__imagen {
	position: relative;
	overflow: hidden;
	line-height: 0;
}
.tarjeta-vertical__imagen a {
	display: block;
}
.tarjeta-vertical__imagen img {
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	display: block;
}

.tarjeta-vertical__cuerpo {
	padding: 20px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.tarjeta-vertical__precio {
	font-size: 22px;
	font-weight: 700;
	color: var(--sc-azul);
	margin: 0 0 6px;
}

.tarjeta-vertical__titulo {
	font-size: 16px;
	font-weight: 600;
	color: var(--sc-negro);
	margin: 0 0 4px;
	line-height: 1.3;
}
.tarjeta-vertical__titulo a {
	color: inherit;
	text-decoration: none;
}
.tarjeta-vertical__titulo a:hover {
	color: var(--sc-azul);
}

.tarjeta-vertical__ubicacion {
	font-size: 13px;
	color: var(--sc-gris-texto);
	margin: 0 0 12px;
}

.tarjeta-vertical__features {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	padding-top: 12px;
	border-top: 1px solid var(--sc-gris-borde);
	margin-top: auto;
	font-size: 13px;
	color: var(--sc-gris-texto);
}

.tarjeta-vertical__feat-value {
	font-weight: 600;
	color: var(--sc-negro);
}

/* ===================================================================
   ======  S I N G L E  ======
   =================================================================== */

/* ── Layout 65/35 con sidebar sticky ────────────────────────────── */
.single-layout {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 40px;
	padding-top: 10px;
	padding-bottom: 60px;
	align-items: start;
}
.single-layout__content {
	min-width: 0;
}
.single-layout__sidebar {
	position: sticky;
	top: 32px;
}

/* ── Secciones de contenido (dentro de la columna principal) ─────── */
.seccion-contenido {
	padding: 32px 0;
	border-bottom: 1px solid var(--sc-gris-borde);
}
.seccion-contenido:last-child {
	border-bottom: none;
}
.seccion-contenido--beige {
	background: var(--sc-beige);
	margin: 0 -20px;
	padding: 28px 20px;
	border-radius: var(--sc-radio);
	border-bottom: none;
}

/* ── Sección genérica (full-width wrappers) ──────────────────────── */
.seccion-propiedad {
	padding: 50px 0;
}
.seccion-propiedad--beige {
	background: var(--sc-beige);
}
.seccion-propiedad--oscuro {
	background: #1a1a1a;
}

.seccion__titulo {
	font-size: 24px;
	font-weight: 700;
	color: var(--sc-negro);
	margin: 0 0 28px;
	line-height: 1.3;
}

/* ── Sección 1: GALERÍA (Swiper) ──────────────────────────────────── */
.galeria-wrapper {
	position: relative;
	background: #1a1a1a;
	overflow: hidden;
}

/* Slider principal */
.galeria-main {
	max-height: 600px;
	overflow: hidden;
}
.galeria-main .swiper-slide {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #1a1a1a;
}
.galeria-main .swiper-slide img {
	width: 100%;
	height: auto;
	max-height: 600px;
	object-fit: contain; /* NUNCA cover */
	display: block;
	cursor: pointer;
}

/* Flechas del slider principal */
.galeria-main .swiper-button-next,
.galeria-main .swiper-button-prev {
	color: var(--sc-blanco);
	background: rgba(0,0,0,0.4);
	width: 48px;
	height: 48px;
	border-radius: 50%;
	transition: background 0.2s;
}
.galeria-main .swiper-button-next:hover,
.galeria-main .swiper-button-prev:hover {
	background: rgba(0,0,0,0.7);
}
.galeria-main .swiper-button-next::after,
.galeria-main .swiper-button-prev::after {
	font-size: 18px;
}

/* Contador "3 / 15" */
.galeria-main .swiper-pagination {
	position: absolute;
	bottom: 16px;
	left: auto;
	right: 16px;
	width: auto;
	background: rgba(0,0,0,0.6);
	color: var(--sc-blanco);
	padding: 4px 12px;
	border-radius: 20px;
	font-size: 14px;
	font-weight: 500;
}

/* Thumbnails */
.galeria-thumbs {
	padding: 8px 0;
	background: #1a1a1a;
}
.galeria-thumbs .swiper-slide {
	opacity: 0.5;
	cursor: pointer;
	border-radius: 4px;
	overflow: hidden;
	border: 2px solid transparent;
	transition: var(--sc-transicion);
}
.galeria-thumbs .swiper-slide-thumb-active {
	opacity: 1;
	border-color: var(--sc-azul);
}
.galeria-thumbs .swiper-slide:hover {
	opacity: 0.8;
}
.galeria-thumbs .swiper-slide img {
	width: 100%;
	height: 80px;
	object-fit: cover; /* OK para thumbnails */
	display: block;
}

/* Badge sobre galería */
.galeria__badge {
	top: 20px;
	left: 20px;
	z-index: 10;
}

/* ── Video slide (YouTube dentro del slider) ──────────────────────── */
.galeria__video-slide {
	position: relative;
	width: 100%;
	padding-bottom: 56.25%; /* 16:9 */
	height: 0;
	background: #000;
}
.galeria__video-slide iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Video thumb en thumbnails */
.galeria__video-thumb {
	width: 100%;
	height: 80px;
	background: #333;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ── Botón Tour 360° flotante ─────────────────────────────────────── */
.galeria__tour-btn {
	position: absolute;
	bottom: 20px;
	left: 20px;
	z-index: 10;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 20px;
	background: rgba(0,0,0,0.7);
	color: var(--sc-blanco);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	border-radius: var(--sc-radio-sm);
	transition: background 0.2s;
	backdrop-filter: blur(4px);
}
.galeria__tour-btn:hover {
	background: rgba(0,0,0,0.9);
	color: var(--sc-blanco);
}
.galeria__tour-btn svg {
	flex-shrink: 0;
}

/* ── Lightbox ─────────────────────────────────────────────────────── */
.lightbox-overlay {
	position: fixed;
	inset: 0;
	z-index: 99999;
	background: rgba(0,0,0,0.95);
	display: none;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.lightbox-overlay.activo {
	display: flex;
}
.lightbox-overlay img {
	max-width: 95vw;
	max-height: 95vh;
	object-fit: contain;
	cursor: default;
}
.lightbox__cerrar {
	position: absolute;
	top: 20px;
	right: 20px;
	width: 48px;
	height: 48px;
	border: none;
	border-radius: 50%;
	background: rgba(255,255,255,0.15);
	color: var(--sc-blanco);
	font-size: 28px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s;
	line-height: 1;
}
.lightbox__cerrar:hover {
	background: rgba(255,255,255,0.3);
}
.lightbox__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 52px;
	height: 52px;
	border: none;
	border-radius: 50%;
	background: rgba(255,255,255,0.15);
	color: var(--sc-blanco);
	font-size: 24px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s;
}
.lightbox__nav:hover {
	background: rgba(255,255,255,0.3);
}
.lightbox__nav--prev { left: 20px; }
.lightbox__nav--next { right: 20px; }
.lightbox__contador {
	position: absolute;
	bottom: 24px;
	left: 50%;
	transform: translateX(-50%);
	color: rgba(255,255,255,0.6);
	font-size: 15px;
}

/* ── Sección 2: CABECERA ──────────────────────────────────────────── */
.cabecera-propiedad {
	padding: 40px 0 30px;
}

.cabecera-propiedad__top {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 40px;
	flex-wrap: wrap;
}

.cabecera-propiedad__izq {
	flex: 1;
	min-width: 0;
}

.cabecera-propiedad__der {
	text-align: right;
	flex-shrink: 0;
}

.cabecera-propiedad__badges {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 12px;
}
.cabecera-propiedad__badges .badge-operacion {
	display: inline-block;
	padding: 4px 14px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	background: var(--sc-azul);
	color: var(--sc-blanco);
}

.cabecera-propiedad__tipo-label {
	color: var(--sc-azul);
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-bottom: 8px;
}

.cabecera-propiedad__titulo {
	font-size: 32px;
	font-weight: 700;
	color: var(--sc-negro);
	margin: 0 0 8px;
	line-height: 1.25;
}

.cabecera-propiedad__ubicacion {
	font-size: 16px;
	color: var(--sc-gris-texto);
	margin: 0 0 8px;
}

.cabecera-propiedad__ref {
	font-size: 13px;
	color: #999;
}

.cabecera-propiedad__precio {
	font-size: 36px;
	font-weight: 700;
	color: var(--sc-azul);
	line-height: 1.2;
	margin-bottom: 4px;
}
.cabecera-propiedad__precio-anterior {
	font-size: 18px;
	color: #999;
	text-decoration: line-through;
	font-weight: 400;
}
.cabecera-propiedad__precio-periodo {
	font-size: 16px;
	font-weight: 400;
	color: var(--sc-gris-texto);
}

/* Mini-cards de info */
.info-basica {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	margin-top: 28px;
	padding-top: 28px;
	border-top: 1px solid var(--sc-gris-borde);
}

.info-basica__card {
	flex: 1 1 140px;
	background: var(--sc-gris-claro);
	border: 1px solid var(--sc-gris-borde);
	border-radius: var(--sc-radio-sm);
	padding: 16px;
	text-align: center;
	min-width: 120px;
}

.info-basica__valor {
	font-size: 22px;
	font-weight: 700;
	color: var(--sc-negro);
	display: block;
	line-height: 1.2;
	margin-bottom: 4px;
}

.info-basica__label {
	font-size: 12px;
	color: var(--sc-gris-texto);
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* ── Sección 3: DESCRIPCIÓN + FORMULARIO (2 columnas) ─────────────── */
.seccion-descripcion-form {
	display: grid;
	grid-template-columns: 60% 1fr;
	gap: 40px;
	align-items: start;
}

.descripcion-propiedad {
	line-height: 1.8;
	color: var(--sc-gris-texto);
	font-size: 15px;
}
.descripcion-propiedad p {
	margin: 0 0 16px;
}

/* Formulario contacto — sidebar sticky */
.formulario-card {
	background: var(--sc-beige);
	border: 1px solid var(--sc-gris-borde);
	border-radius: var(--sc-radio);
	padding: 28px;
	position: sticky;
	top: 32px;
}

.formulario-card__titulo {
	font-size: 20px;
	font-weight: 700;
	color: var(--sc-negro);
	margin: 0 0 4px;
}
.formulario-card__subtitulo {
	font-size: 14px;
	color: var(--sc-gris-texto);
	margin: 0 0 20px;
}

/* CF7 dentro del card — reset básico */
.formulario-card .wpcf7 input[type="text"],
.formulario-card .wpcf7 input[type="email"],
.formulario-card .wpcf7 input[type="tel"],
.formulario-card .wpcf7 textarea {
	width: 100%;
	padding: 10px 14px;
	border: 1px solid var(--sc-gris-borde);
	border-radius: var(--sc-radio-sm);
	font-size: 14px;
	font-family: var(--sc-fuente);
	color: var(--sc-negro);
	background: var(--sc-blanco);
	transition: border-color 0.2s, box-shadow 0.2s;
	box-sizing: border-box;
	margin-bottom: 12px;
}
.formulario-card .wpcf7 input:focus,
.formulario-card .wpcf7 textarea:focus {
	outline: none;
	border-color: var(--sc-azul);
	box-shadow: 0 0 0 3px rgba(74,143,204,0.15);
}
.formulario-card .wpcf7 textarea {
	resize: vertical;
	min-height: 100px;
}
.formulario-card .wpcf7 input[type="submit"] {
	width: 100%;
	padding: 14px;
	background: var(--sc-azul);
	color: var(--sc-blanco);
	border: none;
	border-radius: var(--sc-radio-sm);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s;
	font-family: var(--sc-fuente);
}
.formulario-card .wpcf7 input[type="submit"]:hover {
	background: var(--sc-azul-hover);
}

/* ── CTA Buttons (WhatsApp + Teléfono) ─────────────────────────── */
.formulario-card__cta-buttons {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 16px;
}
.btn-cta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 14px 20px;
	border-radius: var(--sc-radio-sm);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition: var(--sc-transicion);
	font-family: var(--sc-fuente);
	cursor: pointer;
	border: none;
}
.btn-cta--whatsapp {
	background: #25d366;
	color: var(--sc-blanco);
}
.btn-cta--whatsapp:hover {
	background: #1fb855;
	color: var(--sc-blanco);
}
.btn-cta--telefono {
	background: var(--sc-gris-claro);
	color: var(--sc-negro);
	border: 1px solid var(--sc-gris-borde);
}
.btn-cta--telefono:hover {
	background: var(--sc-gris-borde);
	color: var(--sc-negro);
}
.btn-cta svg {
	flex-shrink: 0;
}

/* Separador "o envíanos un mensaje" */
.formulario-card__separador {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 16px;
	color: var(--sc-gris-texto);
	font-size: 13px;
}
.formulario-card__separador::before,
.formulario-card__separador::after {
	content: '';
	flex: 1;
	height: 1px;
	background: var(--sc-gris-borde);
}

/* Datos contacto agencia */
.formulario-card__contacto-agencia {
	margin-top: 20px;
	padding-top: 16px;
	border-top: 1px solid var(--sc-gris-borde);
	font-size: 14px;
	color: var(--sc-gris-texto);
	line-height: 1.8;
}
.formulario-card__contacto-agencia a {
	color: var(--sc-azul);
	text-decoration: none;
	font-weight: 600;
}
.formulario-card__contacto-agencia a:hover {
	text-decoration: underline;
}

/* ── Sección 4: CARACTERÍSTICAS (grid 3 columnas) ─────────────────── */
.caracteristicas-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}

.caracteristicas-col__titulo {
	font-size: 16px;
	font-weight: 700;
	color: var(--sc-negro);
	margin: 0 0 16px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--sc-azul);
}

.caracteristicas-lista {
	list-style: none;
	padding: 0;
	margin: 0;
}
.caracteristicas-lista li {
	display: flex;
	justify-content: space-between;
	padding: 10px 0;
	border-bottom: 1px solid var(--sc-gris-borde);
	font-size: 14px;
}
.caracteristicas-lista li:last-child {
	border-bottom: none;
}
.caracteristicas-lista__label {
	color: var(--sc-gris-texto);
}
.caracteristicas-lista__valor {
	font-weight: 600;
	color: var(--sc-negro);
	text-align: right;
}

/* ── Certificado energético (badge visual) ─────────────────────────── */
.cee-wrapper {
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
}

.cee-item {
	flex: 1;
	min-width: 200px;
}
.cee-item__label {
	font-size: 13px;
	color: var(--sc-gris-texto);
	margin-bottom: 8px;
	display: block;
}
.cee-item__badge {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}
.cee-item__letra {
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	font-weight: 800;
	border-radius: var(--sc-radio-sm);
	flex-shrink: 0;
}
.cee-item__valor {
	font-size: 14px;
	color: var(--sc-gris-texto);
}
.cee-pendiente {
	color: #999;
	font-style: italic;
	font-size: 14px;
}

/* ── Sección 5: MULTIMEDIA (video + tour) ──────────────────────────── */
.multimedia-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
}
.multimedia-grid--dos {
	grid-template-columns: 1fr 1fr;
}

.multimedia__titulo {
	font-size: 18px;
	font-weight: 600;
	color: var(--sc-negro);
	margin: 0 0 16px;
}

.video-container,
.tour-container {
	position: relative;
	padding-bottom: 56.25%; /* 16:9 */
	height: 0;
	overflow: hidden;
	border-radius: var(--sc-radio);
}
.video-container iframe,
.tour-container iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ── Sección 6: MAPA ──────────────────────────────────────────────── */
.mapa-wrapper {
	border-radius: var(--sc-radio);
	overflow: hidden;
}
.mapa-wrapper iframe {
	display: block;
	border: 0;
}

/* ── Sección 7: ALQUILER VACACIONAL (tabla temporadas) ─────────────── */
.temporadas-tabla {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}
.temporadas-tabla th {
	background: var(--sc-azul);
	color: var(--sc-blanco);
	padding: 12px 16px;
	text-align: left;
	font-weight: 600;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.3px;
}
.temporadas-tabla th:first-child {
	border-radius: var(--sc-radio-sm) 0 0 0;
}
.temporadas-tabla th:last-child {
	border-radius: 0 var(--sc-radio-sm) 0 0;
}
.temporadas-tabla td {
	padding: 12px 16px;
	border-bottom: 1px solid var(--sc-gris-borde);
	color: var(--sc-negro);
}
.temporadas-tabla tbody tr:hover {
	background: rgba(74,143,204,0.04);
}
.temporadas-tabla .precio-celda {
	font-weight: 600;
	color: var(--sc-azul);
}

.ocupacion-nota {
	margin-top: 16px;
	font-size: 13px;
	color: var(--sc-gris-texto);
	font-style: italic;
}

/* ── Sección 8: RELACIONADAS ──────────────────────────────────────── */
.relacionadas-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

/* ===================================================================
   RESPONSIVE
   =================================================================== */

/* Tablet (768–1024px) */
@media (max-width: 1024px) {
	/* Tarjeta: reducir imagen en tablet */
	.tarjeta-propiedad__imagen {
		flex: 0 0 45%;
		max-width: 45%;
	}
	.tarjeta-propiedad__contenido {
		padding: 20px 22px;
	}
	.tarjeta-propiedad__precio {
		font-size: 26px;
	}
	.tarjeta-propiedad__titulo {
		font-size: 17px;
	}
	.tarjeta-propiedad__excerpt {
		-webkit-line-clamp: 1;
	}

	/* Single layout → 1 columna en tablet */
	.single-layout {
		grid-template-columns: 1fr;
	}
	.single-layout__sidebar {
		position: static;
	}
	.seccion-descripcion-form {
		grid-template-columns: 1fr;
	}
	.formulario-card {
		position: static;
	}
	.caracteristicas-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.multimedia-grid--dos {
		grid-template-columns: 1fr;
	}
	.relacionadas-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.cabecera-propiedad__top {
		flex-direction: column;
		gap: 20px;
	}
	.cabecera-propiedad__der {
		text-align: left;
	}
}

/* Móvil (<768px) */
@media (max-width: 768px) {
	.archivo-hero {
		padding: 40px 0;
	}
	.archivo-hero__titulo {
		font-size: 28px;
	}

	/* Tarjeta horizontal → vertical */
	.tarjeta-propiedad {
		flex-direction: column;
	}
	.tarjeta-propiedad__imagen {
		flex: none;
		max-width: 100%;
	}
	.tarjeta-propiedad__contenido {
		padding: 20px;
	}
	.tarjeta-propiedad__titulo {
		font-size: 17px;
	}
	.tarjeta-propiedad__precio {
		font-size: 26px;
	}
	.tarjeta-propiedad__features {
		gap: 10px;
	}
	.tarjeta-propiedad__feature {
		font-size: 12px;
	}
	.tarjeta-propiedad__acciones {
		flex-direction: column;
	}
	.tarjeta-propiedad__btn-visita,
	.tarjeta-propiedad__btn-detalles {
		width: 100%;
		text-align: center;
	}
	.tarjeta-propiedad__excerpt {
		-webkit-line-clamp: 2;
	}

	/* Single layout → 1 columna en móvil */
	.single-layout {
		grid-template-columns: 1fr;
		gap: 0;
	}
	.single-layout__sidebar {
		position: static;
	}

	/* Single: galería */
	.galeria-main {
		max-height: 300px;
	}
	.galeria-main .swiper-slide img {
		max-height: 300px;
	}
	.galeria-thumbs .swiper-slide img {
		height: 56px;
	}
	.galeria__tour-btn {
		bottom: 12px;
		left: 12px;
		padding: 8px 14px;
		font-size: 12px;
	}
	.galeria__video-thumb {
		height: 56px;
	}

	/* Single: cabecera */
	.cabecera-propiedad__titulo {
		font-size: 24px;
	}
	.cabecera-propiedad__precio {
		font-size: 28px;
	}
	.info-basica {
		gap: 10px;
	}
	.info-basica__card {
		flex: 1 1 calc(50% - 10px);
		min-width: 0;
		padding: 12px;
	}
	.info-basica__valor {
		font-size: 18px;
	}

	/* Single: contenido */
	.seccion-contenido--beige {
		margin: 0 -16px;
		padding: 24px 16px;
	}

	/* Single: características */
	.caracteristicas-grid {
		grid-template-columns: 1fr;
	}

	/* Relacionadas */
	.relacionadas-grid {
		grid-template-columns: 1fr;
	}
}

/* Móvil pequeño (<480px) */
@media (max-width: 480px) {
	.contenedor {
		padding: 0 16px;
	}
	.filtros-grupo {
		gap: 8px;
	}
	.filtro-btn {
		padding: 6px 14px;
		font-size: 13px;
	}
	.galeria-main .swiper-button-next,
	.galeria-main .swiper-button-prev {
		width: 36px;
		height: 36px;
	}
	.galeria-main .swiper-button-next::after,
	.galeria-main .swiper-button-prev::after {
		font-size: 14px;
	}
}

/* ===================================================================
   Placeholder imagen
   =================================================================== */
.imagen-placeholder {
	width: 100%;
	aspect-ratio: 3 / 2;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--sc-gris-claro);
	color: #ccc;
	font-size: 48px;
	border-radius: var(--sc-radio-sm);
}
.imagen-placeholder--galeria {
	background: #2a2a2a;
	color: #666;
	font-size: 16px;
	aspect-ratio: 16 / 9;
	border-radius: 0;
}
.imagen-placeholder--galeria span {
	padding: 20px;
}

/* ===================================================================
   Galería — estado placeholder (sin imágenes)
   =================================================================== */
.galeria-wrapper--placeholder {
	background: #1a1a1a;
}

/* ===================================================================
   Formulario fallback (sin CF7)
   =================================================================== */
.formulario-inmueble input[type="text"],
.formulario-inmueble input[type="email"],
.formulario-inmueble input[type="tel"],
.formulario-inmueble textarea {
	width: 100%;
	padding: 10px 14px;
	border: 1px solid var(--sc-gris-borde);
	border-radius: var(--sc-radio-sm);
	font-size: 14px;
	font-family: var(--sc-fuente);
	color: var(--sc-negro);
	background: var(--sc-blanco);
	transition: border-color 0.2s, box-shadow 0.2s;
	box-sizing: border-box;
	margin-bottom: 12px;
}
.formulario-inmueble input:focus,
.formulario-inmueble textarea:focus {
	outline: none;
	border-color: var(--sc-azul);
	box-shadow: 0 0 0 3px rgba(74,143,204,0.15);
}
.formulario-inmueble textarea {
	resize: vertical;
	min-height: 100px;
}
.formulario-inmueble input[type="submit"] {
	width: 100%;
	padding: 14px;
	background: var(--sc-azul);
	color: var(--sc-blanco);
	border: none;
	border-radius: var(--sc-radio-sm);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s;
	font-family: var(--sc-fuente);
}
.formulario-inmueble input[type="submit"]:hover {
	background: var(--sc-azul-hover);
}

/* ===================================================================
   Multimedia — bloque contenedor
   =================================================================== */
.multimedia__bloque {
	min-width: 0;
}

/* ===================================================================
   Tabla responsive (temporadas vacacional)
   =================================================================== */
.temporadas-wrapper {
	overflow: visible;
}
.table-responsive {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

@media (max-width: 768px) {
	.table-responsive {
		margin: 0 -20px;
		padding: 0 20px;
	}
}

/* ===================================================================
   PRINT STYLES — Ficha de propiedad imprimible
   =================================================================== */
@media print {
	/* Ocultar navegación, sidebar, botones, filtros */
	.filtros-barra,
	.paginacion,
	.tarjeta-propiedad__acciones,
	.formulario-card,
	.single-layout__sidebar,
	.galeria-thumbs,
	.galeria__tour-btn,
	.lightbox-overlay,
	.swiper-button-prev,
	.swiper-button-next,
	.swiper-pagination,
	.btn-cta,
	.formulario-card__cta-buttons,
	.formulario-card__separador,
	.relacionadas-grid,
	.seccion-propiedad--oscuro {
		display: none !important;
	}

	/* Resetear layout a una columna */
	.single-layout {
		display: block;
	}

	/* Forzar colores de fondo */
	.seccion-propiedad--beige,
	.seccion-contenido--beige {
		background: none !important;
	}

	/* Tarjeta: stack vertical */
	.tarjeta-propiedad {
		flex-direction: column;
		box-shadow: none;
		border: 1px solid #ccc;
		page-break-inside: avoid;
	}
	.tarjeta-propiedad__imagen {
		flex: none;
		max-width: 100%;
	}
	.tarjeta-propiedad__imagen img {
		max-height: 300px;
	}

	/* Precio en negro para impresión */
	.tarjeta-propiedad__precio,
	.cabecera-propiedad__precio {
		color: #000 !important;
	}

	/* Fuentes legibles */
	body {
		font-size: 12pt;
		color: #000;
	}

	/* Links con URL visible */
	.descripcion-propiedad a::after {
		content: " (" attr(href) ")";
		font-size: 10pt;
		color: #666;
	}

	/* Imágenes en galería */
	.galeria-main .swiper-slide img {
		max-height: 400px;
	}
}

/* ===================================================================
   RESPONSIVE — Tarjeta wrapper tablet (≤768px)
   =================================================================== */
@media (max-width: 768px) {
	.tarjeta-wrapper {
		padding: 10px;
		margin-bottom: 20px;
	}
	.tarjeta-propiedad {
		flex-direction: column;
	}
	.tarjeta-propiedad__imagen {
		flex: none;
		max-width: 100%;
		width: 100%;
		aspect-ratio: 3 / 2;
		overflow: hidden;
	}
	.tarjeta-propiedad__imagen img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	.tarjeta-propiedad__contenido {
		padding: 20px;
	}
	.tarjeta-propiedad__precio {
		font-size: 26px;
	}
	.tarjeta-propiedad__acciones {
		flex-direction: column;
	}
	.tarjeta-propiedad__btn-visita,
	.tarjeta-propiedad__btn-detalles {
		width: 100%;
		text-align: center;
	}
}

/* ===================================================================
   RESPONSIVE — Tarjeta wrapper móvil pequeño (≤480px)
   =================================================================== */
@media (max-width: 480px) {
	.tarjeta-propiedad__titulo { font-size: 17px; }
	.tarjeta-propiedad__extras {
		gap: 5px;
	}
	.tarjeta-propiedad__extra {
		padding: 2px 8px;
		font-size: 10px;
	}
	.tarjeta-propiedad__features {
		gap: 10px;
	}
	.tarjeta-propiedad__feature {
		font-size: 12px;
	}
}

/* ===================================================================
   PROTECCIÓN DE IMÁGENES — Copyright Soria Casas
   Dificulta clic derecho, arrastre y copia de imágenes.
   =================================================================== */

/* Desactivar selección y arrastre nativo en imágenes del plugin */
.tarjeta-propiedad__imagen img,
.tarjeta-vertical__imagen img,
.galeria-wrapper img,
.lightbox-overlay img {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-user-drag: none;
	-webkit-touch-callout: none;
	pointer-events: none;
}

/* Los contenedores de imagen mantienen pointer-events para clicks y hover */
.tarjeta-propiedad__imagen,
.tarjeta-vertical__imagen a,
.galeria-wrapper .swiper-slide {
	position: relative;
}

/* Capa transparente sobre las imágenes que intercepta clic derecho */
.tarjeta-propiedad__imagen::after,
.tarjeta-vertical__imagen a::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
}

/* Los badges y media-icons deben estar encima de la capa protectora */
.tarjeta-propiedad__badge,
.tarjeta-propiedad__media-icons {
	z-index: 2;
	pointer-events: auto;
}
