/* ============================================================
   SAGASTA · Patrimonio Inmobiliario — demo funcional Librería GAB
   PIEL v3 (27/07): estructura compositiva de FINDERO (hero foto +
   tarjeta-buscador solapada, puertas de entrada con contador, stats
   con iconos de línea, islas de conversión, franja CTA, footer de 4
   columnas) con PALETA PROPIA — nada de copiar su navy+amarillo.

   Dos tintas y solo dos, medidas (WCAG):
     ciruela  #2B1830 / blanco 16.46 · / lino #F7F3F5 14.96
     ciruela-osc #1E1023 / blanco 18.20
     muted    #5F5064 / blanco 7.45 · / lino 6.78
     blanco / ciruela 16.46 · malva claro #CDBFD2 / ciruela 9.39
     ALBARICOQUE #FF9B57 = único color de acción. Siempre con texto
       ciruela encima (7.90) o como texto sobre ciruela (7.90).
       Hover #FA8F52 (7.14). PROHIBIDO como texto sobre claro (2.3).
     Para texto de acento sobre claro: teja #B4471A (5.44).
   ============================================================ */

body.gab-dinmo {
	--tinta: #2B1830;
	--tinta-osc: #1E1023;
	--blanco: #FFFFFF;
	--lino: #F7F3F5;
	--muted: #5F5064;
	--acento: #FF9B57;
	--acento-osc: #FA8F52;
	--teja: #B4471A;
	--claro-tinta: #CDBFD2;
	--borde: rgba(43, 24, 48, 0.14);
	--sombra: 0 10px 30px rgba(43, 24, 48, 0.10);
	--sombra-alta: 0 18px 44px rgba(43, 24, 48, 0.18);
	--display: "Fraunces", Georgia, serif;
	--sans: "Hanken Grotesk", system-ui, sans-serif;
	--mono: "IBM Plex Mono", ui-monospace, monospace;
	--maxw: 1180px;
	/* Relleno lateral que alinea CUALQUIER barra a sangre completa con el
	   contenido de las secciones. Una sola definición: la topbar y la
	   cabecera se desalinearon (41 px) por calcular lo mismo de dos
	   maneras distintas. */
	--relleno-marco: max(clamp(1.1rem, 4vw, 2.6rem), calc((100% - 1180px) / 2));
	--radio: 14px;
	--d1: 180ms;
	--d2: 300ms;
	--ease: cubic-bezier(0.22, 0.61, 0.36, 1);

	/* Piel de las piezas GAB */
	--gab-fac-acento: var(--tinta);
	--gab-fac-borde: var(--borde);
	--gab-sol-acento: var(--tinta);
	--gab-sol-borde: var(--borde);
	--gab-ficha-borde: var(--borde);
	--gab-ficha-suave: var(--muted);
	--gab-ficha-acento: var(--tinta);
	--gab-ficha-panel: var(--lino);

	margin: 0;
	background: var(--blanco);
	color: var(--tinta);
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.65;
	overflow-x: clip;
	-webkit-font-smoothing: antialiased;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 96px;
	overflow-x: clip;
}

body.gab-dinmo ::selection {
	background: var(--tinta);
	color: var(--acento);
}

body.gab-dinmo a {
	color: var(--tinta);
}

body.gab-dinmo #ast-scroll-top {
	display: none !important;
}

/* Foco visible: ciruela sobre claro, albaricoque sobre las islas. */
body.gab-dinmo a:focus-visible,
body.gab-dinmo button:focus-visible,
body.gab-dinmo input:focus-visible,
body.gab-dinmo select:focus-visible,
body.gab-dinmo textarea:focus-visible {
	outline: 3px solid var(--tinta);
	outline-offset: 3px;
}

body.gab-dinmo .dinmo-banner a:focus-visible,
body.gab-dinmo .dinmo-hero a:focus-visible,
body.gab-dinmo .dinmo-cierre__texto a:focus-visible,
body.gab-dinmo .dinmo-footer a:focus-visible {
	outline-color: var(--acento);
}

/* Saltar al contenido */
.gab-dinmo .dinmo-saltar {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 60;
	padding: 0.9rem 1.4rem;
	background: var(--tinta-osc);
	color: var(--blanco);
	font-family: var(--mono);
	font-size: 0.85rem;
}

.gab-dinmo .dinmo-saltar:focus-visible {
	left: 12px;
	top: 12px;
	outline-color: var(--acento);
}

/* ---------- Banner de demo ---------- */
.gab-dinmo .dinmo-banner {
	margin: 0;
	padding: 0.55rem 1rem;
	background: var(--tinta-osc);
	color: var(--blanco);
	font-family: var(--mono);
	font-size: 0.78rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-align: center;
}

.gab-dinmo .dinmo-banner a {
	color: var(--acento);
	text-underline-offset: 3px;
}

/* ---------- Cabecera ---------- */
.gab-dinmo .dinmo-header {
	position: sticky;
	top: 0;
	z-index: 50;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	/* El relleno lateral crece hasta alinear el logo y el menú con el
	   contenedor de las secciones (--maxw). Antes la cabecera iba a sangre
	   completa mientras las secciones y la barra de datos iban a 1180 px:
	   el logo quedaba 137 px por fuera a cada lado y se leía como "logo y
	   menú demasiado separados". Sin envoltorio extra en el HTML. */
	padding: 0.55rem var(--relleno-marco);
	/* Fondo SÓLIDO a propósito. Antes era rgba(...,0.94) + backdrop-filter:
	   blur(8px), y eso costaba dos cosas medidas el 28/07/2026:
	     · TIRONES AL SCROLLEAR — el navegador recompone el desenfoque de
	       todo lo que pasa bajo la cabecera en cada fotograma; es de los
	       efectos más caros que existen y se nota justo al salir del hero.
	     · LOGO BORROSO — el backdrop-filter promueve la cabecera a su
	       propia capa de composición y el texto de encima se rasteriza
	       ahí, perdiendo nitidez.
	   A 0.94 de opacidad el desenfoque casi no se veía: se pagaba el coste
	   sin recibir el efecto. Con blanco sólido se gana fluidez, nitidez y
	   contraste garantizado. (La guía §1.3 ya avisa del blur en cabeceras.) */
	background: #FFFFFF;
	border-bottom: 1px solid var(--borde);
}

.gab-dinmo .dinmo-marca {
	display: inline-flex;
	flex-direction: column;
	gap: 0.1rem;
	padding: 0.35rem 0;
	min-height: 46px;
	justify-content: center;
	text-decoration: none;
	color: var(--tinta);
	font-family: var(--display);
	font-weight: 700;
	font-size: 1.35rem;
	letter-spacing: 0.18em;
	line-height: 1;
	white-space: nowrap;
}

/* Firma tipográfica al precio de una letra: la última A, invertida. */
.gab-dinmo .dinmo-marca__a {
	display: inline-block;
	transform: rotate(180deg);
	translate: 0 -2px;
}

.gab-dinmo .dinmo-marca__bajo {
	font-family: var(--mono);
	font-size: 0.78rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--muted);
}

.gab-dinmo .dinmo-nav {
	display: flex;
	align-items: center;
	gap: clamp(0.2rem, 1.5vw, 1rem);
}

.gab-dinmo .dinmo-nav a {
	display: inline-flex;
	align-items: center;
	min-height: 46px;
	padding: 0 0.7rem;
	font-family: var(--sans);
	font-weight: 700;
	font-size: 0.86rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--tinta);
	border-radius: 10px;
	transition: background var(--d1) var(--ease);
}

.gab-dinmo .dinmo-nav a:hover {
	background: var(--lino);
}

