/* ============================================================
   COMPONENTES COMPARTIDOS — tarjetas, carruseles y paginador
   ============================================================

   Esta hoja es la unica que templates/_tags_.php carga en TODAS las paginas.
   Aqui va lo que pintan varias vistas a la vez, para que un arreglo no pueda
   dejarse ninguna fuera. Lo que solo usa una vista NO entra aqui.

   El mismo marcado -.covered, .subgrid, .slide_item, .city__item- lo usan
   views/neightborhood.php, views/gates.php, views/suburb.php,
   views/delegacy.php, views/neighborhood.php, templates/city/index.php y
   templates/state/index.php. Sus arreglos vivian en una sola de esas vistas,
   que es como se llego a tener el mismo bloque roto en seis sitios.

   Se carga desde templates/_tags_.php, o sea en todas las paginas. Las tres
   reglas son estrechas a proposito: ninguna cambia como se ve algo que ya
   funcionaba, solo arreglan lo que estaba roto.
   ============================================================ */


/* 1) LAS FOTOS QUE CARGABAN Y NO SE VEIAN
   ------------------------------------------------------------
   city.css manda la foto detras del contenido con z-index negativo:

     .covered picture            z-index: -2
     .covered:after  (el velo)   z-index: -1
     .slide_item .background     z-index: -1

   Un z-index negativo se va detras del CONTEXTO DE APILAMIENTO mas cercano, y
   si no hay ninguno entre medias se va detras del fondo de la PAGINA y deja de
   verse. Lo que quedaba a la vista era el velo rgba(0,0,0,.4) sobre el fondo
   claro: un gris plano de #8c8c8c.

   Comprobado en el navegador antes de tocar nada: naturalWidth > 0 y
   complete = true en las imagenes a la vista. Cargaban, no se pintaban.

   Las dos ya llevan position:relative, asi que solo les faltaba un z-index
   para abrir su propio contexto. No se cambia ningun z-index negativo: se
   acota donde valen, que es dentro de su tarjeta.                            */

.covered,
.slide_item {
	z-index: 0;
}


/* 2) EL PIE DE TARJETA QUE SE SALIA
   ------------------------------------------------------------
   .subgrid fija las filas en 500px y 70px. El titulo, la descripcion y el
   boton no caben en 70px. Medido en /mx/gates/la_vista_lotes: el contenido
   desbordaba la caja en 570px, o sea el doble de su alto.

   Con una sola columna, pasar de grid a flex en columna es equivalente, y
   ademas deja que la fila de texto ocupe lo que necesite.

   Los !important no son pereza. Esta hoja se carga en el <head> y las vistas
   piden city.css mas abajo, ya en el cuerpo, asi que su regla -que ademas vive
   dentro de un @media (min-width:980px)- gana por orden de aparicion. Medido
   despues de subirlo sin ellos: .subgrid seguia en "500px 70px" y desbordando
   570px. Con la misma especificidad y llegando antes, no hay otra forma.      */

.subgrid {
	display: flex !important;
	flex-direction: column !important;
	/* stretch marcado porque .subgrid viene siempre acompañada de oh-left,
	   que alinea al principio: sin esto la foto no ocupa el ancho de la
	   tarjeta y se queda en una columna estrecha a la izquierda. */
	align-items: stretch !important;
	grid-template-rows: none !important;
	height: auto !important;
}


/* 3) LAS DIAPOSITIVAS QUE SE APILABAN
   ------------------------------------------------------------
   El carril se ensancha a N00% -con doce ciudades, min-width:1200%- y se
   desplaza con margin-left para traer una al centro. Ese montaje solo funciona
   si cada hijo ocupa 1/N del carril.

   Y no lo ocupaba: la clase .city__item no tenia NI UNA REGLA en todo el
   proyecto. Cada tarjeta se quedaba con el ancho entero -8996px medidos a 1900
   de ventana- y las doce se apilaban en vertical.

   flex:1 1 0 reparte el carril entre sus hijos a partes iguales, asi que cada
   uno recibe N00%/N = 100% del contenedor visible. Lo bueno es que NO hace
   falta saber cuantas son: la misma regla vale para las cinco vistas, con las
   ciudades que tenga cada una.

   min-width:0 hace falta porque el minimo por defecto de un elemento flex es
   el ancho de su contenido, y sin el la foto volveria a empujar la caja.     */

