/* =========================================================
   Montero Propiedades — hoja de estilos del tema
   Azul y blanco, formal. Estructura:
   1. Variables  2. Base  3. Componentes  4. Cabecera
   5. Portada    6. Listado  7. Ficha  8. Formularios
   9. Pie        10. Responsive
   ========================================================= */

/* 1. Variables ------------------------------------------- */
:root {
	--azul-900: #082744;
	--azul-800: #0b3255;
	--azul-700: #0f3d6e;
	--azul-600: #16528e;
	--azul-500: #1d6bb5;
	--azul-100: #e8f1f9;
	--azul-050: #f4f8fc;

	--tinta: #17202a;
	--gris-700: #48545f;
	--gris-500: #6b7681;
	--gris-300: #d3dae1;
	--gris-200: #e5eaef;
	--gris-100: #f2f5f8;
	--blanco: #ffffff;

	--verde-wa: #128c4a;
	--verde-wa-osc: #0e7a40;
	--ambar: #9a6a00;
	--ambar-bg: #fdf3d8;

	--fuente-texto: "Source Sans 3", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--fuente-titulo: "Lora", Georgia, "Times New Roman", serif;

	--radio: 6px;
	--radio-lg: 10px;
	--sombra-sm: 0 1px 2px rgba(8, 39, 68, 0.06), 0 1px 3px rgba(8, 39, 68, 0.08);
	--sombra: 0 2px 6px rgba(8, 39, 68, 0.07), 0 8px 24px rgba(8, 39, 68, 0.08);
	--sombra-lg: 0 12px 40px rgba(8, 39, 68, 0.14);

	--ancho: 1180px;
	--transicion: 160ms ease;
}

/* 2. Base ------------------------------------------------ */
*,
*::before,
*::after { box-sizing: border-box; }

body {
	margin: 0;
	font-family: var(--fuente-texto);
	font-size: 17px;
	line-height: 1.65;
	color: var(--tinta);
	background: var(--blanco);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
	font-family: var(--fuente-titulo);
	color: var(--azul-900);
	line-height: 1.25;
	margin: 0 0 .5em;
	font-weight: 700;
	letter-spacing: -0.01em;
}

h1 { font-size: clamp(1.9rem, 1.3rem + 2.4vw, 2.9rem); }
h2 { font-size: clamp(1.45rem, 1.1rem + 1.5vw, 2.05rem); }
h3 { font-size: 1.2rem; }
h4 { font-size: 1rem; }

p { margin: 0 0 1em; }

a {
	color: var(--azul-600);
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
	transition: color var(--transicion);
}

a:hover { color: var(--azul-800); }

img {
	max-width: 100%;
	height: auto;
	display: block;
}

ul, ol { margin: 0 0 1em; padding-left: 1.25em; }

.contenedor {
	width: 100%;
	max-width: var(--ancho);
	margin: 0 auto;
	padding: 0 24px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.saltar-contenido {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 999;
	background: var(--azul-700);
	color: #fff;
	padding: 12px 20px;
	border-radius: 0 0 var(--radio) 0;
}

.saltar-contenido:focus {
	left: 0;
	color: #fff;
}

:focus-visible {
	outline: 3px solid var(--azul-500);
	outline-offset: 2px;
	border-radius: 3px;
}

/* 3. Componentes ----------------------------------------- */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 22px;
	border: 1px solid transparent;
	border-radius: var(--radio);
	font-size: .96rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background var(--transicion), color var(--transicion), border-color var(--transicion), transform var(--transicion);
	white-space: nowrap;
}

.btn:active { transform: translateY(1px); }

.btn-primario {
	background: var(--azul-700);
	color: #fff;
	border-color: var(--azul-700);
}

.btn-primario:hover {
	background: var(--azul-800);
	border-color: var(--azul-800);
	color: #fff;
}

.btn-linea {
	background: transparent;
	color: var(--azul-700);
	border-color: var(--gris-300);
}

.btn-linea:hover {
	background: var(--azul-050);
	border-color: var(--azul-600);
	color: var(--azul-800);
}

.btn-linea-claro {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, .5);
}

.btn-linea-claro:hover {
	background: rgba(255, 255, 255, .12);
	border-color: #fff;
	color: #fff;
}

.btn-wa {
	background: var(--verde-wa);
	color: #fff;
	border-color: var(--verde-wa);
}

.btn-wa:hover {
	background: var(--verde-wa-osc);
	border-color: var(--verde-wa-osc);
	color: #fff;
}