.gab-dinmo .dinmo-nav__cta {
	background: var(--acento);
	padding: 0 1.2rem !important;
}

.gab-dinmo .dinmo-nav__cta:hover {
	background: var(--acento-osc) !important;
}

/* ---------- Hamburguesa (solo con JS y por debajo de 860px) ---------- */
.gab-dinmo .dinmo-hamburguesa {
	display: none;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: var(--tinta);
	cursor: pointer;
}

.gab-dinmo .dinmo-hamburguesa__caja {
	display: grid;
	gap: 5px;
	width: 24px;
}

.gab-dinmo .dinmo-hamburguesa__barra {
	display: block;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
	transition: transform var(--d1) var(--ease), opacity var(--d1) var(--ease);
}

/* Las tres barras se cruzan en aspa al abrir. */
.gab-dinmo.dinmo-menu-abierto .dinmo-hamburguesa__barra:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.gab-dinmo.dinmo-menu-abierto .dinmo-hamburguesa__barra:nth-child(2) {
	opacity: 0;
}

.gab-dinmo.dinmo-menu-abierto .dinmo-hamburguesa__barra:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

@media (max-width: 860px) {
	/* Sin JS el nav se queda desplegado: que envuelva en vez de cortarse. */
	.gab-dinmo .dinmo-header {
		flex-wrap: wrap;
	}

	.gab-dinmo .dinmo-nav {
		flex-wrap: wrap;
	}

	.gab-dinmo.js-on .dinmo-hamburguesa {
		display: inline-flex;
	}

	/* Con JS: el nav es un panel desplegable bajo la cabecera. */
	.gab-dinmo.js-on .dinmo-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		display: none;
		flex-direction: column;
		align-items: stretch;
		gap: 0.25rem;
		padding: 0.8rem clamp(1.1rem, 4vw, 2.6rem) 1.4rem;
		background: var(--tinta);
		box-shadow: var(--sombra-alta);
	}

	.gab-dinmo.js-on.dinmo-menu-abierto .dinmo-nav {
		display: flex;
	}

	.gab-dinmo.js-on .dinmo-nav a {
		min-height: 54px;
		justify-content: flex-start;
		padding: 0 1rem;
		font-size: 1rem;
		color: var(--blanco);
		border-radius: 10px;
	}

	.gab-dinmo.js-on .dinmo-nav a:hover {
		background: rgba(255, 255, 255, 0.10);
	}

	.gab-dinmo.js-on .dinmo-nav a:focus-visible {
		outline-color: var(--acento);
	}

	.gab-dinmo.js-on .dinmo-nav__cta {
		margin-top: 0.4rem;
		justify-content: center !important;
		color: var(--tinta) !important;
	}

	.gab-dinmo.js-on .dinmo-nav__cta:hover {
		background: var(--acento-osc) !important;
		color: var(--tinta) !important;
	}

	/* Con el panel abierto no se scrollea el fondo. */
	.gab-dinmo.dinmo-menu-abierto {
		overflow: hidden;
	}
}

/* ---------- Utilidades ---------- */
.gab-dinmo .dinmo-marco {
	width: min(var(--maxw), calc(100% - 44px));
	margin-inline: auto;
}

.gab-dinmo .dinmo-eyebrow {
	margin: 0 0 1.1rem;
	font-family: var(--mono);
	font-size: 0.8rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--teja);
}

.gab-dinmo .dinmo-eyebrow--hero {
	color: var(--acento);
	text-shadow: 0 1px 10px rgba(30, 16, 35, 0.75);
}

/* LA COTA — firma de la demo: línea de medición con testigos y
   etiqueta mono. Eco en hero, secciones, plano y aside de la ficha. */
.gab-dinmo .dinmo-cota {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin: 1.8rem 0;
	font-family: var(--mono);
	font-size: 0.8rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--teja);
}

.gab-dinmo .dinmo-cota::before,
.gab-dinmo .dinmo-cota::after {
	content: "";
	flex: 1 1 2rem;
	height: 9px;
	background: linear-gradient(
		to bottom,
		transparent calc(50% - 0.5px),
		currentColor calc(50% - 0.5px) calc(50% + 0.5px),
		transparent calc(50% + 0.5px)
	);
}

.gab-dinmo .dinmo-cota::before {
	border-left: 1px solid currentColor;
}

.gab-dinmo .dinmo-cota::after {
	border-right: 1px solid currentColor;
}

.gab-dinmo .dinmo-cota--hero {
	color: var(--acento);
	max-width: 430px;
}

.gab-dinmo .dinmo-cota--seccion {
	margin: 0.4rem 0 2.6rem;
	max-width: 560px;
}

/* Botón de la casa: el albaricoque es el ÚNICO color de acción. */
.gab-dinmo .dinmo-boton,
.gab-dinmo .gab-fac__filtrar,
.gab-dinmo .gab-fac__mapa-boton,
.gab-dinmo .gab-sol button[type="submit"],
.gab-dinmo .gab-ficha-barra__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0.7rem 1.7rem;
	border: 0;
	border-radius: 10px;
	background: var(--acento);
	color: var(--tinta);
	font-family: var(--sans);
	font-weight: 700;
	font-size: 0.88rem;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background var(--d1) var(--ease), transform var(--d1) var(--ease);
}

.gab-dinmo .dinmo-boton:hover,
.gab-dinmo .gab-fac__filtrar:hover,
.gab-dinmo .gab-fac__mapa-boton:hover,
.gab-dinmo .gab-sol button[type="submit"]:hover,
.gab-dinmo .gab-ficha-barra__cta:hover {
	background: var(--acento-osc);
	color: var(--tinta);
	transform: translateY(-1px);
}

/* ---------- Hero fotográfico con tarjeta-buscador solapada ---------- */
.gab-dinmo .dinmo-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: min(88svh, 820px);
	padding-top: clamp(90px, 12vw, 150px);
	color: var(--blanco);
}

.gab-dinmo .dinmo-hero__fondo {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.gab-dinmo .dinmo-hero__foto {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.gab-dinmo .dinmo-hero__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(30, 16, 35, 0.62) 0%,
		rgba(30, 16, 35, 0.30) 42%,
		rgba(30, 16, 35, 0.86) 100%
	);
}

.gab-dinmo .dinmo-hero__contenido {
	position: relative;
	z-index: 2;
}

.gab-dinmo .dinmo-hero__titulo {
	margin: 0;
	font-family: var(--display);
	font-weight: 600;
	font-size: clamp(2.7rem, 6.2vw, 4.9rem);
	line-height: 1.04;
	letter-spacing: 0.005em;
	/* Explícito: Astra pinta los h1 con su propio color y la herencia
	   del section no llega (misma lección que los labels del form). */
	color: var(--blanco);
	text-wrap: balance;
	text-shadow: 0 2px 24px rgba(30, 16, 35, 0.45);
}

.gab-dinmo .dinmo-hero__lede {
	max-width: 34rem;
	margin: 1.3rem 0 0;
	font-size: 1.14rem;
	/* Blanco pleno sobre el scrim navy: el gris claro se perdía sobre foto. */
	color: var(--blanco);
	text-shadow: 0 1px 12px rgba(30, 16, 35, 0.55);
}

.gab-dinmo .dinmo-hero__tarjeta {
	position: relative;
	z-index: 3;
	margin-top: 2.2rem;
	margin-bottom: -58px;
}

/* La tarjeta blanca solapada del buscador (Findero de libro). */
.gab-dinmo .dinmo-buscar {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	gap: 1rem;
	padding: 1.4rem 1.5rem;
	background: var(--blanco);
	border-radius: var(--radio);
	box-shadow: var(--sombra-alta);
}

.gab-dinmo .dinmo-buscar__campo {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	flex: 1 1 170px;
}