#__slide__ {
	display: flex;
	flex-wrap: nowrap;
}

#__slide__ > .city__item {
	flex: 1 1 0;
	min-width: 0;
	max-width: none;
}


/* 4) LA TARJETA DE LUGAR
   ------------------------------------------------------------
   Hasta aqui el bloque de "Elige el lugar de tus suenos" no era una tarjeta:
   eran una foto y, debajo, una linea suelta con la descripcion y el boton. Como
   el pie ocupaba lo que dijera el texto, cada lugar media distinto y el boton
   "Descubrir" caia a una altura diferente en cada uno. Con las descripciones
   que hay en la base -unas vacias, otras de dos lineas- el bloque se leia
   descuadrado.

   Se envuelve cada lugar en una tarjeta blanca de alto identico. Identico de
   verdad, no "el del vecino mas alto": la foto tiene alto fijo y el hueco de la
   descripcion reserva sus dos lineas aunque venga vacia, asi que una fila sin
   descripciones mide lo mismo que otra con ellas.

   ES OPCIONAL A PROPOSITO. Manda la clase .tarjetas-lugar en la rejilla, que
   solo lleva views/delegacy.php. El mismo marcado -.subgrid, .covered- lo usan
   otras cinco vistas, y una de ellas, neightborhood.php, trae su propio <style>
   con .covered a 500px de alto: si esto se aplicara a ciegas por .subgrid, alli
   pelearia con ese <style> y la tarjeta saldria rota. Para llevarlo a otra
   vista basta anadir las clases; no hace falta tocar esta hoja.

   Todos los selectores van prefijados con .tarjetas-lugar y ninguno lleva
   !important: esta hoja se carga antes que osgo.css y que city.css, asi que la
   especificidad extra es lo que decide -por ejemplo .tarjetas-lugar .subgrid
   .covered (0,3,0) contra .subgrid .covered de city.css (0,2,0)-.            */

.tarjetas-lugar {
	/* Los colores de la tarjeta salen de aqui, en un solo sitio.
	   LA TARJETA ES SIEMPRE CLARA, no sigue al modo del navegador. Llego a
	   seguirlo y se quito a proposito: el resto de la pagina se queda en su
	   gris claro, asi que una tarjeta oscura era la unica pieza oscura de la
	   pantalla. Lo que si sigue al modo es el paginador, en la seccion 5, que
	   es donde hacia falta porque sus numeros desaparecian. */
	--lugar-superficie: #ffffff;
	--lugar-tinta: #000000;
	--lugar-sombra: rgba(0, 0, 0, .08);
	--lugar-sombra-alta: rgba(0, 0, 0, .14);

	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 2rem;
}

/* Al principio, no al centro: cuando la ultima fila no llega a tres, las
   tarjetas que quedan se alinean con la columna de arriba en vez de quedarse
   flotando en medio de la fila.

   Va con .oh-distributed delante por necesidad, no por gusto: esa clase pone
   justify-content:space-around, empata a una clase con .tarjetas-lugar y llega
   despues, en osgo.css. Medido con el empate: la segunda fila arrancaba en
   x=216 mientras la primera arrancaba en x=108. Dos clases lo resuelven. */
.oh-distributed.tarjetas-lugar {
	justify-content: flex-start;
}

/* El enlace es la celda. Deja de llevar el ancho de .oh-tb-9 -45%, que con
   space-around dejaba huecos desiguales- y pasa a una fraccion exacta menos el
   hueco. Gana por especificidad (0,1,1) contra (0,1,0), no por orden.

   Una tarjeta en movil, dos en tableta y tres en escritorio. */
.tarjetas-lugar > a {
	width: 100%;
	max-width: none;
	text-decoration: none;
	color: inherit;
}

@media screen and (min-width: 48rem) {
	.tarjetas-lugar > a {
		width: calc(50% - 1rem);
	}
}

@media screen and (min-width: 64rem) {
	.tarjetas-lugar > a {
		/* Tres columnas: se descuentan los DOS huecos de 2rem que quedan entre
		   las tres, o sea 4rem repartidos entre tres tarjetas. */
		width: calc(33.333% - 1.334rem);
	}
}

/* La tarjeta. El height:100% pisa el height:auto de la regla 2 de arriba: alli
   hacia falta para que el pie no se saliera de una caja de 70px; aqui el alto
   ya lo da el enlace, que es un elemento flexible estirado a la fila. */