.btn-texto {
	background: transparent;
	color: var(--azul-700);
	border-color: transparent;
	padding: 8px 12px;
}

.btn-texto:hover { background: var(--azul-050); }

.btn-bloque {
	display: flex;
	width: 100%;
	margin-bottom: 10px;
}

.seccion { padding: 68px 0; }

.seccion:nth-of-type(even) { background: var(--azul-050); }

.seccion-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 34px;
}

.seccion-head-centrada {
	justify-content: center;
	text-align: center;
}

.seccion-kicker {
	margin: 0 0 6px;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--azul-500);
}

.seccion-titulo { margin: 0; }

.aviso-vacio {
	text-align: center;
	padding: 56px 24px;
	background: var(--azul-050);
	border: 1px solid var(--gris-200);
	border-radius: var(--radio-lg);
	margin: 32px 0;
}

.aviso-vacio h1,
.aviso-vacio h2 { margin-top: 0; }

.aviso-vacio-botones {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
	margin-top: 20px;
}

.error-num {
	font-family: var(--fuente-titulo);
	font-size: 4rem;
	color: var(--azul-500);
	margin: 0;
	line-height: 1;
}

.mp-sinfoto {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background: linear-gradient(140deg, var(--azul-100), var(--gris-100));
	color: var(--azul-500);
	opacity: .55;
}

.mp-sinfoto svg { width: 54px; height: auto; }

/* 4. Cabecera -------------------------------------------- */
.barra-superior {
	background: var(--azul-900);
	color: rgba(255, 255, 255, .82);
	font-size: .85rem;
}

.barra-superior-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 38px;
	flex-wrap: wrap;
}

.barra-superior a {
	color: #fff;
	text-decoration: none;
}

.barra-superior a:hover { text-decoration: underline; }

.barra-contacto {
	display: flex;
	gap: 20px;
	flex-wrap: wrap;
}

.cabecera {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(255, 255, 255, .97);
	backdrop-filter: saturate(180%) blur(8px);
	border-bottom: 1px solid var(--gris-200);
}

.cabecera-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: 76px;
}

.marca img,
.custom-logo {
	max-height: 56px;
	width: auto;
}

.marca-texto {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	line-height: 1.15;
}

.marca-nombre {
	font-family: var(--fuente-titulo);
	font-size: 1.42rem;
	font-weight: 700;
	color: var(--azul-800);
	letter-spacing: -0.015em;
}

.marca-desc {
	font-size: .75rem;
	color: var(--gris-500);
	letter-spacing: .04em;
	text-transform: uppercase;
	margin-top: 2px;
}

.nav-principal {
	display: flex;
	align-items: center;
	gap: 28px;
}

.nav-principal .menu {
	display: flex;
	align-items: center;
	gap: 4px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.nav-principal .menu li { position: relative; }

.nav-principal .menu a {
	display: block;
	padding: 9px 14px;
	border-radius: var(--radio);
	color: var(--gris-700);
	font-size: .95rem;
	font-weight: 600;
	text-decoration: none;
	transition: background var(--transicion), color var(--transicion);
}

.nav-principal .menu a:hover,
.nav-principal .menu .current-menu-item > a,
.nav-principal .menu .current_page_item > a {
	background: var(--azul-050);
	color: var(--azul-800);
}

/* Submenús */
.nav-principal .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 210px;
	background: #fff;
	border: 1px solid var(--gris-200);
	border-radius: var(--radio);
	box-shadow: var(--sombra);
	padding: 6px;
	margin: 0;
	list-style: none;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: all var(--transicion);
	z-index: 20;
}

.nav-principal .menu li:hover > .sub-menu,
.nav-principal .menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.btn-cabecera {
	padding: 10px 20px;
	background: var(--azul-700);
	color: #fff;
	border-color: var(--azul-700);
}