.gab-dinmo .dinmo-buscar label {
	font-family: var(--mono);
	font-size: 0.78rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--muted);
}

.gab-dinmo .dinmo-buscar select {
	min-height: 52px;
	padding: 0.55rem 0.7rem;
	border: 1.5px solid var(--borde);
	border-radius: 10px;
	background: var(--lino);
	color: var(--tinta);
	font-family: var(--sans);
	font-size: 1rem;
}

.gab-dinmo .dinmo-buscar .dinmo-boton {
	flex: 0 0 auto;
	min-height: 52px;
}

/* Skyline line-art (guiño al Pilar) sobre las islas oscuras. */
.gab-dinmo .dinmo-skyline {
	display: block;
	width: min(920px, 92%);
	margin: 0 auto;
	color: var(--claro-tinta);
}

/* Iconos de línea (cosecha Findero: iconografía coherente, no stock). */
.gab-dinmo .dinmo-icono {
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
}

.gab-dinmo .dinmo-icono--grande {
	width: 38px;
	height: 38px;
	color: var(--tinta);
}

/* ---------- Puertas de entrada por tipo, con contador ---------- */
.gab-dinmo .dinmo-puertas-seccion {
	background: var(--blanco);
	padding: clamp(110px, 13vw, 165px) 0 clamp(24px, 3vw, 40px);
}

.gab-dinmo .dinmo-puertas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 1rem;
	margin: 2rem 0 0;
	padding: 0;
	list-style: none;
}

.gab-dinmo .dinmo-puerta__enlace {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.45rem;
	padding: 1.7rem 1rem;
	background: var(--lino);
	border-radius: var(--radio);
	border: 1.5px solid transparent;
	text-decoration: none;
	color: var(--tinta);
	text-align: center;
	transition: border-color var(--d1) var(--ease), background var(--d1) var(--ease), transform var(--d1) var(--ease);
}

.gab-dinmo .dinmo-puerta__enlace:hover {
	background: var(--blanco);
	border-color: var(--acento);
	transform: translateY(-3px);
}

/* El icono se tiñe de acento al pasar: el eco del color de acción. */
.gab-dinmo .dinmo-puerta__enlace:hover .dinmo-icono--grande {
	color: var(--teja);
}

.gab-dinmo .dinmo-puerta__nombre {
	font-family: var(--display);
	font-weight: 600;
	font-size: 1.12rem;
}

.gab-dinmo .dinmo-puerta__cuenta {
	font-family: var(--mono);
	font-size: 0.8rem;
	color: var(--muted);
}

/* ---------- Franja de criterio ---------- */
.gab-dinmo .dinmo-criterio {
	background: var(--blanco);
	padding: clamp(56px, 7vw, 90px) 0 clamp(40px, 5vw, 64px);
}

.gab-dinmo .dinmo-criterio__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: center;
}

.gab-dinmo .dinmo-criterio__texto {
	margin: 0;
	font-family: var(--display);
	font-weight: 500;
	font-size: clamp(1.3rem, 2.4vw, 1.7rem);
	line-height: 1.5;
}

.gab-dinmo .dinmo-criterio__texto em {
	font-style: italic;
	color: var(--teja);
}

.gab-dinmo .dinmo-criterio__cifras {
	display: grid;
	gap: 1.1rem;
	margin: 0;
	padding: 0 0 0 clamp(1rem, 3vw, 2rem);
	list-style: none;
	border-left: 2px solid var(--acento);
}

.gab-dinmo .dinmo-criterio__cifra {
	display: block;
	font-family: var(--display);
	font-weight: 700;
	font-size: clamp(2rem, 4vw, 2.7rem);
	line-height: 1;
}

.gab-dinmo .dinmo-criterio__unidad {
	font-size: 0.55em;
}

.gab-dinmo .dinmo-criterio__pie {
	font-family: var(--mono);
	font-size: 0.78rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--muted);
}

/* ---------- Secciones ---------- */
.gab-dinmo .dinmo-seccion {
	padding: clamp(72px, 9vw, 120px) 0;
}

.gab-dinmo .dinmo-h2 {
	margin: 0 0 0.6rem;
	font-family: var(--display);
	font-weight: 600;
	font-size: clamp(2.1rem, 4.6vw, 3.2rem);
	line-height: 1.08;
}

.gab-dinmo .dinmo-h2__num {
	font-family: var(--mono);
	font-size: 0.44em;
	letter-spacing: 0.1em;
	color: var(--teja);
	vertical-align: 0.6em;
	margin-right: 0.4rem;
}

.gab-dinmo .dinmo-h2--claro {
	color: var(--blanco);
}

.gab-dinmo .dinmo-h2--centrado {
	text-align: center;
}

/* La ∀ del wordmark, en el color de acción (firma al precio de una letra). */
.gab-dinmo .dinmo-marca .dinmo-marca__a {
	color: var(--teja);
}

.gab-dinmo .dinmo-h2--claro .dinmo-h2__num {
	color: var(--acento);
}

/* ---------- Catálogo: piel de gab-facetas ---------- */
.gab-dinmo #catalogo {
	background: var(--lino);
}

.gab-dinmo #catalogo .dinmo-cota--seccion {
	color: var(--muted);
}

.gab-dinmo .gab-fac {
	display: grid;
	grid-template-columns: 300px minmax(0, 1fr);
	gap: 2.2rem;
	align-items: start;
}

.gab-dinmo .gab-fac__filtros {
	position: sticky;
	top: 96px;
	padding: 1.4rem;
	background: var(--blanco);
	border: 0;
	border-radius: var(--radio);
	box-shadow: var(--sombra);
}

.gab-dinmo .gab-fac__filtros label:not(.gab-fac__opcion),
.gab-dinmo .gab-fac__grupo legend {
	font-family: var(--mono);
	font-size: 0.78rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--muted);
}

.gab-dinmo .gab-fac__grupo {
	border: 0;
	border-top: 1px solid var(--borde);
	margin: 1.1rem 0 0;
	padding: 0.9rem 0 0;
}

.gab-dinmo .gab-fac__grupo legend {
	padding: 0 0 0.3rem;
}

.gab-dinmo .gab-fac__opcion {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	/* 46 y no 44: el subpíxel del navegador deja 44px en 43,99 medidos. */
	min-height: 46px;
	font-size: 0.98rem;
}

.gab-dinmo .gab-fac__opcion input {
	width: 19px;
	height: 19px;
	accent-color: var(--tinta);
}

.gab-dinmo .gab-fac__cuenta {
	color: var(--muted);
	font-family: var(--mono);
	font-size: 0.82rem;
}

.gab-dinmo .gab-fac__opcion--cero {
	opacity: 0.45;
}

.gab-dinmo .gab-fac__campo input[type="search"],
.gab-dinmo .gab-fac__campo select {
	width: 100%;
	min-height: 48px;
	padding: 0.5rem 0.65rem;
	border: 1.5px solid var(--borde);
	border-radius: 10px;
	background: var(--lino);
	color: var(--tinta);
	font-family: var(--sans);
	font-size: 1rem;
	box-sizing: border-box;
}

.gab-dinmo .gab-fac__acciones {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin: 1.2rem 0 0;
}

.gab-dinmo .gab-fac__limpiar {
	display: inline-flex;
	align-items: center;
	min-height: 46px;
	color: var(--tinta);
	font-weight: 600;
}

.gab-dinmo .gab-fac__resumen {
	font-family: var(--mono);
	font-size: 0.85rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--muted);
}

/* Mapa */
.gab-dinmo .gab-fac__mapa {
	border: 0;
	border-radius: var(--radio);
	overflow: hidden;
	background: var(--blanco);
	box-shadow: var(--sombra);
	margin-bottom: 1.6rem;
}