.tarjetas-lugar .subgrid {
	height: 100% !important;
	background-color: var(--lugar-superficie);
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 12px 28px var(--lugar-sombra);
	transition: transform .25s ease, box-shadow .25s ease;
}

.tarjetas-lugar > a:hover .subgrid {
	transform: translateY(-4px);
	box-shadow: 0 18px 38px var(--lugar-sombra-alta);
}

/* La foto, con alto fijo por tramo. Es lo que iguala las tarjetas entre filas.
   Antes lo decidia la proporcion 3/4 de city.css, que ademas no llegaba a
   aplicarse -medido: pedia 3/4 y pintaba 187px en una caja de 634 de ancho-,
   asi que cada foto salia de un alto distinto segun la imagen. El radio se
   quita porque quien redondea ahora es la tarjeta. */
.tarjetas-lugar .subgrid .covered {
	aspect-ratio: auto;
	height: 200px;
	min-height: 0;
	flex: 0 0 200px;
	border-radius: 0;
}

@media screen and (min-width: 48rem) {
	.tarjetas-lugar .subgrid .covered {
		height: 240px;
		flex: 0 0 240px;
	}
}

/* Con tres columnas la tarjeta es mas estrecha, asi que la foto baja de los
   320px que llevaba a dos: con 320 sobre una tarjeta de 380 salia casi
   cuadrada. */
@media screen and (min-width: 64rem) {
	.tarjetas-lugar .subgrid .covered {
		height: 260px;
		flex: 0 0 260px;
	}
}

/* El velo, que hasta ahora no se veia. city.css lo deja en z-index:-1, y desde
   que la regla 1 abrio contexto en .covered se va detras de la foto: el titulo
   quedaba en negro sobre la imagen, ilegible en cuanto la foto era clara. Se
   sube delante y se cambia el gris plano por un degradado, para que oscurezca
   donde va el texto y deje ver la foto arriba. */
.tarjetas-lugar .covered:after {
	z-index: 1;
	background-color: transparent;
	background-image: linear-gradient(to bottom,
			rgba(0, 0, 0, .10) 0%,
			rgba(0, 0, 0, .22) 45%,
			rgba(0, 0, 0, .68) 100%);
}

.tarjetas-lugar .covered .container {
	z-index: 2;
	justify-content: flex-end;
	padding: 1.25rem;
}

.tarjetas-lugar .titleGrid {
	margin: 0;
	color: #ffffff;
	font-size: 1.15rem;
	line-height: 1.25;
	letter-spacing: .09em;
	text-align: center;
	text-shadow: 0 2px 10px rgba(0, 0, 0, .55);
}

/* El pie pasa de una linea -que con .nowrap no cabia- a una columna: primero la
   descripcion, y el boton pegado al fondo con el margen automatico. */
.tarjetas-lugar .tarjeta-lugar__pie {
	color: var(--lugar-tinta);
	flex: 1 1 auto;
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: stretch;
	justify-content: flex-start;
	padding: 1rem 1.25rem 1.25rem;
}

/* El hueco de la descripcion reserva dos lineas SIEMPRE, tenga texto o no: es
   lo que hace que dos filas midan igual. Y las recorta a dos, para que una
   descripcion larga tampoco desnivele la fila. */