.btn-cabecera:hover { background: var(--azul-800); color: #fff; }

.menu-toggle {
	display: none;
	background: transparent;
	border: 1px solid var(--gris-300);
	border-radius: var(--radio);
	padding: 10px 12px;
	cursor: pointer;
}

.menu-toggle-barras {
	display: block;
	width: 20px;
}

.menu-toggle-barras span {
	display: block;
	height: 2px;
	background: var(--azul-800);
	border-radius: 2px;
	margin: 4px 0;
	transition: transform var(--transicion), opacity var(--transicion);
}

.menu-abierto .menu-toggle-barras span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-abierto .menu-toggle-barras span:nth-child(2) { opacity: 0; }
.menu-abierto .menu-toggle-barras span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* 5. Portada --------------------------------------------- */
.hero {
	position: relative;
	color: #fff;
	padding: 84px 0 76px;
	overflow: hidden;
	background: var(--azul-800);
}

.hero-fondo {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(1100px 520px at 12% -10%, rgba(29, 107, 181, .55), transparent 62%),
		radial-gradient(900px 460px at 88% 8%, rgba(15, 61, 110, .75), transparent 60%),
		linear-gradient(160deg, var(--azul-800) 0%, var(--azul-900) 100%);
}

.hero-fondo::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
	background-size: 64px 64px;
	mask-image: radial-gradient(ellipse at 50% 0%, #000 20%, transparent 72%);
	-webkit-mask-image: radial-gradient(ellipse at 50% 0%, #000 20%, transparent 72%);
}

/* Con foto de fondo: sin cuadrícula, y un poco más de peso abajo
   para que el buscador blanco no quede flotando sobre la imagen. */
.hero-con-imagen .hero-fondo::after {
	background-image: linear-gradient(to bottom, transparent 45%, rgba(8, 39, 68, .35) 100%);
	background-size: auto;
	mask-image: none;
	-webkit-mask-image: none;
}

.hero-con-imagen .hero-titulo,
.hero-con-imagen .hero-bajada {
	text-shadow: 0 1px 18px rgba(8, 39, 68, .45);
}

/* Alturas de la portada */
.hero-alto-compacta { padding: 56px 0 52px; }
.hero-alto-normal   { padding: 84px 0 76px; }
.hero-alto-alta     { padding: 128px 0 116px; }

.hero-inner {
	position: relative;
	z-index: 1;
	max-width: 820px;
}

.hero-kicker {
	margin: 0 0 14px;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #9fc6e8;
}

.hero-titulo {
	color: #fff;
	margin: 0 0 16px;
	max-width: 17ch;
}

.hero-bajada {
	font-size: 1.12rem;
	color: rgba(255, 255, 255, .88);
	max-width: 62ch;
	margin: 0 0 30px;
}

.hero-buscador {
	background: rgba(255, 255, 255, .97);
	border-radius: var(--radio-lg);
	padding: 20px;
	box-shadow: var(--sombra-lg);
	color: var(--tinta);
}

.franja-confianza {
	background: var(--azul-900);
	color: #fff;
	padding: 26px 0;
}

.franja-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	text-align: center;
}

.franja-item {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 0 8px;
	border-left: 1px solid rgba(255, 255, 255, .14);
}

.franja-item:first-child { border-left: 0; }

.franja-num {
	font-family: var(--fuente-titulo);
	font-size: 1.75rem;
	font-weight: 700;
	color: #a8cdec;
	line-height: 1.1;
}

.franja-txt {
	font-size: .85rem;
	color: rgba(255, 255, 255, .78);
	line-height: 1.4;
}

/* Servicios */
.servicios-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 20px;
}

.servicio {
	background: #fff;
	border: 1px solid var(--gris-200);
	border-top: 3px solid var(--azul-600);
	border-radius: var(--radio-lg);
	padding: 26px 24px;
	box-shadow: var(--sombra-sm);
}

.servicio-num {
	display: block;
	font-family: var(--fuente-titulo);
	font-size: .95rem;
	font-weight: 700;
	color: var(--azul-500);
	letter-spacing: .06em;
	margin-bottom: 8px;
}

.servicio h3 { margin: 0 0 8px; }

.servicio p {
	margin: 0;
	color: var(--gris-700);
	font-size: .96rem;
}

/* Ciudades */
.ciudades-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 22px;
}

.ciudad {
	background: #fff;
	border: 1px solid var(--gris-200);
	border-radius: var(--radio-lg);
	padding: 26px 24px;
	box-shadow: var(--sombra-sm);
}

.ciudad h3 { margin: 0 0 4px; }

.ciudad h3 a { text-decoration: none; color: var(--azul-800); }

.ciudad-conteo {
	margin: 0 0 14px;
	font-size: .87rem;
	color: var(--gris-500);
}