.gab-dinmo .gab-fac__mapa-texto {
	color: var(--muted);
	max-width: 40rem;
}

.gab-dinmo .gab-fac__pin {
	background: var(--acento);
	border: 3px solid var(--tinta);
	box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.9);
}

/* Tarjetas de inmueble: foto + badge + stats con iconos (Findero). */
.gab-dinmo .gab-fac__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1.6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gab-dinmo .dinmo-card {
	margin: 0;
}

.gab-dinmo .dinmo-card__enlace {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--blanco);
	border-radius: var(--radio);
	overflow: hidden;
	box-shadow: var(--sombra);
	text-decoration: none;
	color: var(--tinta);
	transition: box-shadow var(--d2) var(--ease), transform var(--d2) var(--ease);
	box-sizing: border-box;
}

.gab-dinmo .dinmo-card__enlace:hover {
	transform: translateY(-5px);
	box-shadow: var(--sombra-alta);
}

.gab-dinmo .dinmo-card__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--lino);
}

.gab-dinmo .dinmo-card__foto {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform var(--d2) var(--ease);
}

/* Micro-interacción estrella: la foto respira al pasar. */
.gab-dinmo .dinmo-card__enlace:hover .dinmo-card__foto {
	transform: scale(1.05);
}

.gab-dinmo .dinmo-card__media .dinmo-plano__svg {
	width: 100%;
	height: 100%;
	color: var(--tinta);
}

/* Badge de tipo en acento (el "For Sale/For Rent" de Findero). */
.gab-dinmo .dinmo-card__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	padding: 0.32rem 0.7rem;
	background: var(--acento);
	color: var(--tinta);
	border-radius: 7px;
	font-family: var(--sans);
	font-weight: 700;
	font-size: 0.8rem;
	letter-spacing: 0.04em;
}

/* Opaco a propósito: sobre una foto clara, un fondo con alfa dejaba el
   texto en 1.1:1 real. Opaco = 18.2:1 y además medible. */
/* El chip de referencia vive ABAJO a la derecha desde el 28/07/2026: la
   esquina superior derecha se la queda el badge de situación, que es lo
   que decide una compra. Antes compartían `top:12px; right:12px` y el
   chip (ciruela oscuro) asomaba por detrás como una banda sucia. */
.gab-dinmo .dinmo-card__chip {
	position: absolute;
	bottom: 12px;
	right: 12px;
	padding: 0.32rem 0.62rem;
	background: var(--tinta-osc);
	color: var(--blanco);
	border-radius: 7px;
	font-family: var(--mono);
	font-size: 0.8rem;
	letter-spacing: 0.08em;
}

.gab-dinmo .dinmo-card__cuerpo {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	flex: 1;
	padding: 1.1rem 1.2rem 0;
}

.gab-dinmo .dinmo-card__titulo {
	font-family: var(--display);
	font-weight: 600;
	font-size: 1.26rem;
	line-height: 1.25;
}

.gab-dinmo .dinmo-card__zona {
	color: var(--muted);
	font-size: 0.92rem;
}

.gab-dinmo .dinmo-card__precio {
	margin-top: 0.35rem;
	font-family: var(--display);
	font-weight: 700;
	font-size: 1.45rem;
	line-height: 1.1;
}

/* Fila de datos duros con iconos, separada por hairline (Findero). */
.gab-dinmo .dinmo-card__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1rem;
	margin-top: auto;
	padding: 0.85rem 0 1.1rem;
	border-top: 1px solid var(--borde);
}

.gab-dinmo .dinmo-card__stats {
	margin-top: 0.95rem;
}

.gab-dinmo .dinmo-card__stat {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.88rem;
	color: var(--muted);
}

.gab-dinmo .dinmo-card__stat .dinmo-icono {
	color: var(--teja);
	width: 18px;
	height: 18px;
}

.gab-dinmo .gab-fac__vacio {
	padding: 2rem;
	background: var(--blanco);
	border-radius: var(--radio);
	box-shadow: var(--sombra);
}

/* Paginación */
.gab-dinmo .gab-fac__paginacion ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	margin: 1.8rem 0 0;
	padding: 0;
}

.gab-dinmo .gab-fac__paginacion a,
.gab-dinmo .gab-fac__paginacion span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 46px;
	min-height: 46px;
	padding: 0 0.8rem;
	border-radius: 10px;
	background: var(--blanco);
	box-shadow: var(--sombra);
	font-family: var(--sans);
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
	color: var(--tinta);
}

.gab-dinmo .gab-fac__paginacion .current {
	background: var(--tinta);
	color: var(--blanco);
}

/* ---------- Franja vender: banda de ancho completo (Findero) ----------
   En claro a propósito: con el cierre y el pie en ciruela, tres bloques
   oscuros seguidos se leían como una sola mancha morada. */
.gab-dinmo .dinmo-vender {
	background: var(--blanco);
	color: var(--tinta);
	padding: clamp(40px, 5vw, 60px) 0 clamp(56px, 7vw, 86px);
}

/* ⚠️ El SVG del skyline ya lleva `opacity="0.28"` DENTRO del path, así que
   el alfa del color se MULTIPLICA por él. Con rgba(...,0.20) el alfa
   efectivo era 0.056 —un 5,6 %, contraste 1.04:1 sobre blanco— y la línea
   sencillamente no se veía: no era una textura sutil, era una textura
   ausente. A 0.70 el efectivo queda en ~0.20, que sí se lee como trazo
   deliberado sin competir con el titular. */
.gab-dinmo .dinmo-vender .dinmo-skyline {
	margin-bottom: clamp(28px, 4vw, 44px);
	color: rgba(43, 24, 48, 0.70);
}

.gab-dinmo .dinmo-vender__grid {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.6rem 2.4rem;
}

.gab-dinmo .dinmo-vender__grid > div {
	flex: 1 1 26rem;
}

/* El CTA cierra la columna de texto y arranca en el mismo borde que el
   titular y el párrafo: es el final del argumento, no un elemento suelto. */
.gab-dinmo .dinmo-vender__texto-col .dinmo-boton {
	margin-top: 1.6rem;
}

/* La única sección de la página sin imagen, y encima es el segundo CTA en
   importancia (captar vendedores es la mitad del negocio de una API). Se
   le da un ancla visual del mismo peso que el resto. */
.gab-dinmo .dinmo-vender__media {
	flex: 1 1 22rem;
	max-width: 30rem;
	margin: 0;
	border-radius: var(--radio);
	overflow: hidden;
	box-shadow: var(--sombra);
}

.gab-dinmo .dinmo-vender__media img {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.gab-dinmo .dinmo-vender__pie {
	margin: 0.6rem 0 0;
	color: var(--muted);
	font-size: 0.82rem;
}

@media (max-width: 860px) {
	.gab-dinmo .dinmo-vender__media {
		max-width: none;
	}
}

.gab-dinmo .dinmo-vender__grid .dinmo-h2 {
	font-size: clamp(1.7rem, 3.4vw, 2.5rem);
}

.gab-dinmo .dinmo-vender__texto {
	max-width: 38rem;
	margin: 0.8rem 0 0;
	font-size: 1.06rem;
	color: var(--muted);
}

/* ---------- Cierre: isla de conversión con la solicitud ---------- */
.gab-dinmo .dinmo-cierre {
	background: var(--tinta);
	color: var(--blanco);
	padding: clamp(48px, 6vw, 72px) 0 clamp(84px, 10vw, 130px);
}

.gab-dinmo .dinmo-cierre .dinmo-skyline {
	margin-bottom: clamp(40px, 6vw, 72px);
}

/* Dos columnas: el argumento a la izquierda, el formulario en tarjeta
   blanca a la derecha. Antes el form iba solo a la izquierda y dejaba
   media pantalla vacía. */
.gab-dinmo .dinmo-cierre__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 560px);
	gap: clamp(2.5rem, 6vw, 5rem);
	align-items: start;
}

