/* GAB Anuncios v1 — piel base neutra; variables --gab-anu-*. */

.gab-anu {
	--gab-anu-borde: rgba(0, 0, 0, 0.22);
	--gab-anu-suave: rgba(0, 0, 0, 0.6);
	--gab-anu-acento: currentColor;
	--gab-anu-panel: rgba(0, 0, 0, 0.04);
	--gab-anu-ok-fondo: #e8f5e9;
	--gab-anu-ok-texto: #1b5e20;
	--gab-anu-error-fondo: #fdecea;
	--gab-anu-error-texto: #8c1d18;
	font-size: 1rem;
}

.gab-anu__titulo {
	margin: 0 0 0.4rem;
	font-size: 1.3rem;
}

.gab-anu__form {
	display: grid;
	gap: 1.1rem;
	max-width: 40rem;
}

.gab-anu__campo {
	margin: 0;
}

.gab-anu__campo > label {
	display: block;
	margin-bottom: 0.35rem;
	font-weight: 600;
}

.gab-anu__pista {
	font-weight: 400;
	opacity: 0.7;
}

.gab-anu input[type="text"],
.gab-anu input[type="email"],
.gab-anu input[type="password"],
.gab-anu input[type="number"],
.gab-anu input[type="file"],
.gab-anu select,
.gab-anu textarea {
	width: 100%;
	min-height: 52px;
	padding: 0.6rem 0.8rem;
	font: inherit;
	border: 1px solid var(--gab-anu-borde);
	border-radius: 6px;
	background: transparent;
	color: inherit;
}

.gab-anu textarea {
	min-height: 7rem;
	resize: vertical;
}

.gab-anu fieldset {
	border: 1px solid var(--gab-anu-borde);
	border-radius: 6px;
	padding: 0.8rem 1rem 1rem;
	margin: 0;
}

.gab-anu legend {
	font-weight: 600;
	padding: 0 0.4rem;
}

.gab-anu__check {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	min-height: 44px;
	font-weight: 400;
}

.gab-anu__check input {
	flex: none;
	width: 1.25rem;
	height: 1.25rem;
	margin-top: 0.2rem;
	accent-color: var(--gab-anu-acento);
}

.gab-anu__consentimiento-texto {
	flex: 1;
	line-height: 1.5;
}

.gab-anu__boton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0.7rem 1.6rem;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	border: 2px solid currentColor;
	border-radius: 6px;
	background: transparent;
	color: inherit;
	text-decoration: none;
}

.gab-anu__boton--peligro {
	border-color: var(--gab-anu-error-texto);
	color: var(--gab-anu-error-texto);
}

.gab-anu__enlace {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 0.6rem;
	color: inherit;
}

.gab-anu__enlace--peligro {
	color: var(--gab-anu-error-texto);
}

.gab-anu__columnas {
	display: grid;
	gap: 2.5rem;
}

@media (min-width: 820px) {
	.gab-anu__columnas {
		grid-template-columns: 1fr 1fr;
	}
}

.gab-anu__bloque {
	padding: 1.4rem;
	border: 1px solid var(--gab-anu-borde);
	border-radius: 10px;
}

.gab-anu__cabecera {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 1.6rem;
	padding-bottom: 1rem;
	border-bottom: 2px solid var(--gab-anu-borde);
}

/* Envuelve: con más de una línea de anuncio hay un botón «Publicar …» por
   cada una, y en 360 px la fila se salía 8 px del viewport (medido el
   11/08/2026 en el panel de piseando con dos líneas). Con una sola línea no
   se nota, que es por lo que no se vio antes. */
.gab-anu__acciones-cabecera {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
}

.gab-anu__lista {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 1px solid var(--gab-anu-borde);
	border-radius: 10px;
	overflow: hidden;
}

.gab-anu__item {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 1.2rem;
}

.gab-anu__item + .gab-anu__item {
	border-top: 1px solid var(--gab-anu-borde);
}

.gab-anu__item-datos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
}

.gab-anu__item-titulo {
	font-weight: 700;
}

.gab-anu__chip {
	display: inline-block;
	padding: 0.15rem 0.6rem;
	border-radius: 999px;
	font-size: 0.82em;
	border: 1px solid var(--gab-anu-borde);
}