.ciudad-comunas {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ciudad-comunas a {
	display: inline-block;
	padding: 5px 12px;
	background: var(--azul-050);
	border: 1px solid var(--azul-100);
	border-radius: 999px;
	font-size: .84rem;
	color: var(--azul-700);
	text-decoration: none;
	transition: background var(--transicion);
}

.ciudad-comunas a:hover {
	background: var(--azul-100);
	color: var(--azul-900);
}

/* Nosotros */
.nosotros-grid {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: 48px;
	align-items: start;
}

.nosotros-texto p { color: var(--gris-700); }

.nosotros-puntos {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 14px;
}

.nosotros-puntos li {
	background: #fff;
	border: 1px solid var(--gris-200);
	border-left: 3px solid var(--azul-600);
	border-radius: var(--radio);
	padding: 16px 20px;
	font-size: .95rem;
	color: var(--gris-700);
}

.nosotros-puntos strong {
	display: block;
	color: var(--azul-900);
	font-family: var(--fuente-titulo);
	font-size: 1.02rem;
	margin-bottom: 2px;
}

/* 6. Listado --------------------------------------------- */
.cabecera-pagina {
	background: var(--azul-050);
	border-bottom: 1px solid var(--gris-200);
	padding: 40px 0 36px;
}

.cabecera-pagina-titulo { margin: 6px 0 0; }

.cabecera-pagina-bajada {
	margin: 10px 0 0;
	color: var(--gris-700);
	max-width: 68ch;
}

.miga {
	font-size: .84rem;
	color: var(--gris-500);
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	align-items: center;
}

.miga a { color: var(--gris-500); text-decoration: none; }
.miga a:hover { color: var(--azul-700); text-decoration: underline; }
.miga span[aria-current] { color: var(--azul-800); font-weight: 600; }

.listado-wrap { padding: 32px 0 64px; }

.listado-filtros {
	background: #fff;
	border: 1px solid var(--gris-200);
	border-radius: var(--radio-lg);
	padding: 20px;
	box-shadow: var(--sombra-sm);
	margin-bottom: 24px;
}

.listado-barra {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 22px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--gris-200);
}

.listado-conteo { margin: 0; color: var(--gris-700); font-size: .95rem; }
.listado-conteo strong { color: var(--azul-800); }

.listado-orden {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: .9rem;
	color: var(--gris-700);
}

.listado-orden select {
	padding: 8px 12px;
	border: 1px solid var(--gris-300);
	border-radius: var(--radio);
	background: #fff;
	font: inherit;
	color: var(--tinta);
}

/* Filtros */
.filtros-fila {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 14px;
	align-items: end;
}

.filtro-campo {
	display: flex;
	flex-direction: column;
	gap: 5px;
	min-width: 0;
}

.filtro-campo label {
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--gris-500);
}

.filtro-campo select,
.filtro-campo input {
	width: 100%;
	padding: 11px 12px;
	border: 1px solid var(--gris-300);
	border-radius: var(--radio);
	background: #fff;
	font: inherit;
	font-size: .95rem;
	color: var(--tinta);
	transition: border-color var(--transicion), box-shadow var(--transicion);
}

.filtro-campo select:focus,
.filtro-campo input:focus {
	border-color: var(--azul-500);
	box-shadow: 0 0 0 3px rgba(29, 107, 181, .16);
	outline: none;
}

.filtro-boton .btn { width: 100%; padding: 12px 20px; }

.filtros-avanzados { margin-top: 14px; }

.filtros-avanzados summary {
	cursor: pointer;
	font-size: .88rem;
	font-weight: 600;
	color: var(--azul-600);
	list-style: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 0;
}

.filtros-avanzados summary::-webkit-details-marker { display: none; }

.filtros-avanzados summary::before {
	content: "+";
	font-size: 1.1em;
	line-height: 1;
}

.filtros-avanzados[open] summary::before { content: "–"; }

.filtros-fila-avanzada { margin-top: 12px; }

.filtros-nota {
	margin: 10px 0 0;
	font-size: .8rem;
	color: var(--gris-500);
}

/* Tarjetas */
.mp-grid-props {
	display: grid;
	gap: 24px;
}

.mp-cols-1 { grid-template-columns: 1fr; }
.mp-cols-2 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.mp-cols-3 { grid-template-columns: repeat(auto-fit, minmax(292px, 1fr)); }
.mp-cols-4 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }

.prop-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--gris-200);
	border-radius: var(--radio-lg);
	overflow: hidden;
	box-shadow: var(--sombra-sm);
	transition: transform var(--transicion), box-shadow var(--transicion), border-color var(--transicion);
}