.gab-dinmo .dinmo-cierre__lede {
	max-width: 34rem;
	margin: 0.8rem 0 2.2rem;
	color: var(--claro-tinta);
	font-size: 1.1rem;
}

/* Qué pasa después de enviar: tres pasos numerados. */
.gab-dinmo .dinmo-pasos {
	display: grid;
	gap: 1.1rem;
	margin: 0 0 2.4rem;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

.gab-dinmo .dinmo-paso {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	max-width: 32rem;
}

.gab-dinmo .dinmo-paso__num {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1.5px solid var(--acento);
	color: var(--acento);
	font-family: var(--mono);
	font-size: 0.82rem;
}

.gab-dinmo .dinmo-paso__texto {
	color: var(--claro-tinta);
	font-size: 1rem;
	line-height: 1.55;
}

.gab-dinmo .dinmo-paso__texto strong {
	color: var(--blanco);
	font-weight: 600;
}

.gab-dinmo .dinmo-cierre__contacto {
	display: grid;
	gap: 0.1rem;
	margin: 0 0 1rem;
	padding: 1.6rem 0 0;
	border-top: 1px solid rgba(205, 191, 210, 0.28);
	list-style: none;
}

.gab-dinmo .dinmo-cierre__contacto li {
	display: flex;
	align-items: center;
	gap: 0.7rem;
}

.gab-dinmo .dinmo-cierre__contacto .dinmo-icono {
	color: var(--acento);
}

.gab-dinmo .dinmo-cierre__contacto a {
	display: flex;
	align-items: center;
	min-height: 46px;
	flex: 1;
	color: var(--blanco);
	font-size: 1.05rem;
	text-decoration: none;
}

.gab-dinmo .dinmo-cierre__contacto a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.gab-dinmo .dinmo-cierre__dir {
	margin: 0;
	color: var(--claro-tinta);
	font-size: 0.95rem;
}

.gab-dinmo .dinmo-cierre__foto {
	margin: 2rem 0 0;
	border-radius: var(--radio);
	overflow: hidden;
	aspect-ratio: 16 / 9;
}

.gab-dinmo .dinmo-cierre__imagen {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* El formulario, en tarjeta blanca: se lee mejor que sobre la ciruela
   y ancla la columna derecha. */
.gab-dinmo .dinmo-cierre__form {
	padding: clamp(1.4rem, 3vw, 2rem);
	background: var(--blanco);
	border-radius: var(--radio);
	box-shadow: var(--sombra-alta);
}

/* Solicitudes: piel clara por defecto. El color va EXPLÍCITO en cada
   elemento de texto: Astra pinta labels/legends con su pizarra propia y
   la herencia no basta (lección Coso, confirmada midiendo). */
.gab-dinmo .gab-sol,
.gab-dinmo .gab-sol label,
.gab-dinmo .gab-sol legend,
.gab-dinmo .gab-sol span,
.gab-dinmo .gab-sol p {
	color: var(--tinta);
}

.gab-dinmo .gab-sol label,
.gab-dinmo .gab-sol legend {
	font-weight: 600;
}

.gab-dinmo .gab-sol .gab-sol__radio,
.gab-dinmo .gab-sol .gab-sol__consentimiento,
.gab-dinmo .gab-sol .gab-sol__consentimiento label {
	min-height: 46px;
	display: flex;
	align-items: center;
}

.gab-dinmo .gab-sol input,
.gab-dinmo .gab-sol select,
.gab-dinmo .gab-sol textarea {
	background: var(--lino);
	border: 1.5px solid var(--borde);
	border-radius: 10px;
	color: var(--tinta);
	font-family: var(--sans);
	font-size: 1rem;
}

/* …y variante para la isla ciruela. */
/* Desde la v1.3.0 el formulario del cierre va en tarjeta BLANCA, así
   que hereda la piel clara y no necesita variante invertida. Solo se
   apagan los inputs un punto para separarlos del blanco de la tarjeta. */
.gab-dinmo .dinmo-cierre .gab-sol input,
.gab-dinmo .dinmo-cierre .gab-sol select,
.gab-dinmo .dinmo-cierre .gab-sol textarea {
	background: var(--lino);
}

/* ---------- Ficha de inmueble ---------- */
.gab-dinmo .dinmo-fhero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: min(62svh, 560px);
	color: var(--blanco);
	background: var(--tinta);
	overflow: hidden;
}

.gab-dinmo .dinmo-fhero__foto {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gab-dinmo .dinmo-fhero__plano-fallback {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	background: var(--lino);
}

.gab-dinmo .dinmo-fhero__plano-fallback .dinmo-plano__svg {
	width: min(520px, 80%);
	color: var(--tinta);
}

/* Más carga abajo que arriba, pero nunca por debajo de 0.45: hay fotos
   de interior muy claras y el eyebrow en albaricoque se perdía. */
.gab-dinmo .dinmo-fhero__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(30, 16, 35, 0.45) 0%,
		rgba(30, 16, 35, 0.45) 35%,
		rgba(30, 16, 35, 0.88) 100%
	);
}

.gab-dinmo .dinmo-fhero__texto {
	position: relative;
	z-index: 2;
	padding: clamp(100px, 14vw, 170px) 0 clamp(80px, 9vw, 120px);
}

.gab-dinmo .dinmo-fhero__titulo {
	margin: 0;
	font-family: var(--display);
	font-weight: 600;
	font-size: clamp(2.2rem, 5vw, 3.9rem);
	line-height: 1.08;
	color: var(--blanco);
	text-wrap: balance;
	text-shadow: 0 2px 20px rgba(30, 16, 35, 0.5);
}

.gab-dinmo .dinmo-fhero__lede {
	max-width: 36rem;
	margin: 1.1rem 0 0;
	font-size: 1.1rem;
	color: var(--blanco);
	text-shadow: 0 1px 12px rgba(30, 16, 35, 0.55);
}

/* Barra de datos clave: tarjeta blanca solapada bajo el hero (Findero). */
.gab-dinmo .gab-ficha-barra {
	position: relative;
	z-index: 3;
	margin-top: -52px;
	background: var(--blanco);
	border: 0;
	border-radius: var(--radio);
	box-shadow: var(--sombra-alta);
	padding: 1.2rem 1.5rem;
}

.gab-dinmo .gab-ficha-barra__destacado {
	font-family: var(--display);
	font-weight: 700;
	font-size: 2rem;
}

.gab-dinmo .gab-ficha-barra__dato-clave {
	font-family: var(--mono);
	font-size: 0.78rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--muted);
}

.gab-dinmo .gab-ficha-barra__dato-valor {
	font-family: var(--display);
	font-weight: 600;
	font-size: 1.3rem;
}

/* Cuerpo de la ficha */
.gab-dinmo .dinmo-ficha-cuerpo {
	padding-top: clamp(48px, 6vw, 84px);
}

.gab-dinmo .dinmo-ficha-cuerpo__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 400px;
	gap: clamp(2.4rem, 5vw, 4.5rem);
	align-items: start;
}

.gab-dinmo .dinmo-ficha-cuerpo__prosa > p {
	max-width: 62ch;
	font-size: 1.06rem;
	line-height: 1.75;
}

.gab-dinmo .dinmo-ficha-cuerpo__prosa > p:first-child {
	font-family: var(--display);
	font-weight: 500;
	font-size: 1.3rem;
	line-height: 1.55;
}

