/* Arcanum Inmobiliaria — estilos base de los widgets (todo se puede pisar desde Elementor) */

.arci-vacio-editor {
	padding: 10px 14px; border: 1px dashed #c3c4c7; border-radius: 6px;
	color: #787c82; font-size: 13px; background: #fafafa;
}
[class*="elementor-widget-arci-"] [hidden] { display: none !important; }

/* Íconos genéricos */
.arci-icono { display: inline-flex; align-items: center; justify-content: center; line-height: 1; flex: none; }
.arci-icono svg { width: 1em; height: 1em; fill: currentColor; }

/* Botón base */
.arci-boton {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em; box-sizing: border-box;
	padding: .7em 1.2em; border: 1px solid transparent; border-radius: 6px;
	background: #1f2937; color: #fff; font-weight: 600; line-height: 1.2;
	text-decoration: none; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s;
}
.arci-boton:hover, .arci-boton:focus { background: #111827; color: #fff; }

/* 1 · Título */
.arci-titulo { margin: 0; }
.arci-titulo a { color: inherit; text-decoration: none; }

/* 2 · Operación / 3 · Tipo / 5 · Crédito */
.arci-operacion, .arci-tipo, .arci-credito {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 13px; font-weight: 600; line-height: 1.2;
	padding: 5px 12px; border-radius: 4px;
}
.arci-operaciones { display: flex; flex-wrap: wrap; gap: 6px; }
.arci-operacion { background: #1f2937; color: #fff; text-transform: uppercase; letter-spacing: .04em; font-size: 12px; }
.arci-operacion--venta { background: #0f766e; }
.arci-operacion--alquiler { background: #b45309; }
.arci-tipo { background: #f3f4f6; color: #374151; text-decoration: none; }
.arci-credito { background: #16a34a; color: #fff; }

.arci-flotante-yes { position: absolute !important; z-index: 3; width: auto !important; }

/* 4 · Galería */
.arci-galeria { --arci-gal-gap: 8px; position: relative; }
.arci-galeria__principal {
	position: relative; height: 480px; overflow: hidden; border-radius: 8px; background: #f3f4f6;
}
.arci-galeria--sin-fotos .arci-galeria__principal { height: 240px; }
.arci-galeria__slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .35s ease; display: block; }
.arci-galeria__slide.is-activa { opacity: 1; visibility: visible; }
.arci-galeria img { width: 100%; height: 100%; object-fit: cover; display: block; max-width: none; border-radius: 0; }
.arci-galeria__flecha {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
	width: 42px; height: 42px; border-radius: 50%; border: 0; padding: 8px;
	background: rgba(255, 255, 255, .88); color: #111; cursor: pointer;
	display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
}
.arci-galeria__flecha:hover { background: #fff; }
.arci-galeria__flecha svg { width: 100%; height: 100%; }
.arci-galeria__flecha--prev { left: 12px; }
.arci-galeria__flecha--next { right: 12px; }
.arci-galeria__contador {
	position: absolute; right: 12px; bottom: 12px; z-index: 2;
	background: rgba(0, 0, 0, .6); color: #fff; font-size: 13px; padding: 3px 10px; border-radius: 20px;
}
.arci-galeria__minis {
	display: flex; gap: var(--arci-gal-gap); margin-top: var(--arci-gal-gap);
	overflow-x: auto; scrollbar-width: thin; padding-bottom: 2px;
}
.arci-galeria__mini {
	flex: none; height: 80px; width: 112px; padding: 0; border: 0; border-radius: 6px; overflow: hidden;
	cursor: pointer; background: #e5e7eb; opacity: .65; transition: opacity .15s;
	outline: 2px solid transparent; outline-offset: -2px;
}
.arci-galeria__mini:hover { opacity: 1; }
.arci-galeria__mini.is-activa { opacity: 1; outline-color: #111827; }
.arci-galeria__badge {
	position: absolute; top: 14px; left: 14px; z-index: 3;
	padding: 6px 12px; border-radius: 4px; font-size: 13px; font-weight: 700; line-height: 1.2;
	background: #16a34a; color: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .15); pointer-events: none;
}
.arci-galeria__badges-op { position: absolute; top: 14px; right: 14px; z-index: 3; display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; pointer-events: none; }
.arci-galeria__badges-op .arci-galeria__badge { position: static; }
.arci-galeria__badge--op { background: #1f2937; text-transform: uppercase; font-size: 12px; letter-spacing: .04em; }
.arci-galeria__badge--venta { background: #0f766e; }
.arci-galeria__badge--alquiler { background: #b45309; }

/* Mosaico */
.arci-mosaico {
	display: grid; gap: var(--arci-gal-gap); height: 480px;
	grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr;
}
.arci-mosaico a { position: relative; display: block; overflow: hidden; border-radius: 8px; background: #f3f4f6; }
.arci-mosaico a:first-child { grid-row: span 2; }
.arci-mosaico--1 { grid-template-columns: 1fr; }
.arci-mosaico--2 { grid-template-columns: 2fr 1fr; }
.arci-mosaico--2 a:nth-child(2) { grid-row: span 2; }
.arci-mosaico--3 { grid-template-columns: 2fr 1fr; }
.arci-mosaico--4 { grid-template-columns: 2fr 1fr 1fr; }
.arci-mosaico--4 a:nth-child(2) { grid-row: span 2; }
.arci-mosaico img { transition: transform .4s ease; }
.arci-mosaico a:hover img { transform: scale(1.03); }
.arci-mosaico__mas {
	position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
	background: rgba(0, 0, 0, .5); color: #fff; font-size: 18px; font-weight: 700;
}
@media (max-width: 767px) {
	.arci-mosaico { grid-template-columns: 1fr 1fr !important; grid-template-rows: 2fr 1fr; }
	.arci-mosaico a:first-child { grid-column: span 2; grid-row: auto; }
	.arci-mosaico a:nth-child(n+4) { display: none; }
	.arci-mosaico a:nth-child(2) { grid-row: auto !important; }
	.arci-galeria__principal { height: 300px; }
}

/* 4 · Descripción */
.arci-descripcion > *:last-child { margin-bottom: 0; }

/* 4.1 · Precio */
.arci-precios { display: flex; flex-direction: column; gap: 6px; }
.arci-precios--fila .arci-precios { flex-direction: row; flex-wrap: wrap; column-gap: 20px; }
.arci-precio__op { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; opacity: .7; margin-right: 4px; align-self: center; }
.arci-precio { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 6px; row-gap: 2px; }
.arci-precio__numero { font-size: 28px; font-weight: 700; line-height: 1.1; }
.arci-precio__moneda { font-size: 18px; font-weight: 600; }
.arci-precio__extra { font-size: 14px; opacity: .8; }
.arci-precio__consultar { font-size: 20px; font-weight: 600; opacity: 1; }

/* 6 · Dirección */
.arci-direccion { display: flex; flex-direction: column; gap: 12px; }
.arci-direccion__fila { display: flex; flex-direction: column; align-items: flex-start; gap: inherit; }
.arci-dir--fila .arci-direccion__fila { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.arci-direccion__texto { display: inline-flex; align-items: flex-start; gap: 8px; }
.arci-direccion__texto .arci-icono { margin-top: .2em; }
.arci-direccion__mapa { height: 350px; overflow: hidden; border-radius: 8px; background: #f3f4f6; }
.arci-direccion__mapa iframe { width: 100%; height: 100%; border: 0; display: block; }

/* 7 · Características */
.arci-carac-lista, .arci-comodidades {
	list-style: none; margin: 0; padding: 0;
	display: var(--arci-display, grid); flex-wrap: wrap; grid-template-columns: var(--arci-cols, repeat(3, minmax(0, 1fr)));
	row-gap: 12px; column-gap: 16px;
}
.arci-carac { display: flex; align-items: center; gap: 8px; margin: 0; min-width: 0; }
.arci-carac .arci-icono { font-size: 20px; color: #4b5563; }
.arci-carac__texto { min-width: 0; }
.arci-carac__valor { font-weight: 600; }
.arci-carac-lista--apilado .arci-carac__texto { display: flex; flex-direction: column; }
.arci-carac-lista--apilado .arci-carac__etiqueta { font-size: .82em; opacity: .75; }
.arci-carac-mayus-yes .arci-carac__etiqueta { display: inline-block; }
.arci-carac-mayus-yes .arci-carac__etiqueta::first-letter { text-transform: uppercase; }
.arci-carac-icono-arriba .arci-carac { flex-direction: column; text-align: center; }
.arci-carac-icono-arriba .arci-carac-lista--apilado .arci-carac__texto { align-items: center; }


/* 8 · Comodidades */
.arci-comodidad { display: flex; align-items: center; gap: 8px; margin: 0; }
.arci-comodidad .arci-icono { font-size: 14px; color: #16a34a; }

/* 9 · Agente */
.arci-agente { display: flex; flex-direction: column; gap: 16px; }
.arci-agente__titulo { font-size: 14px; opacity: .75; }
.arci-agente__cabecera { display: flex; align-items: center; gap: 14px; }
.arci-agente--vertical .arci-agente__cabecera { flex-direction: column; text-align: center; }
.arci-agente__foto {
	width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex: none;
	display: inline-flex; align-items: center; justify-content: center;
	max-width: none;
}
.arci-agente__foto--ini { background: #e5e7eb; color: #374151; font-weight: 700; font-size: 27px; }
.arci-agente__nombre { font-size: 18px; font-weight: 700; line-height: 1.25; }
.arci-agente__nombre a, .arci-agente__dato a { color: inherit; text-decoration: none; }
.arci-agente__dato { font-size: 14px; opacity: .85; }
.arci-agente__botones { display: flex; flex-wrap: wrap; gap: 8px; }
.arci-agente--vertical .arci-agente__botones { justify-content: center; }
.arci-agente-botones-full-yes .arci-agente__botones { flex-direction: column; }
.arci-agente-botones-full-yes .arci-agente__boton { width: 100%; }
.arci-agente__boton--wa { background: #25d366; color: #fff; }
.arci-agente__boton--wa:hover, .arci-agente__boton--wa:focus { background: #1ebe5b; color: #fff; }
.arci-agente__boton--tel, .arci-agente__boton--mail { background: transparent; color: #1f2937; border-color: #d1d5db; }
.arci-agente__boton--tel:hover, .arci-agente__boton--mail:hover { background: #f3f4f6; color: #111827; }

/* =========================================================
 * Filtros
 * ======================================================= */
.arci-filtros { position: relative; }
.arci-filtros__panel { background: #fff; border: 1px solid #e5e7eb; border-radius: 10px; padding: 20px; }
.arci-filtros__titulo { font-size: 18px; font-weight: 700; margin-bottom: 16px; }
.arci-filtros__grupos { display: flex; flex-direction: column; gap: 20px; }
.arci-f-titulo { font-size: 14px; font-weight: 600; margin-bottom: 8px; }

.arci-f-select, .arci-f-input {
	width: 100%; height: 42px; box-sizing: border-box;
	padding: 0 12px; border: 1px solid #d1d5db; border-radius: 6px;
	background-color: #fff; color: #111827; font: inherit; font-size: 14px; outline: 0;
}
.arci-f-select:focus, .arci-f-input:focus { border-color: #111827; box-shadow: 0 0 0 1px #111827; }
.arci-f-rango { display: flex; align-items: center; gap: 8px; }
.arci-f-rango .arci-f-input { min-width: 0; }
.arci-f-rango__sep { opacity: .5; }

.arci-f-opciones { display: flex; flex-wrap: wrap; gap: 6px; }
.arci-f-opciones--checks { flex-direction: column; gap: 8px; }
.arci-f-opcion { position: relative; margin: 0; cursor: pointer; }
.arci-f-opcion input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.arci-f-boton > span {
	display: inline-block; padding: 7px 14px; border: 1px solid #d1d5db; border-radius: 20px;
	font-size: 14px; line-height: 1.2; background: #fff; color: #374151; transition: all .12s;
	user-select: none;
}
.arci-f-boton:hover > span { border-color: #111827; }
.arci-f-boton input:checked + span { background: #111827; border-color: #111827; color: #fff; }
.arci-f-check > span { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; user-select: none; }
.arci-f-check > span::before {
	content: ''; width: 18px; height: 18px; flex: none; box-sizing: border-box;
	border: 1.5px solid #9ca3af; border-radius: 4px; background: #fff center/12px no-repeat; transition: all .12s;
}
.arci-f-check input:checked + span::before {
	background-color: #111827; border-color: #111827;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='white' stroke-width='2.4' d='M3.5 8.5l3 3 6-6.5'/%3E%3C/svg%3E");
}
.arci-f-opcion input:focus-visible + span { outline: 2px solid #2563eb; outline-offset: 2px; }

.arci-filtros__acciones { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-top: 22px; }
.arci-filtros__buscar { width: auto; }
.arci-buscar-full-yes .arci-filtros__buscar { width: 100%; }
.arci-filtros__limpiar { font-size: 14px; color: #6b7280; text-decoration: underline; }
.arci-filtros__contador { margin-top: 14px; font-size: 14px; text-align: center; color: #4b5563; }
.arci-filtros.arci-cargando .arci-filtros__contador { opacity: .5; }

/* Horizontal */
.arci-filtros--horizontal .arci-filtros__grupos { flex-direction: row; flex-wrap: wrap; align-items: flex-end; }
.arci-filtros--horizontal .arci-f-grupo { flex: 1 1 170px; min-width: 0; }
.arci-filtros--horizontal .arci-f-grupo--tipo,
.arci-filtros--horizontal .arci-f-grupo--precio { flex-basis: 240px; }
.arci-filtros--horizontal .arci-f-opciones--checks { flex-direction: row; flex-wrap: wrap; gap: 6px 14px; }
.arci-filtros--horizontal .arci-filtros__acciones { flex-direction: row; justify-content: flex-start; }
.arci-filtros--horizontal.arci-buscar-full-yes .arci-filtros__buscar { width: auto; min-width: 180px; }

/* Botón «Filtros» del celular */
.arci-filtros__abrir { display: none; width: 100%; }
.arci-filtros__activos {
	display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px;
	padding: 0 6px; border-radius: 10px; background: #fff; color: #111827; font-size: 12px; font-weight: 700;
}
@media (max-width: 767px) {
	.arci-filtros-plegable-yes .arci-filtros__abrir { display: inline-flex; }
	.arci-filtros-plegable-yes .arci-filtros__panel { display: none; margin-top: 10px; }
	.arci-filtros-plegable-yes .arci-filtros.is-abierto .arci-filtros__panel { display: block; }
	.arci-filtros--horizontal .arci-filtros__grupos { flex-direction: column; align-items: stretch; }
}

/* Listado mientras carga */
.arci-cargando { transition: opacity .2s; }
.elementor-element.arci-cargando { opacity: .45; pointer-events: none; }
.arci-sin-resultados { padding: 40px 20px; text-align: center; color: #6b7280; border: 1px dashed #d1d5db; border-radius: 10px; }

/* =========================================================
 * Texto predictivo de ubicación
 * ======================================================= */
.arci-ac { position: relative; }
.arci-ac__icono {
	position: absolute; left: 12px; top: 50%; transform: translateY(-50%); z-index: 1;
	display: flex; font-size: 18px; color: #9ca3af; pointer-events: none;
}
.arci-ac__icono svg { width: 1em; height: 1em; fill: currentColor; }
.arci-ac__icono + .arci-ac__input { padding-left: 38px; }
.arci-ac__lista {
	position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 50;
	margin: 0; padding: 6px; list-style: none; max-height: 320px; overflow-y: auto;
	background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; box-shadow: 0 10px 30px rgba(0, 0, 0, .12);
	text-align: left;
}
.arci-ac__item {
	display: grid; grid-template-columns: 1fr auto; column-gap: 10px; align-items: center;
	padding: 8px 10px; margin: 0; border-radius: 6px; cursor: pointer; color: #111827; font-size: 14px; line-height: 1.3;
}
.arci-ac__item.is-activo, .arci-ac__item:hover { background: #f3f4f6; }
.arci-ac__nombre { font-weight: 600; }
.arci-ac__nombre mark { background: none; color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.arci-ac__donde { grid-column: 1; font-size: 12px; color: #6b7280; }
.arci-ac__nivel { grid-column: 2; grid-row: 1 / span 2; font-size: 11px; color: #6b7280; text-transform: uppercase; letter-spacing: .04em; }

/* =========================================================
 * Buscador de inicio
 * ======================================================= */
.arci-buscador {
	--arci-bus-gap: 12px; --arci-bus-alto: 54px;
	display: flex; flex-direction: column; gap: var(--arci-bus-gap); width: 100%; box-sizing: border-box;
}
.arci-buscador__barra { display: flex; gap: var(--arci-bus-gap); width: 100%; }
.arci-buscador__barra .arci-ac { flex: 1 1 auto; min-width: 0; }
.arci-buscador .arci-ac__input { height: var(--arci-bus-alto); font-size: 16px; }
.arci-buscador .arci-f-select { height: var(--arci-bus-alto); }
.arci-buscador__boton { height: var(--arci-bus-alto); padding-top: 0; padding-bottom: 0; flex: none; min-width: 120px; }
.arci-buscador__opciones { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--arci-bus-gap); }
.arci-buscador__campo { flex: 1 1 200px; min-width: 0; }
.arci-buscador__campo:has(.arci-f-opciones) { flex: 0 1 auto; }
.arci-buscador .arci-f-boton > span { padding: 9px 16px; }
.arci-buscador .arci-f-opciones--botones { min-height: var(--arci-bus-alto); align-items: center; }

.arci-buscador--linea .arci-buscador { flex-direction: row; flex-wrap: wrap; align-items: flex-end; }
.arci-buscador--linea .arci-buscador__barra { flex: 1 1 320px; width: auto; }
.arci-buscador--linea .arci-buscador__opciones { flex: 0 1 auto; flex-wrap: nowrap; }
.arci-buscador--linea .arci-buscador__campo { flex: 0 1 220px; }

.arci-buscador--apilado .arci-buscador__opciones { flex-direction: column; align-items: stretch; }
.arci-buscador--apilado .arci-buscador__campo { flex: none; }
.arci-buscador--apilado .arci-buscador__boton { width: 100%; }

@media (max-width: 767px) {
	.arci-buscador__barra { flex-direction: column; }
	.arci-buscador__boton { width: 100%; }
	.arci-buscador--linea .arci-buscador, .arci-buscador--linea .arci-buscador__opciones { flex-direction: column; align-items: stretch; flex-wrap: wrap; }
	.arci-buscador__opciones { flex-direction: column; align-items: stretch; }
	.arci-buscador__campo, .arci-buscador--linea .arci-buscador__campo,
	.arci-buscador--linea .arci-buscador__barra, .arci-buscador--linea .arci-buscador__opciones { flex: none; width: 100%; }
	.arci-buscador .arci-f-opciones--botones { min-height: 0; }
}