.prop-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--sombra);
	border-color: var(--azul-100);
}

.prop-card-foto {
	position: relative;
	display: block;
	aspect-ratio: 10 / 7;
	background: var(--gris-100);
	overflow: hidden;
}

.prop-card-foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 400ms ease;
}

.prop-card:hover .prop-card-foto img { transform: scale(1.04); }

.prop-badge {
	position: absolute;
	top: 12px;
	padding: 5px 11px;
	border-radius: 999px;
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	backdrop-filter: blur(4px);
}

.prop-badge-op {
	left: 12px;
	background: rgba(8, 39, 68, .88);
	color: #fff;
}

.prop-badge-estado {
	right: 12px;
	background: var(--ambar-bg);
	color: var(--ambar);
}

.prop-estado-vendida,
.prop-estado-arrendada {
	background: rgba(23, 32, 42, .85);
	color: #fff;
}

.prop-card-cuerpo {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 18px 20px 20px;
}

.prop-meta-top {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin: 0 0 8px;
	font-size: .82rem;
	color: var(--gris-500);
}

.prop-tipo {
	font-weight: 700;
	color: var(--azul-600);
	text-transform: uppercase;
	letter-spacing: .05em;
	font-size: .74rem;
}

.prop-lugar::before {
	content: "·";
	margin-right: 8px;
	color: var(--gris-300);
}

.prop-titulo {
	font-size: 1.13rem;
	margin: 0 0 10px;
	line-height: 1.35;
}

.prop-titulo a {
	color: var(--azul-900);
	text-decoration: none;
}

.prop-titulo a:hover { color: var(--azul-600); }

.prop-precio {
	font-family: var(--fuente-titulo);
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--azul-700);
	margin: 0 0 14px;
	line-height: 1.2;
}

.prop-datos {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	list-style: none;
	margin: 0 0 16px;
	padding: 12px 0 0;
	border-top: 1px solid var(--gris-200);
}

.prop-datos li {
	flex: 1;
	min-width: 72px;
	display: flex;
	flex-direction: column;
	padding-right: 10px;
}

.prop-dato-num {
	font-weight: 700;
	color: var(--azul-900);
	font-size: .98rem;
	line-height: 1.3;
}

.prop-dato-txt {
	font-size: .76rem;
	color: var(--gris-500);
	line-height: 1.3;
}

.prop-enlace {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: .9rem;
	font-weight: 700;
	color: var(--azul-600);
	text-decoration: none;
}

.prop-enlace:hover { color: var(--azul-800); gap: 10px; }

.prop-enlace span { transition: transform var(--transicion); }

/* Paginación */
.pagination,
.navigation.pagination {
	margin-top: 40px;
	display: flex;
	justify-content: center;
}

.nav-links {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	align-items: center;
}

.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	border: 1px solid var(--gris-300);
	border-radius: var(--radio);
	color: var(--gris-700);
	text-decoration: none;
	font-weight: 600;
	font-size: .93rem;
	transition: all var(--transicion);
}

.page-numbers:hover {
	border-color: var(--azul-500);
	color: var(--azul-700);
	background: var(--azul-050);
}

.page-numbers.current {
	background: var(--azul-700);
	border-color: var(--azul-700);
	color: #fff;
}

.page-numbers.dots { border-color: transparent; }

.screen-reader-text + .nav-links { margin-top: 0; }

/* 7. Ficha ----------------------------------------------- */
.cabecera-ficha { padding-bottom: 30px; }

.ficha-encabezado {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 28px;
	flex-wrap: wrap;
	margin-top: 12px;
}

.ficha-etiquetas {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 10px;
	font-size: .88rem;
}

.etiqueta {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 999px;
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.etiqueta-op {
	background: var(--azul-700);
	color: #fff;
}

.etiqueta-estado {
	background: var(--ambar-bg);
	color: var(--ambar);
}

.ficha-lugar { color: var(--gris-500); }

.ficha-titulo { margin: 0 0 6px; max-width: 22ch; }

.ficha-direccion {
	margin: 0;
	color: var(--gris-700);
	font-size: .98rem;
}

.ficha-precio-caja {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 2px;
}

.ficha-precio {
	font-family: var(--fuente-titulo);
	font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.2rem);
	font-weight: 700;
	color: var(--azul-700);
	line-height: 1.1;
}

.ficha-codigo {
	font-size: .8rem;
	color: var(--gris-500);
	letter-spacing: .06em;
}