.gab-dinmo .dinmo-ficha-cuerpo__aside {
	position: sticky;
	top: 104px;
	padding: 1.5rem;
	background: var(--blanco);
	border-radius: var(--radio);
	box-shadow: var(--sombra-alta);
}

.gab-dinmo .dinmo-ficha-cuerpo__aside .dinmo-cota--seccion {
	margin: 0 0 1.4rem;
	color: var(--muted);
}

.gab-dinmo .gab-ficha__titulo {
	font-family: var(--display);
	font-weight: 600;
	font-size: 1.6rem;
	margin-top: 2.6rem;
}

.gab-dinmo .gab-ficha__clave {
	color: var(--muted);
}

.gab-dinmo .gab-ficha-lista__item svg {
	color: var(--tinta);
}

.gab-dinmo .gab-ficha-vistas {
	font-family: var(--mono);
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--muted);
}

/* Isla del asesor dentro de la tarjeta clara (Findero: el bloque de
   conversión en color sólido). Sin foto de persona: iniciales. */
.gab-dinmo .dinmo-asesor {
	margin: -1.5rem -1.5rem 1.5rem;
	padding: 1.3rem 1.5rem;
	background: var(--tinta);
	color: var(--blanco);
	border-radius: var(--radio) var(--radio) 0 0;
}

.gab-dinmo .dinmo-asesor__rol {
	margin: 0 0 0.9rem;
	font-family: var(--mono);
	font-size: 0.8rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--acento);
}

.gab-dinmo .dinmo-asesor__ficha {
	display: flex;
	align-items: center;
	gap: 0.9rem;
}

.gab-dinmo .dinmo-asesor__iniciales {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	flex: 0 0 auto;
	border-radius: 50%;
	border: 1.5px solid var(--acento);
	color: var(--acento);
	font-family: var(--display);
	font-weight: 600;
	font-size: 1.05rem;
	letter-spacing: 0.05em;
}

.gab-dinmo .dinmo-asesor__nombre {
	margin: 0;
	font-family: var(--display);
	font-weight: 600;
	font-size: 1.2rem;
	color: var(--blanco);
}

.gab-dinmo .dinmo-asesor__zona {
	margin: 0.1rem 0 0;
	font-size: 0.86rem;
	color: var(--claro-tinta);
}

.gab-dinmo .dinmo-asesor__contacto {
	display: grid;
	gap: 0.2rem;
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
}

.gab-dinmo .dinmo-asesor__contacto li {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}

.gab-dinmo .dinmo-asesor__contacto a {
	display: flex;
	align-items: center;
	min-height: 46px;
	flex: 1;
}

.gab-dinmo .dinmo-asesor__contacto .dinmo-icono {
	color: var(--acento);
}

.gab-dinmo .dinmo-asesor__contacto a {
	color: var(--blanco);
	text-underline-offset: 3px;
	text-decoration: none;
}

.gab-dinmo .dinmo-asesor__contacto a:hover {
	text-decoration: underline;
}

/* Galería mosaico de la ficha. */
.gab-dinmo .dinmo-galeria__mosaico {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.7rem;
}

.gab-dinmo .dinmo-galeria__pieza {
	margin: 0;
	border-radius: 10px;
	overflow: hidden;
	aspect-ratio: 4 / 3;
}

.gab-dinmo .dinmo-galeria__pieza--grande {
	grid-column: 1 / -1;
	aspect-ratio: 16 / 9;
}

.gab-dinmo .dinmo-galeria__foto {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.gab-dinmo .dinmo-galeria__nota {
	margin: 0.6rem 0 0;
	font-family: var(--mono);
	font-size: 0.78rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--muted);
}

/* El plano acotado, ahora como bloque propio de la ficha. */
.gab-dinmo .dinmo-plano-bloque__lienzo {
	/* El halo de la cota y el hueco de puerta del SVG pintan var(--papel). */
	--papel: #F7F3F5;
	padding: 1.4rem;
	background: var(--lino);
	border-radius: var(--radio);
}

.gab-dinmo .dinmo-plano-bloque__lienzo .dinmo-plano__svg {
	display: block;
	width: min(480px, 100%);
	margin: 0 auto;
	color: var(--tinta);
}

.gab-dinmo .dinmo-plano-bloque__nota {
	margin: 0.6rem 0 0;
	font-family: var(--mono);
	font-size: 0.78rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--muted);
}

/* Variantes: "Más en esta zona" */
.gab-dinmo .dinmo-ficha-variantes {
	background: var(--lino);
	padding: clamp(56px, 7vw, 96px) 0;
}

.gab-dinmo .gab-ficha-variantes__enlace {
	display: block;
	background: var(--blanco);
	border-radius: 10px;
	border-left: 3px solid var(--acento);
	box-shadow: var(--sombra);
	text-decoration: none;
	transition: transform var(--d1) var(--ease), box-shadow var(--d1) var(--ease);
}

.gab-dinmo .gab-ficha-variantes__enlace:hover {
	transform: translateY(-3px);
	box-shadow: var(--sombra-alta);
}

/* La flecha del "seguir" como eco del CTA, sin añadir markup. */
.gab-dinmo .gab-ficha-variantes__nombre::after {
	content: " →";
	color: var(--teja);
}

.gab-dinmo .gab-ficha-variantes__nombre {
	font-weight: 600;
	color: var(--tinta);
}

.gab-dinmo .gab-ficha-variantes__precio {
	font-family: var(--display);
	font-weight: 600;
	color: var(--tinta);
}

/* ---------- Pie ---------- */
.gab-dinmo .dinmo-footer {
	background: var(--tinta-osc);
	color: var(--blanco);
	padding: clamp(30px, 4vw, 48px) 0 clamp(56px, 7vw, 90px);
}

.gab-dinmo .dinmo-footer .dinmo-skyline {
	margin-bottom: clamp(32px, 5vw, 56px);
	color: rgba(205, 191, 210, 0.85);
}

.gab-dinmo .dinmo-footer__marco {
	width: min(var(--maxw), calc(100% - 44px));
	margin-inline: auto;
}

.gab-dinmo .dinmo-footer__cols {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
	gap: 2rem;
	padding-bottom: 2.4rem;
	margin-bottom: 2rem;
	border-bottom: 1px solid rgba(205, 191, 210, 0.22);
}

.gab-dinmo .dinmo-footer__titulo {
	margin: 0 0 0.7rem;
	font-family: var(--mono);
	font-size: 0.78rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--acento);
	font-weight: 400;
}

.gab-dinmo .dinmo-footer__col ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* flex (no inline-flex): el objetivo ocupa el ancho de la columna y
   así cumple 44px en LOS DOS ejes, no solo en alto. */
.gab-dinmo .dinmo-footer__col li a {
	display: flex;
	align-items: center;
	min-height: 46px;
	color: var(--claro-tinta);
	text-decoration: none;
	transition: color var(--d1) var(--ease);
}

.gab-dinmo .dinmo-footer__col li a:hover {
	color: var(--acento);
}

.gab-dinmo .dinmo-footer__dir {
	margin: 0;
	color: var(--claro-tinta);
	font-size: 0.95rem;
}

.gab-dinmo .dinmo-footer__marca {
	margin: 0 0 0.7rem;
	font-family: var(--display);
	font-weight: 700;
	font-size: 1.5rem;
	letter-spacing: 0.18em;
}

/* La ∀ de la firma, en el color de acción también en el pie. */
.gab-dinmo .dinmo-footer__marca .dinmo-marca__a {
	color: var(--acento);
}