.tarjetas-lugar .tarjeta-lugar__texto {
	width: 100%;
	margin: 0 0 .85rem;
	/* 2.6em = las dos lineas exactas (2 x line-height 1.3). Con 2.4em la
	   reserva se quedaba corta y una tarjeta con descripcion salia 4px mas
	   alta que una sin ella; medido, 582 contra 578. */
	min-height: 2.6em;
	font-size: .9rem;
	line-height: 1.3;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* El boton ocupa el ancho de la tarjeta y se apoya en su borde inferior.

   VA EN NEGRO DESDE EL PRINCIPIO, con la letra en blanco, y se le da la vuelta
   al pasar el raton. Antes era al reves -trazo negro sobre tarjeta blanca- y en
   el hover solo cambiaba la letra a blanco, que es lo que se veia mal.

   Los selectores llevan .oh-button de mas por una razon medida: osgo.css trae
   `.oh-button.oh-black{color:#000;border-color:#000}`, que empata a dos clases
   con `.tarjetas-lugar .tarjeta-lugar__boton` y gana por llegar despues. Tres
   clases lo resuelven sin un !important. */
.tarjetas-lugar .oh-button.tarjeta-lugar__boton {
	margin: auto 0 0;
	width: 100%;
	min-height: 46px;
	font-size: .82rem;
	letter-spacing: .1em;
	color: var(--lugar-superficie);
	border-color: var(--lugar-tinta);
	background-color: var(--lugar-tinta);
}

/* Toda la tarjeta es un enlace, asi que el boton responde al pasar por encima
   de cualquier parte de ella. Reutiliza el circulo que .oh-button ya trae, no
   se pinta un hover nuevo: ahora el circulo es del color de la tarjeta, asi que
   al crecer deja el boton claro con la letra oscura. */
.tarjetas-lugar .oh-button.tarjeta-lugar__boton:before {
	background-color: var(--lugar-superficie);
}

.tarjetas-lugar > a:hover .oh-button.tarjeta-lugar__boton,
.tarjetas-lugar .oh-button.tarjeta-lugar__boton:hover {
	color: var(--lugar-tinta);
	background-color: var(--lugar-superficie);
	border-color: var(--lugar-tinta);
}

.tarjetas-lugar > a:hover .oh-button.tarjeta-lugar__boton:before {
	transform: scale(1);
}


/* 5) EL PAGINADOR DEL CATALOGO
   ------------------------------------------------------------
   Los numeros de pagina salen invisibles por su cuenta: theme:ghost es el tema
   para ir ENCIMA DE UNA FOTO -texto blanco sobre rgba(255,255,255,.2)- y aqui
   va sobre el fondo claro del catalogo. Solo se ve el circulo de la pagina
   actual, con lo que parece que no hay mas paginas.

   Eso ya estaba arreglado... en css/homes.css, que _tags_.php SOLO carga en la
   ruta /homes, porque pide /css/<ruta>.css. Asi que el arreglo no llegaba a
   ninguna de las otras vistas que pintan el mismo paginador. Comprobado en
   produccion antes de mover nada: /mx/delegacy/coyoacán pinta
   .catalogo-paginador y no carga ni homes.css ni catalogo-fichas.css, y la
   pagina 2 y la flecha estaban en blanco sobre casi blanco.

   Por eso se muda aqui: esta hoja va en todas las paginas, y no hay forma de
   que una vista nueva que incluya el partial se quede sin el.

   Los !important siguen haciendo falta: no compiten con la especificidad, sino
   con theme:ghost, que llega en osgo.css despues de esta hoja.               */

.catalogo-paginador {
	/* Un solo sitio para los colores, igual que en las tarjetas. */
	--pag-superficie: #ffffff;
	--pag-tinta: #000000;
	--pag-borde: #e2e2e2;
	--pag-fondo-hover: #f2f2f2;
	--pag-borde-hover: #c9c9c9;

	/* En movil los numeros caben de sobra en una linea, pero si una alcaldia
	   tiene muchas paginas conviene que bajen en vez de desbordar. */
	flex-wrap: wrap;
	gap: .5rem;
}

/* El modo. Lo negro del paginador -la pagina actual- se vuelve blanco, y las
   demas pasan a fondo oscuro con la cifra en blanco. */
@media (prefers-color-scheme: dark) {
	.catalogo-paginador {
		--pag-superficie: #1c1c1c;
		--pag-tinta: #ffffff;
		--pag-borde: #3d3d3d;
		--pag-fondo-hover: #2b2b2b;
		--pag-borde-hover: #5a5a5a;
	}
}

/* Todas las casillas miden lo mismo, tengan una cifra o tres, y tanto los
   numeros como las flechas. Antes era min-width, asi que el «1» y el «10»
   salian de anchos distintos y el paginador quedaba desigual. 44px es ademas
   el minimo comodo para el dedo en movil. */
.catalogo-paginador .ui\:button {
	width: 44px;
	min-width: 44px;
	height: 44px;
	min-height: 44px;
	padding: 0 !important;
	margin: 0;
	justify-content: center;
	font-size: .9rem;
}

.catalogo-paginador a.ui\:button {
	color: var(--pag-tinta) !important;
	background-color: var(--pag-superficie) !important;
	border: 1px solid var(--pag-borde) !important;
}

.catalogo-paginador a.ui\:button:hover {
	background-color: var(--pag-fondo-hover) !important;
	border-color: var(--pag-borde-hover) !important;
}

/* La pagina actual va en contraste: es la unica que no es un enlace y conviene
   que se distinga de un vistazo. */
.catalogo-paginador .ui\:button.theme\:accent {
	color: var(--pag-superficie) !important;
	background-color: var(--pag-tinta) !important;
	border: 1px solid var(--pag-tinta) !important;
}


/* 6) EL CARRIL DE COLONIAS
   ------------------------------------------------------------
   Lo pinta templates/state/catalog.php. Vive aqui, y no en un <style> de esa
   plantilla, porque la vista de estado NO TIENE hoja propia: _tags_.php pide
   /css/state.css, que no existe -responde 302-. Esta hoja va en todas las
   paginas, asi que es el sitio donde no puede perderse.

   Es el mismo aire que el carril de ciudades -foto entera, velo y nombre en
   blanco- con la tarjeta rehecha: el contenido se apoya en el borde de abajo
   en vez de flotar en el centro, y la foto se acerca despacio al pasar por
   encima. Ninguna regla toca .slider-lugares, o sea que los carriles que ya
   estaban no cambian.

   Los tamanos son fijos por tramo, nunca al contenido: todas las tarjetas
   miden lo mismo tenga la colonia el nombre corto o largo.                  */

.carril-colonias {
	display: flex;
	flex-wrap: nowrap;
	gap: 1.5rem;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-padding-left: var(--comp-lado);
	-webkit-overflow-scrolling: touch;
}

/* En movil se ve una tarjeta y el filo de la siguiente, que es lo que avisa de
   que el carril se arrastra. */
.carril-colonias > .colonia-tarjeta {
	flex: 0 0 78%;
	height: 340px;
	scroll-snap-align: start;
}

@media screen and (min-width: 48rem) {
	.carril-colonias > .colonia-tarjeta {
		flex: 0 0 44%;
		height: 400px;
	}
}

@media screen and (min-width: 64rem) {
	.carril-colonias > .colonia-tarjeta {
		flex: 0 0 calc(33.333% - 1rem);
		height: 440px;
	}
}

.colonia-tarjeta {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 20px;
	background-color: #d9d9d9;
	text-decoration: none;
	color: #ffffff;
	box-shadow: 0 12px 28px rgba(0, 0, 0, .12);
	transition: box-shadow .3s ease, transform .3s ease;
}

.colonia-tarjeta:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 40px rgba(0, 0, 0, .2);
}