.ficha-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 330px;
	gap: 44px;
	padding: 40px 0 56px;
	align-items: start;
}

.ficha-galeria { margin-bottom: 36px; }

.ficha-foto-principal {
	border-radius: var(--radio-lg);
	overflow: hidden;
	background: var(--gris-100);
	aspect-ratio: 16 / 10;
	box-shadow: var(--sombra-sm);
}

.ficha-foto-principal img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ficha-miniaturas {
	display: flex;
	gap: 10px;
	margin-top: 12px;
	overflow-x: auto;
	padding-bottom: 4px;
	scrollbar-width: thin;
}

.ficha-mini {
	flex: 0 0 96px;
	height: 70px;
	padding: 0;
	border: 2px solid transparent;
	border-radius: var(--radio);
	overflow: hidden;
	cursor: pointer;
	background: var(--gris-100);
	transition: border-color var(--transicion), opacity var(--transicion);
	opacity: .78;
}

.ficha-mini img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ficha-mini:hover { opacity: 1; }

.ficha-mini.activa {
	border-color: var(--azul-600);
	opacity: 1;
}

.ficha-bloque {
	padding-top: 30px;
	margin-top: 30px;
	border-top: 1px solid var(--gris-200);
}

.ficha-bloque:first-child {
	padding-top: 0;
	margin-top: 0;
	border-top: 0;
}

.ficha-bloque h2 { font-size: 1.32rem; margin-bottom: 16px; }

.ficha-datos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 2px;
	margin: 0;
	background: var(--gris-200);
	border: 1px solid var(--gris-200);
	border-radius: var(--radio);
	overflow: hidden;
}

.ficha-dato {
	background: #fff;
	padding: 14px 16px;
}

.ficha-dato dt {
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--gris-500);
	margin-bottom: 3px;
}

.ficha-dato dd {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--azul-900);
}

.ficha-caracteristicas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 8px 24px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ficha-caracteristicas li {
	position: relative;
	padding-left: 26px;
	color: var(--gris-700);
	font-size: .97rem;
}

.ficha-caracteristicas li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: .55em;
	width: 8px;
	height: 8px;
	border-radius: 2px;
	background: var(--azul-500);
}

/* Lateral */
.ficha-lateral { position: sticky; top: 100px; }

.ficha-contacto-caja {
	background: #fff;
	border: 1px solid var(--gris-200);
	border-top: 3px solid var(--azul-700);
	border-radius: var(--radio-lg);
	padding: 24px 22px;
	box-shadow: var(--sombra);
}

.ficha-contacto-precio {
	font-family: var(--fuente-titulo);
	font-size: 1.65rem;
	font-weight: 700;
	color: var(--azul-800);
	margin: 0;
	line-height: 1.15;
}

.ficha-contacto-estado {
	margin: 2px 0 18px;
	font-size: .85rem;
	color: var(--gris-500);
	letter-spacing: .04em;
	text-transform: uppercase;
	font-weight: 600;
}

.ficha-corredor {
	display: flex;
	flex-direction: column;
	gap: 1px;
	margin: 0 0 16px;
	padding: 12px 14px;
	background: var(--azul-050);
	border-radius: var(--radio);
}

.ficha-corredor span {
	font-size: .74rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--gris-500);
	font-weight: 700;
}

.ficha-corredor strong { color: var(--azul-900); }

.ficha-contacto-nota {
	margin: 8px 0 0;
	font-size: .82rem;
	color: var(--gris-500);
	text-align: center;
}

/* 8. Formularios y contenido ----------------------------- */
.contenido-editor { max-width: 74ch; }

.contenido-editor h2 { margin-top: 1.6em; }
.contenido-editor h3 { margin-top: 1.4em; }
.contenido-editor p { color: var(--gris-700); }
.contenido-editor img { border-radius: var(--radio); }

.contenido-editor blockquote {
	margin: 1.6em 0;
	padding: 4px 0 4px 22px;
	border-left: 3px solid var(--azul-500);
	font-family: var(--fuente-titulo);
	font-size: 1.1rem;
	color: var(--azul-800);
}

.pagina-cuerpo { padding: 44px 0 64px; }
.pagina-portada { margin-top: 32px; }
.pagina-portada img { border-radius: var(--radio-lg); }

.mp-form-wrap { max-width: 640px; }

.mp-form-titulo { margin-bottom: 14px; }

.mp-form-fila {
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin-bottom: 16px;
}