/* Enlaces del pie sin subrayado. Ojo: los de las LISTAS pueden ir sin
   él porque se distinguen por posición, pero el que vive dentro del
   párrafo legal lo conserva — medido, contra el texto que lo rodea da
   1.19:1 y WCAG 1.4.1 pide 3:1 para distinguirlo solo por color. */
.gab-dinmo .dinmo-footer a {
	color: var(--blanco);
	text-decoration: none;
	text-underline-offset: 3px;
}

.gab-dinmo .dinmo-footer__legal a {
	text-decoration: underline;
}

.gab-dinmo .dinmo-footer__legal {
	max-width: 52rem;
	/* #CDBFD2 sobre ciruela-osc: >8.5:1 */
	color: var(--claro-tinta);
	font-size: 0.92rem;
}

/* ---------- Reveals (sin JS todo visible) ---------- */
body.gab-dinmo.js-activo .reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity 0.65s var(--ease), transform 0.65s var(--ease);
}

body.gab-dinmo.js-activo .reveal.visible {
	opacity: 1;
	transform: none;
}

/* ---------- Responsive ---------- */
@media (max-width: 1023px) {
	.gab-dinmo .dinmo-cierre__grid {
		grid-template-columns: 1fr;
	}

	.gab-dinmo .dinmo-criterio__grid {
		grid-template-columns: 1fr;
	}

	.gab-dinmo .dinmo-criterio__cifras {
		grid-template-columns: repeat(3, 1fr);
	}

	.gab-dinmo .dinmo-footer__cols {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gab-dinmo .gab-fac {
		grid-template-columns: 1fr;
	}

	.gab-dinmo .gab-fac__filtros {
		position: static;
	}

	.gab-dinmo .dinmo-ficha-cuerpo__grid {
		grid-template-columns: 1fr;
	}

	.gab-dinmo .dinmo-ficha-cuerpo__aside {
		position: static;
	}
}

@media (max-width: 700px) {
	.gab-dinmo .dinmo-criterio__cifras {
		grid-template-columns: 1fr;
		gap: 0.9rem;
	}

	.gab-dinmo .dinmo-footer__cols {
		grid-template-columns: 1fr;
		gap: 1.4rem;
	}

	.gab-dinmo .dinmo-galeria__pieza {
		grid-column: 1 / -1;
	}
}

@media (max-width: 560px) {
	.gab-dinmo .dinmo-marca {
		font-size: 1.1rem;
	}

	.gab-dinmo .dinmo-buscar {
		padding: 1rem;
	}

	.gab-dinmo .dinmo-buscar .dinmo-boton {
		flex: 1 1 100%;
	}

	.gab-dinmo .dinmo-hero__tarjeta {
		margin-bottom: -120px;
	}

	.gab-dinmo .dinmo-puertas-seccion {
		padding-top: 180px;
	}
}

/* ---------- Reduced motion: las tres patas ---------- */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	body.gab-dinmo *,
	body.gab-dinmo *::before,
	body.gab-dinmo *::after {
		animation: none !important;
		transition: none !important;
	}

	body.gab-dinmo.js-activo .reveal {
		opacity: 1 !important;
		transform: none !important;
	}

	/* Ojo: las barras de la hamburguesa NO entran aquí — su transform es
	   el ESTADO abierto (el aspa), no un adorno. El `transition: none`
	   global de arriba ya le quita el movimiento. */
	.gab-dinmo .dinmo-card__enlace:hover,
	.gab-dinmo .dinmo-card__enlace:hover .dinmo-card__foto,
	.gab-dinmo .dinmo-puerta__enlace:hover,
	.gab-dinmo .dinmo-boton:hover,
	.gab-dinmo .gab-fac__filtrar:hover,
	.gab-dinmo .gab-sol button[type="submit"]:hover {
		transform: none !important;
	}
}

/* ============================================================
   MEJORAS DE FICHA §6-B1 (28/07/2026)
   Etiqueta energética, situación, acciones y barra fija móvil.
   ============================================================ */

/* ---------- Certificado energético ----------
   Va con la escala completa A-G visible y la banda que toca marcada:
   es la convención que cualquiera reconoce de un vistazo, y enseñarla
   entera deja claro dónde cae este inmueble respecto al resto.
   Cada banda lleva SU color de texto (regla R3), no blanco por defecto. */
body.gab-dinmo .dinmo-energia--bloque {
	margin-top: 2rem;
	padding: 1.3rem 1.4rem;
	background: var(--lino);
	border: 1px solid var(--borde);
	border-radius: var(--radio);
}

body.gab-dinmo .dinmo-energia__valor {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin: 0 0 1rem;
}

body.gab-dinmo .dinmo-energia__letra {
	display: grid;
	place-items: center;
	width: 2.4rem;
	height: 2.4rem;
	flex: none;
	border-radius: 8px;
	font-family: var(--display);
	font-weight: 700;
	font-size: 1.35rem;
	line-height: 1;
}

body.gab-dinmo .dinmo-energia__letra--grande {
	width: 3.1rem;
	height: 3.1rem;
	font-size: 1.8rem;
	border-radius: 10px;
}

body.gab-dinmo .dinmo-energia__escala {
	display: flex;
	gap: 4px;
}

body.gab-dinmo .dinmo-energia__banda {
	flex: 1;
	display: grid;
	place-items: center;
	min-height: 34px;
	border-radius: 6px;
	font-family: var(--mono);
	font-size: 0.85rem;
	font-weight: 600;
	opacity: 0.42;
}

/* La banda activa se distingue por opacidad Y por un aro: nunca solo
   por color, que es lo que exige WCAG 1.4.1. */
body.gab-dinmo .dinmo-energia__banda.es-activa {
	opacity: 1;
	outline: 2px solid var(--tinta);
	outline-offset: 2px;
	transform: scaleY(1.18);
}

body.gab-dinmo .dinmo-energia__nota {
	margin: 0.9rem 0 0;
	color: var(--muted);
	font-size: 0.86rem;
	line-height: 1.5;
}

/* ---------- Situación (Disponible / Reservado / Vendido) ---------- */
body.gab-dinmo .dinmo-situacion {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.24em 0.8em;
	border-radius: 999px;
	font-family: var(--sans);
	font-size: 0.82rem;
	font-weight: 700;
	line-height: 1.4;
	white-space: nowrap;
}

body.gab-dinmo .dinmo-situacion__punto {
	width: 0.5em;
	height: 0.5em;
	border-radius: 50%;
	flex: none;
}

/* Sobre la foto de la tarjeta: opaco y arriba a la derecha, sin pisar
   el badge de tipo (que vive arriba a la izquierda). */
body.gab-dinmo .dinmo-situacion--tarjeta {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	z-index: 2;
	/* SIN sombra a propósito. Llevaba box-shadow 0 2px 8px rgba(30,16,35,.28)
	   y sobre las zonas claras de una foto —un cielo, una pared blanca— ese
	   halo se lee como una mancha oscura detrás de la etiqueta, no como
	   profundidad. El fondo del badge ya es OPACO, que es lo que garantiza
	   la legibilidad: la sombra no aportaba nada y ensuciaba. */
}

body.gab-dinmo .dinmo-situacion--ficha {
	margin-top: 0.65rem;
}

/* ---------- Acciones de la ficha ---------- */
body.gab-dinmo .dinmo-acciones {
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem;
	margin-top: 1.6rem;
	padding-top: 1.4rem;
	border-top: 1px solid var(--borde);
}

body.gab-dinmo .dinmo-accion {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 46px;
	padding: 0.6rem 1.1rem;
	border: 1px solid var(--borde);
	border-radius: 999px;
	background: var(--blanco);
	color: var(--tinta);
	font-family: var(--sans);
	font-size: 0.94rem;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: border-color var(--d1) var(--ease), background var(--d1) var(--ease);
}