.colonia-tarjeta__foto {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .6s cubic-bezier(.2, .6, .3, 1);
}

.colonia-tarjeta:hover .colonia-tarjeta__foto {
	transform: scale(1.06);
}

/* El velo es un elemento y no un ::after a proposito: asi puede ir DELANTE de
   la foto sin depender de ningun z-index negativo, que es lo que dejaba
   invisibles los velos de las otras tarjetas. */
.colonia-tarjeta__velo {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(to bottom,
			rgba(0, 0, 0, .05) 0%,
			rgba(0, 0, 0, .15) 40%,
			rgba(0, 0, 0, .78) 100%);
	transition: background-color .3s ease;
}

.colonia-tarjeta:hover .colonia-tarjeta__velo {
	background-color: rgba(0, 0, 0, .12);
}

.colonia-tarjeta__pie {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .45rem;
	padding: 1.5rem;
}

/* La cuenta de propiedades, en una pildora translucida. Es el dato que las
   tarjetas de los otros carriles no tienen. */
.colonia-tarjeta__cifra {
	align-self: flex-start;
	padding: .25rem .7rem;
	border-radius: 999px;
	background-color: rgba(255, 255, 255, .18);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	font-size: .72rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	white-space: nowrap;
}

/* Dos lineas como mucho: un nombre largo se recorta antes que empujar la caja
   y desnivelar el carril. */
.colonia-tarjeta__nombre {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 1.35rem;
	line-height: 1.2;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-shadow: 0 2px 12px rgba(0, 0, 0, .5);
}

/* El "Descubrir" con el subrayado que crece, como el de las fichas de la
   vista de zona: la misma senal de "esto se pulsa" en todo el sitio. */
.colonia-tarjeta__cta {
	position: relative;
	font-size: .82rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	padding-bottom: 3px;
}

.colonia-tarjeta__cta:after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 24px;
	height: 1px;
	background-color: currentColor;
	transition: width .3s ease;
}