.mp-form-dos {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.mp-form-dos > div {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.mp-form label {
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--gris-500);
}

.mp-form label span { color: #b3261e; }

.mp-form input,
.mp-form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--gris-300);
	border-radius: var(--radio);
	font: inherit;
	font-size: .98rem;
	color: var(--tinta);
	background: #fff;
	transition: border-color var(--transicion), box-shadow var(--transicion);
}

.mp-form input:focus,
.mp-form textarea:focus {
	border-color: var(--azul-500);
	box-shadow: 0 0 0 3px rgba(29, 107, 181, .16);
	outline: none;
}

.mp-form textarea { resize: vertical; min-height: 120px; }

.mp-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.mp-form-nota {
	margin: 12px 0 0;
	font-size: .85rem;
	color: var(--gris-500);
}

.mp-aviso {
	padding: 14px 18px;
	border-radius: var(--radio);
	margin-bottom: 20px;
	font-size: .95rem;
	border: 1px solid;
}

.mp-aviso-ok {
	background: #e8f6ed;
	border-color: #b4dfc5;
	color: #14683a;
}

.mp-aviso-error {
	background: #fdecea;
	border-color: #f3c2bd;
	color: #a3261c;
}

.buscador {
	display: flex;
	gap: 10px;
	max-width: 520px;
	margin: 20px auto;
}

.buscador-input {
	flex: 1;
	padding: 12px 14px;
	border: 1px solid var(--gris-300);
	border-radius: var(--radio);
	font: inherit;
}

/* Contacto */
.contacto-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	gap: 48px;
	padding: 48px 0 64px;
	align-items: start;
}

.contacto-datos {
	background: var(--azul-050);
	border: 1px solid var(--azul-100);
	border-radius: var(--radio-lg);
	padding: 26px 24px;
}

.contacto-datos h2 { font-size: 1.2rem; margin-top: 0; }

.contacto-lista {
	list-style: none;
	margin: 0 0 22px;
	padding: 0;
	display: grid;
	gap: 16px;
}

.contacto-lista li {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.contacto-etiqueta {
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--gris-500);
}

.contacto-lista a {
	font-weight: 600;
	text-decoration: none;
}

.contacto-lista a:hover { text-decoration: underline; }

.contacto-nota {
	margin: 14px 0 0;
	font-size: .85rem;
	color: var(--gris-500);
}

/* Entradas del blog */
.lista-entradas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 24px;
}

.entrada-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--gris-200);
	border-radius: var(--radio-lg);
	overflow: hidden;
	box-shadow: var(--sombra-sm);
}

.entrada-foto {
	display: block;
	aspect-ratio: 16 / 9;
	background: var(--gris-100);
}

.entrada-foto img { width: 100%; height: 100%; object-fit: cover; }

.entrada-cuerpo { padding: 20px; display: flex; flex-direction: column; flex: 1; }

.entrada-fecha {
	margin: 0 0 6px;
	font-size: .78rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--gris-500);
	font-weight: 700;
}

.entrada-titulo { font-size: 1.15rem; margin: 0 0 8px; }
.entrada-titulo a { color: var(--azul-900); text-decoration: none; }
.entrada-titulo a:hover { color: var(--azul-600); }
.entrada-extracto { color: var(--gris-700); font-size: .95rem; }

/* 9. Pie de página --------------------------------------- */
.cta-final {
	background: linear-gradient(140deg, var(--azul-700), var(--azul-900));
	color: #fff;
	padding: 52px 0;
}

.cta-final-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	flex-wrap: wrap;
}