body.gab-dinmo .dinmo-accion:hover {
	border-color: var(--tinta);
	background: var(--lino);
}

body.gab-dinmo .dinmo-accion .dinmo-icono {
	width: 1.15em;
	height: 1.15em;
	flex: none;
}

/* ---------- Barra fija de móvil ----------
   El aside con el formulario ya es sticky en escritorio; en móvil se
   apila al final y queda a varias pantallas. Esta barra es su
   equivalente donde de verdad se pierde la conversión. */
body.gab-dinmo .dinmo-barra-movil {
	display: none;
}

@media (max-width: 860px) {
	body.gab-dinmo .dinmo-barra-movil {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 60;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 0.9rem;
		padding: 0.7rem 1rem calc(0.7rem + env(safe-area-inset-bottom));
		background: var(--tinta);
		border-top: 1px solid rgba(255, 255, 255, 0.14);
		box-shadow: 0 -8px 24px rgba(30, 16, 35, 0.3);
	}

	/* Reserva de espacio para que la barra no tape el final del pie. */
	body.gab-dinmo.single-inmueble .dinmo-footer {
		padding-bottom: 5.5rem;
	}

	body.gab-dinmo .dinmo-barra-movil__datos {
		display: flex;
		flex-direction: column;
		gap: 0.25rem;
		min-width: 0;
	}

	body.gab-dinmo .dinmo-barra-movil__precio {
		font-family: var(--display);
		font-size: 1.15rem;
		font-weight: 700;
		color: var(--blanco);
		line-height: 1.1;
	}

	body.gab-dinmo .dinmo-barra-movil__cta {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 46px;
		padding: 0.6rem 1.2rem;
		border-radius: 999px;
		background: var(--acento);
		color: var(--tinta);
		font-family: var(--sans);
		font-weight: 700;
		text-decoration: none;
		white-space: nowrap;
	}
}

/* ---------- Impresión ----------
   En inmobiliaria la gente se lleva la ficha en papel a la visita. Se
   quitan cabecera, pie, formulario, barra fija y acciones; se queda el
   inmueble. */
@media print {
	body.gab-dinmo .dinmo-header,
	body.gab-dinmo .dinmo-banner,
	body.gab-dinmo .dinmo-footer,
	body.gab-dinmo .dinmo-barra-movil,
	body.gab-dinmo .dinmo-acciones,
	body.gab-dinmo .dinmo-ficha-cuerpo__aside,
	body.gab-dinmo .dinmo-ficha-variantes,
	body.gab-dinmo .dinmo-saltar {
		display: none !important;
	}

	body.gab-dinmo .dinmo-ficha-cuerpo__grid {
		display: block;
	}

	body.gab-dinmo .dinmo-fhero {
		min-height: 0;
	}

	/* Los colores de la escala energética SÍ deben imprimirse: sin ellos
	   la etiqueta pierde su sentido. */
	body.gab-dinmo .dinmo-energia__letra,
	body.gab-dinmo .dinmo-energia__banda,
	body.gab-dinmo .dinmo-situacion {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.gab-dinmo .dinmo-accion {
		transition: none;
	}

	body.gab-dinmo .dinmo-energia__banda.es-activa {
		transform: none;
	}
}

/* ---------- Barra de datos prácticos (§4) ----------
   Horario, teléfono y dirección. NO es sticky: sube con el scroll y deja
   sola arriba la cabecera, que es la que debe seguir accesible. */
body.gab-dinmo .dinmo-topbar {
	background: var(--tinta);
	color: var(--blanco);
	font-size: 0.86rem;
}

body.gab-dinmo .dinmo-topbar__lista {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	/* Los datos arrancan donde el logo y el teléfono acaba donde el CTA:
	   la barra se lee como las dos anclas de la cabecera, no como una
	   fila suelta flotando en el medio. */
	justify-content: space-between;
	gap: 0.2rem 1.8rem;
	margin: 0;
	list-style: none;
	/* MISMA fórmula que .dinmo-header, no una equivalente: antes usaba
	   max-width + padding y el padding se SUMABA al centrado, metiendo los
	   datos 41 px por dentro del logo. Dos técnicas distintas para el
	   mismo objetivo siempre acaban desalineadas; una sola no puede. */
	padding-inline: var(--relleno-marco);
}

body.gab-dinmo .dinmo-topbar__grupo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.2rem 1.8rem;
}

body.gab-dinmo .dinmo-topbar__lista li,
body.gab-dinmo .dinmo-topbar a {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	min-height: 44px;
	color: var(--blanco);
	text-decoration: none;
}

body.gab-dinmo .dinmo-topbar .dinmo-icono {
	width: 1.05em;
	height: 1.05em;
	flex: none;
	color: var(--acento);
}

/* En pantallas estrechas la dirección sobra: el horario y el teléfono
   son lo que se usa desde el móvil. */
@media (max-width: 700px) {
	body.gab-dinmo .dinmo-topbar__donde {
		display: none;
	}
}

/* ---------- FAQ (patrón C1: numerado, sin cajas) ---------- */
body.gab-dinmo .dinmo-faq-seccion__titulo {
	max-width: 22ch;
	margin: 0.3rem 0 2rem;
	font-family: var(--display);
	font-size: clamp(1.8rem, 3.6vw, 2.6rem);
	line-height: 1.12;
	color: var(--tinta);
}

body.gab-dinmo .dinmo-faq {
	counter-reset: faq;
	max-width: 46rem;
}

body.gab-dinmo .dinmo-faq__item {
	counter-increment: faq;
	border-top: 1px solid var(--borde);
}

body.gab-dinmo .dinmo-faq__item:last-child {
	border-bottom: 1px solid var(--borde);
}

body.gab-dinmo .dinmo-faq__item summary {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	min-height: 60px;
	padding: 1rem 0;
	cursor: pointer;
	list-style: none;
	color: var(--tinta);
	transition: color var(--d1) var(--ease);
}

body.gab-dinmo .dinmo-faq__item summary::-webkit-details-marker {
	display: none;
}

body.gab-dinmo .dinmo-faq__item summary::before {
	content: "0" counter(faq);
	flex: none;
	font-family: var(--mono);
	font-size: 1.1rem;
	color: var(--muted);
}

body.gab-dinmo .dinmo-faq__pregunta {
	/* Es un <h3> dentro del <summary> (el summary admite encabezados);
	   hay que quitarle los márgenes propios del heading. */
	margin: 0;
	font-family: var(--display);
	font-size: 1.15rem;
	font-weight: 600;
	line-height: 1.35;
}

body.gab-dinmo .dinmo-faq__item[open] summary {
	color: var(--teja);
}

body.gab-dinmo .dinmo-faq__signo {
	margin-left: auto;
	flex: none;
	width: 1.15em;
	height: 1.15em;
	transition: transform var(--d1) var(--ease);
}

body.gab-dinmo .dinmo-faq__item[open] .dinmo-faq__signo {
	transform: rotate(45deg);
}

body.gab-dinmo .dinmo-faq__respuesta {
	margin: 0 0 1.4rem;
	padding-left: calc(1.1rem + 1rem);
	max-width: 62ch;
	color: var(--muted);
	line-height: 1.65;
}

@media (prefers-reduced-motion: reduce) {
	body.gab-dinmo .dinmo-faq__item summary,
	body.gab-dinmo .dinmo-faq__signo {
		transition: none;
	}

	body.gab-dinmo .dinmo-faq__item[open] .dinmo-faq__signo {
		transform: none;
	}
}

@media print {
	body.gab-dinmo .dinmo-topbar {
		display: none !important;
	}
}