.gab-anu__chip--publish {
	background: var(--gab-anu-ok-fondo);
	color: var(--gab-anu-ok-texto);
	border-color: transparent;
}

.gab-anu__chip--pending {
	background: #fff4e5;
	color: #7a4100;
	border-color: transparent;
}

/* Rechazado por la moderación. Es un `draft` como el pausado, pero al
   anunciante le importa distinguirlos: uno lo decidió él y el otro trae
   algo que corregir. */
.gab-anu__chip--rechazado {
	background: #fcf0f1;
	color: #8a1f22;
	border-color: transparent;
}

/* Línea del anuncio (piso / habitación). Solo se pinta en portales con más
   de una: es contexto, no estado, así que va sin color y sin competir con el
   chip de estado, que es el que hay que leer primero. */
.gab-anu__chip--linea {
	background: transparent;
	font-weight: 600;
	text-transform: lowercase;
}

.gab-anu__motivo {
	flex-basis: 100%;
	font-size: 0.9em;
	color: var(--gab-anu-error-texto);
}

.gab-anu__fotos {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin: 1rem 0 0;
	padding: 0;
}

/* ★ El `padding: 0` de arriba NO gana: dentro de `.entry-content`, Astra le
   pone `padding-left: 20px` a toda lista y su selector es más específico.
   Medido a 375: hueco real 266 px, y dos fotos piden 276 → **caían de una en
   una** y el formulario se hacía kilométrico con diez fotos. Con los 20 px
   recuperados entran dos por fila.
   Es la trampa de siempre en esta librería: Astra gana dentro de
   `.entry-content`, así que hay que subir la especificidad a mano. */
body .gab-anu .gab-anu__fotos {
	padding-left: 0;
}

.gab-anu__foto img {
	display: block;
	border-radius: 6px;
	max-width: 110px;
	height: auto;
}

/* ---------- Elegir portada (1.6.0) ----------
   La que sale en los listados tiene que distinguirse DE UN VISTAZO, no solo
   por un radio marcado: antes ni siquiera se podía saber cuál era. */
.gab-anu__foto {
	position: relative;
	padding: 0.5rem;
	border: 2px solid transparent;
	border-radius: 8px;
}

.gab-anu__foto.es-portada {
	border-color: var(--gab-anu-acento);
	background: var(--gab-anu-panel);
}

/* Compacta de aspecto, pero SIN bajar de 44px de alto clicable: se dibuja
   pequeña y se toca grande. Bajarlo a 21px fue el primer intento y lo cazó
   la propia auditoría. */
.gab-anu__check--portada {
	align-items: center;
	margin-top: 0.4rem;
	font-size: 0.875rem;
}

/* El aro de foco va en la tarjeta entera: el radio mide 20px y sobre una
   miniatura se pierde. */
.gab-anu__foto:focus-within {
	outline: 3px solid var(--gab-anu-acento);
	outline-offset: 2px;
}

.gab-anu__aviso {
	padding: 0.9rem 1.1rem;
	border-radius: 6px;
	margin: 0 0 1.4rem;
	background: var(--gab-anu-panel);
}

.gab-anu__aviso--ok {
	background: var(--gab-anu-ok-fondo);
	color: var(--gab-anu-ok-texto);
}

.gab-anu__aviso--error {
	background: var(--gab-anu-error-fondo);
	color: var(--gab-anu-error-texto);
}

.gab-anu__ayuda,
.gab-anu__vacio {
	color: var(--gab-anu-suave);
	font-size: 0.94em;
}

.gab-anu__baja {
	margin-top: 2.5rem;
	padding-top: 1.2rem;
	border-top: 1px solid var(--gab-anu-borde);
}

.gab-anu__baja summary {
	cursor: pointer;
	min-height: 44px;
	display: flex;
	align-items: center;
	color: var(--gab-anu-suave);
}

/* Honeypot fuera de vista. */
.gab-anu__hp {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.gab-anu a:focus-visible,
.gab-anu button:focus-visible,
.gab-anu input:focus-visible,
.gab-anu select:focus-visible,
.gab-anu textarea:focus-visible,
.gab-anu summary:focus-visible {
	outline: 3px solid var(--gab-anu-acento);
	outline-offset: 3px;
}