.cta-final h2 { color: #fff; margin: 0 0 8px; }

.cta-final p {
	margin: 0;
	color: rgba(255, 255, 255, .85);
	max-width: 56ch;
}

.cta-final-botones {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

.pie {
	background: var(--azul-900);
	color: rgba(255, 255, 255, .74);
	padding: 52px 0 0;
	font-size: .94rem;
}

.pie-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1.1fr;
	gap: 36px;
	padding-bottom: 40px;
}

.pie h4 {
	color: #fff;
	font-size: .82rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	font-family: var(--fuente-texto);
	margin: 0 0 14px;
}

.pie .marca-nombre { color: #fff; }
.pie .marca-desc { color: rgba(255, 255, 255, .55); }
.pie .custom-logo { filter: brightness(0) invert(1); opacity: .95; }

.pie-texto {
	margin: 14px 0 0;
	max-width: 34ch;
	color: rgba(255, 255, 255, .68);
	font-size: .9rem;
}

.pie-redes {
	display: flex;
	gap: 14px;
	margin-top: 16px;
	flex-wrap: wrap;
}

.pie-redes a {
	color: rgba(255, 255, 255, .8);
	font-size: .85rem;
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, .25);
	padding-bottom: 1px;
}

.pie-redes a:hover { color: #fff; border-color: #fff; }

.pie-menu,
.pie-contacto,
.pie ul.menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 9px;
}

.pie-menu a,
.pie-contacto a,
.pie ul.menu a {
	color: rgba(255, 255, 255, .74);
	text-decoration: none;
}

.pie-menu a:hover,
.pie-contacto a:hover,
.pie ul.menu a:hover { color: #fff; text-decoration: underline; }

.pie-legal {
	border-top: 1px solid rgba(255, 255, 255, .1);
	padding: 18px 0;
	font-size: .82rem;
	color: rgba(255, 255, 255, .5);
}

.pie-legal-inner {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
}

.pie-legal p { margin: 0; }
.pie-nota { max-width: 60ch; }

/* WhatsApp flotante */
.wa-flotante {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 200;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 13px 20px 13px 16px;
	background: var(--verde-wa);
	color: #fff;
	border-radius: 999px;
	text-decoration: none;
	font-weight: 700;
	font-size: .93rem;
	box-shadow: 0 6px 22px rgba(18, 140, 74, .38);
	transition: transform var(--transicion), background var(--transicion);
}

.wa-flotante:hover {
	background: var(--verde-wa-osc);
	color: #fff;
	transform: translateY(-2px);
}

/* 10. Responsive ----------------------------------------- */
@media (max-width: 1024px) {
	.ficha-grid { grid-template-columns: 1fr; gap: 32px; }
	.ficha-lateral { position: static; }
	.ficha-contacto-caja { max-width: 520px; }
	.nosotros-grid { grid-template-columns: 1fr; gap: 32px; }
	.contacto-grid { grid-template-columns: 1fr; gap: 32px; }
	.pie-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
}

@media (max-width: 860px) {
	body { font-size: 16px; }

	.menu-toggle { display: block; }

	.nav-principal {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		background: #fff;
		border-bottom: 1px solid var(--gris-200);
		box-shadow: var(--sombra);
		padding: 12px 24px 20px;
		display: none;
	}

	.menu-abierto .nav-principal { display: flex; }

	.nav-principal .menu {
		flex-direction: column;
		align-items: stretch;
		gap: 2px;
	}

	.nav-principal .menu a {
		padding: 12px 10px;
		border-radius: var(--radio);
	}

	.nav-principal .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border: 0;
		border-left: 2px solid var(--gris-200);
		border-radius: 0;
		padding: 0 0 0 12px;
		margin: 2px 0 2px 10px;
	}

	.btn-cabecera { margin-top: 12px; }

	.hero,
	.hero-alto-compacta,
	.hero-alto-normal { padding: 56px 0 52px; }
	.hero-alto-alta { padding: 76px 0 68px; }
	.seccion { padding: 48px 0; }

	.franja-grid { grid-template-columns: 1fr 1fr; gap: 18px 12px; }
	.franja-item:nth-child(odd) { border-left: 0; }

	.seccion-head { flex-direction: column; align-items: flex-start; }

	.ficha-encabezado { flex-direction: column; align-items: flex-start; }
	.ficha-precio-caja { align-items: flex-start; }

	.mp-form-dos { grid-template-columns: 1fr; gap: 16px; }

	.listado-barra { flex-direction: column; align-items: flex-start; }

	.wa-flotante {
		right: 14px;
		bottom: 14px;
		padding: 13px;
	}

	.wa-flotante-texto { display: none; }
}

@media (max-width: 560px) {
	.contenedor { padding: 0 18px; }
	.pie-grid { grid-template-columns: 1fr; gap: 28px; }
	.barra-superior-inner { justify-content: center; text-align: center; }
	.barra-horario { display: none; }
	.filtros-fila { grid-template-columns: 1fr; }
	.mp-grid-props { gap: 18px; }
	.cta-final-botones { width: 100%; }
	.cta-final-botones .btn { flex: 1; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

@media print {
	.barra-superior, .cabecera, .pie, .cta-final, .wa-flotante,
	.filtros, .listado-barra, .ficha-lateral { display: none !important; }
	body { font-size: 12pt; }
}