.colonia-tarjeta:hover .colonia-tarjeta__cta:after {
	width: 100%;
}


/* 7) EL TITULO DE UN CONTENEDOR
   ------------------------------------------------------------
   Lo pinta templates/partials/titulo-seccion.php: el nombre del bloque en
   grande y, debajo, de que va y en que lugar.

   El tamano se fija aqui y no se deja a las clases de rejilla del marcado:
   cada ruta carga una hoja distinta -/css/<ruta>.css- y varias ni existen, asi
   que el mismo encabezado salia de un tamano en alcaldia y de otro en zona.
   Esta hoja va en todas.                                                    */

.titulo-seccion {
	padding-block: 1.75rem .9rem;
}

.titulo-seccion__nombre {
	margin: 0 0 .35rem;
	font-size: clamp(1.7rem, 2.6vw, 2.3rem);
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: .01em;
}

.titulo-seccion__pie {
	margin: 0;
	font-size: .95rem;
	line-height: 1.4;
	opacity: .72;
}


/* 8) EL ANCHO DE UN COMPONENTE, EN UN SOLO SITIO
   ------------------------------------------------------------
   El titulo se centraba en SU ancho y el componente de debajo en el suyo, asi
   que arrancaban en columnas distintas. Medido a 1900 de ventana en el perfil
   de estado: el titulo empezaba en x=345 -1240 centrados- y las tarjetas del
   carril en x=110 -el ancho del wrapper-. En la vista de zona era peor: el
   titulo en 345 y la tarjeta de colonia en x=13, o sea pegada al borde.

   La causa es que cada bloque traia su propio ancho. Aqui se pone uno solo y
   lo comparten el titulo y el componente al que acompaña, asi que los dos
   arrancan siempre en la misma linea:

     titulo   .titulo-seccion
     tarjetas .tarjetas-lugar
     carriles .carril-colonias  y  .slider-lugares

   Los 1240 y los 24 no son inventados: son los que ya usaba #slidehomes en la
   vista de zona, que era el unico bloque que si respetaba un ancho. Se sacan a
   variables para no volver a tener el numero escrito en cinco sitios.        */

:root {
	--comp-ancho: 1240px;
	--comp-lado: 24px;
}

@media screen and (max-width: 47.99rem) {
	:root {
		--comp-lado: 16px;
	}
}

.titulo-seccion,
.tarjetas-lugar,
.carril-colonias,
.slider-lugares,
.slider-lugares.ui\:slider {
	max-width: var(--comp-ancho);
	margin-inline: auto;
	padding-inline: var(--comp-lado);
	box-sizing: border-box;
}

/* El carril lleva ademas su aire arriba y abajo, que el ancho no toca. */
.carril-colonias {
	padding-block: .5rem 1.5rem;
}

/* Y las tarjetas, el suyo: antes el lado se lo daba un padding propio de 1rem
   que ahora sobra, porque el lado lo pone la variable. */
.tarjetas-lugar {
	padding-block: 0;
}


/* 9) LA TARJETA DEL CARRIL NO CRECE CON EL HUECO
   ------------------------------------------------------------
   .slider-lugares reparte a sus tarjetas lo que sobra, asi que su ancho
   dependia de cuantas hubiera: medido en el catalogo de Cuauhtemoc, con ocho
   edificios salian de ~285px y con dos fraccionamientos de ~570, el doble. Eso
   es justo lo que no puede pasar -mismo componente, mismo tamano, tenga la
   pagina uno o veinte-.

   Se le quita el crecimiento y se le pone un tope. El minimo de 240px es para
   que en pantallas estrechas no se quede en una tira, y el maximo de 320 es el
   ancho al que ya salian cuando habia varias, o sea que donde hoy se ve bien no
   cambia nada.                                                              */

.slider-lugares.ui\:slider > article {
	flex: 0 0 clamp(240px, 23%, 320px);
	max-width: 320px;
	/* El min-width es el que mandaba de verdad. La tarjeta lleva tambien la
	   clase .ui\:slider-box, y city.css le pone min-width:48% en el tramo de
	   tableta: un minimo gana siempre a un maximo, asi que ni el flex-basis ni
	   el max-width de arriba podian recortarla. Medido: 571px de ancho, que es
	   exactamente el 48% del carril. */
	min-width: 240px;
}
