/**
 * Estilos del frontend del directorio (listado + mapa).
 * Prefijo .nrj- para evitar colisiones con el tema.
 */

/* ============================================================
 * Accesibilidad: focus visible global para componentes del plugin
 * Aplica a botones e inputs que renderizamos. No pisamos elementos
 * del tema activo (los selectores empiezan por .nrj-).
 * ============================================================ */
.nrj-listado-mapa :focus-visible,
.nrj-form-registro :focus-visible,
.nrj-claim-block :focus-visible,
.nrj-dashboard :focus-visible,
.nrj-single :focus-visible {
	outline: 2px solid var(--nrj-primary);
	outline-offset: 2px;
}

.nrj-btn:focus-visible {
	outline: 2px solid #fff;
	outline-offset: -3px;
	box-shadow: 0 0 0 4px var(--nrj-primary);
}

.nrj-galeria-item button:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 1px;
	box-shadow: 0 0 0 3px var(--nrj-primary);
}

/* Visualmente oculto pero accesible para lectores de pantalla. */
.nrj-sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* ============================================================
 * Línea gráfica global del plugin (override desde el tema vía
 * :root o .nrj-* selectores).
 * ============================================================ */
:where( .nrj-listado-mapa, .nrj-single, .nrj-form-registro, .nrj-claim-block, .nrj-dashboard, .nrj-carrusel, .nrj-buscador, .nrj-resultados ) {
	--nrj-primary:        #0044cc;   /* azul vibrante línea Nerja */
	--nrj-primary-dark:   #003399;
	--nrj-primary-soft:   #e7eefb;
	--nrj-text:           #1d2327;
	--nrj-text-muted:     #50575e;
	--nrj-border:         #e5e7eb;
	--nrj-card-radius:    12px;
	--nrj-card-shadow:    0 1px 2px rgba(0,0,0,0.04), 0 4px 12px rgba(0,0,0,0.06);
	--nrj-card-shadow-hv: 0 2px 4px rgba(0,0,0,0.06), 0 12px 24px rgba(0,0,0,0.10);
	--nrj-gap:            1.25rem;
	--nrj-bg-soft:        #f8fafc;
}

.nrj-archive .page-header {
	margin-bottom: 1.5rem;
}

.nrj-listado-mapa {
	--nrj-map-height: 640px;
	--nrj-cols:       2;     /* default; se sobrescribe via data-cols del root */
	display: flex;
	flex-direction: column;
	gap: var(--nrj-gap);
}

.nrj-listado-mapa[data-cols="2"] { --nrj-cols: 2; }
.nrj-listado-mapa[data-cols="3"] { --nrj-cols: 3; }

/* Cabecera horizontal: buscador + filtros + toggle de columnas en una sola
   fila (con wrap solo si no hay espacio físico). */
.nrj-listado-mapa .nrj-cabecera {
	display: flex;
	gap: 0.6rem;
	flex-wrap: wrap;
	align-items: center;
}

.nrj-listado-mapa .nrj-buscar {
	flex: 1 1 180px;
	min-width: 0;
	padding: 0.6rem 0.85rem;
	border: 1px solid var(--nrj-border);
	border-radius: 8px;
	font-size: 0.95rem;
	background: #fff;
}

.nrj-listado-mapa .nrj-filtro-tipo,
.nrj-listado-mapa .nrj-filtro-clasificacion {
	flex: 0 1 auto;
	max-width: 220px;
	padding: 0.6rem 2rem 0.6rem 0.85rem;   /* hueco a la derecha para la flecha */
	border: 1px solid var(--nrj-border);
	border-radius: 8px;
	font-size: 0.95rem;
	background: #fff;
	min-width: 0;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
}

/* Toggle de columnas: se empuja a la derecha del flex container. */
.nrj-listado-mapa .nrj-cols-toggle {
	display: inline-flex;
	margin-left: auto;
	flex: 0 0 auto;
	border: 1px solid var(--nrj-border);
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
}

/* Reset agresivo: el tema no debe pintar estos botones. */
.nrj-listado-mapa .nrj-cols-toggle button {
	-webkit-appearance: none !important;
	appearance: none !important;
	background: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0.55rem 0.8rem !important;
	margin: 0 !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: none !important;
	font-size: 0.9rem !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--nrj-text-muted) !important;
	cursor: pointer;
	display: flex !important;
	align-items: center;
	gap: 0.25em;
	box-shadow: none !important;
	text-shadow: none !important;
}

.nrj-listado-mapa .nrj-cols-toggle button + button {
	border-left: 1px solid var(--nrj-border) !important;
}

.nrj-listado-mapa .nrj-cols-toggle button.is-active {
	background: var(--nrj-primary) !important;
	color: #fff !important;
}

.nrj-listado-mapa .nrj-cols-toggle button:hover:not(.is-active) {
	background: var(--nrj-primary-soft) !important;
	color: var(--nrj-primary-dark) !important;
}

/* Cuerpo: listado izquierda (más amplio), mapa derecha sticky */
.nrj-listado-mapa .nrj-cuerpo {
	display: grid;
	gap: var(--nrj-gap);
	grid-template-columns: 1fr;
}

@media ( min-width: 900px ) {
	.nrj-listado-mapa .nrj-cuerpo {
		grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	}
}

.nrj-listado-mapa .nrj-listado {
	max-height: calc( var(--nrj-map-height) + 100px );
	overflow-y: auto;
	padding-right: 0.5rem;
}

.nrj-listado-mapa .nrj-listado-status {
	color: var(--nrj-text-muted);
	font-style: italic;
	padding: 1rem;
	text-align: center;
}

/* Grid de cards verticales tipo Airbnb */
.nrj-listado-mapa .nrj-cards {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat( var(--nrj-cols), minmax(0, 1fr) );
	gap: var(--nrj-gap);
}

/* Tarjeta vertical: imagen 16:9 arriba, info debajo */
.nrj-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--nrj-border);
	border-radius: var(--nrj-card-radius);
	overflow: hidden;
	cursor: pointer;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
	box-shadow: var(--nrj-card-shadow);
}

.nrj-card:hover {
	box-shadow: var(--nrj-card-shadow-hv);
	transform: translateY( -2px );
}

.nrj-card-thumb-wrap {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	background: var(--nrj-bg-soft);
	overflow: hidden;
}

.nrj-card-thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.nrj-card:hover .nrj-card-thumb {
	transform: scale( 1.04 );
}

.nrj-card-body {
	padding: 0.85rem 1rem 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	min-width: 0;
}

.nrj-listado-mapa .nrj-card-title,
.nrj-listado-mapa h3.nrj-card-title {
	margin: 0 !important;
	padding: 0 !important;
	font-size: 1.05rem !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--nrj-text) !important;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	box-shadow: none !important;
	text-shadow: none !important;
	-webkit-text-fill-color: var(--nrj-text) !important;
	-webkit-background-clip: border-box !important;
	background-clip: border-box !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	display: block !important;
	width: auto !important;
}

.nrj-card-tipo {
	display: inline-block;
	background: var(--nrj-primary-soft);
	color: var(--nrj-primary-dark);
	font-size: 0.75rem;
	padding: 0.15rem 0.55rem;
	border-radius: 100px;
	width: fit-content;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.nrj-card-address,
.nrj-card-phone {
	margin: 0;
	font-size: 0.85rem;
	color: var(--nrj-text-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.nrj-card-phone {
	color: var(--nrj-primary);
	text-decoration: none;
}

.nrj-card-cta {
	margin-top: 0.5rem;
	font-size: 0.85rem;
	color: var(--nrj-primary);
	text-decoration: none;
	font-weight: 600;
	width: fit-content;
}

.nrj-card-cta:hover {
	text-decoration: underline;
}

/* ============================================================
 * VISTA AGENDA (cpt=evento): listado vertical + calendario
 *
 * IMPORTANTE: muchos temas WP pintan todos los <button> con sus
 * estilos (background azul, padding grande, texto grande). Por eso
 * todo lo que tenga botones lleva selector encadenado con
 * `.nrj-listado-mapa` y, donde toca, `!important` para neutralizar
 * el estilo del tema sin romperlo fuera del plugin.
 * ============================================================ */

/* En agenda, el cuerpo se reparte: listado izquierda (más ancho)
   + calendario derecha. */
.nrj-listado-mapa[data-view="agenda"] .nrj-cuerpo {
	grid-template-columns: 1fr;
}
@media ( min-width: 900px ) {
	.nrj-listado-mapa[data-view="agenda"] .nrj-cuerpo {
		grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr);
	}
}

/* Cards de evento: una debajo de otra, foto a la izquierda. */
.nrj-listado-mapa[data-view="agenda"] .nrj-cards {
	grid-template-columns: 1fr;
}

.nrj-listado-mapa .nrj-card-evento {
	flex-direction: row;
	align-items: stretch;
	overflow: hidden;
}

.nrj-listado-mapa .nrj-card-evento .nrj-card-thumb-wrap {
	width: 200px;
	flex: 0 0 auto;
	aspect-ratio: 4 / 3;
}

.nrj-listado-mapa .nrj-card-evento .nrj-card-body {
	flex: 1;
	min-width: 0;
	padding: 1rem 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.nrj-listado-mapa .nrj-card-evento .nrj-card-title {
	white-space: normal;          /* permitimos 2 líneas en eventos */
	overflow: visible;
	text-overflow: clip;
	font-size: 1.15rem;
	line-height: 1.25;
}

.nrj-listado-mapa .nrj-card-fechas {
	margin: 0;
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--nrj-primary);
	display: flex;
	align-items: center;
	gap: 0.4rem;
}

.nrj-listado-mapa .nrj-card-fechas::before {
	content: "🗓";
	font-size: 1rem;
}

@media ( max-width: 599px ) {
	/* En móvil, evento sigue horizontal pero con thumb más pequeño. */
	.nrj-listado-mapa .nrj-card-evento .nrj-card-thumb-wrap {
		width: 110px;
	}
	.nrj-listado-mapa .nrj-card-evento .nrj-card-body {
		padding: 0.6rem 0.8rem;
		gap: 0.25rem;
	}
	.nrj-listado-mapa .nrj-card-evento .nrj-card-title { font-size: 1rem; }
	.nrj-listado-mapa .nrj-card-fechas { font-size: 0.85rem; }
}

/* Calendario */
.nrj-listado-mapa .nrj-calendario-wrap {
	position: relative;
}

@media ( min-width: 900px ) {
	.nrj-listado-mapa .nrj-calendario-wrap {
		position: sticky;
		top: 1rem;
	}
}

.nrj-listado-mapa .nrj-calendario {
	background: #fff;
	border: 1px solid var(--nrj-border);
	border-radius: var(--nrj-card-radius);
	padding: 1rem;
	box-shadow: var(--nrj-card-shadow);
}

.nrj-listado-mapa .nrj-cal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	margin-bottom: 0.75rem;
}

.nrj-listado-mapa .nrj-cal-title {
	margin: 0 !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	text-align: center !important;
	flex: 1;
	color: var(--nrj-text) !important;
	line-height: 1.3 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

/* Reset agresivo para los botones prev/next del calendario:
   muchos temas pintan todo `button` con su color principal. */
.nrj-listado-mapa .nrj-cal-prev,
.nrj-listado-mapa .nrj-cal-next {
	-webkit-appearance: none !important;
	appearance: none !important;
	background: transparent !important;
	background-image: none !important;
	border: 1px solid var(--nrj-border) !important;
	border-radius: 6px !important;
	width: 32px !important;
	height: 32px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: none !important;
	font-size: 1.1rem !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	cursor: pointer;
	color: var(--nrj-text) !important;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
	text-shadow: none !important;
	flex: 0 0 auto;
}

.nrj-listado-mapa .nrj-cal-prev:hover,
.nrj-listado-mapa .nrj-cal-next:hover {
	background: var(--nrj-primary-soft) !important;
	color: var(--nrj-primary-dark) !important;
	border-color: var(--nrj-primary) !important;
}

.nrj-listado-mapa .nrj-cal-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
}

.nrj-listado-mapa .nrj-cal-dayname {
	text-align: center;
	font-size: 0.7rem;
	font-weight: 600;
	color: var(--nrj-text-muted);
	padding: 0.3rem 0;
	text-transform: uppercase;
}

/* Reset agresivo de los days (son <button>): el tema NO debe pintarlos. */
.nrj-listado-mapa .nrj-cal-day {
	-webkit-appearance: none !important;
	appearance: none !important;
	border: 0 !important;
	background: transparent !important;
	background-image: none !important;
	padding: 0 !important;
	margin: 0 !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: none !important;
	width: auto !important;
	height: auto !important;
	aspect-ratio: 1 / 1;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 0.85rem !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	border-radius: 6px !important;
	cursor: pointer;
	color: var(--nrj-text) !important;
	position: relative;
	box-shadow: none !important;
	text-shadow: none !important;
	transition: background 0.12s, color 0.12s;
}

.nrj-listado-mapa .nrj-cal-day.nrj-cal-empty {
	cursor: default;
	pointer-events: none;
	visibility: hidden;
}

.nrj-listado-mapa .nrj-cal-day:hover:not(.nrj-cal-empty) {
	background: var(--nrj-primary-soft) !important;
	color: var(--nrj-primary-dark) !important;
}

/* Día con eventos: punto azul en la esquina inferior. */
.nrj-listado-mapa .nrj-cal-day.has-events::after {
	content: "";
	position: absolute;
	bottom: 4px;
	left: 50%;
	transform: translateX( -50% );
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--nrj-primary);
}

.nrj-listado-mapa .nrj-cal-day.is-today {
	font-weight: 700 !important;
	color: var(--nrj-primary) !important;
	box-shadow: inset 0 0 0 1px var(--nrj-primary-soft) !important;
}

.nrj-listado-mapa .nrj-cal-day.is-selected {
	background: var(--nrj-primary) !important;
	color: #fff !important;
	font-weight: 700 !important;
}

.nrj-listado-mapa .nrj-cal-day.is-selected.has-events::after {
	background: #fff;
}

.nrj-listado-mapa .nrj-cal-clear {
	-webkit-appearance: none !important;
	appearance: none !important;
	display: block !important;
	margin: 0.75rem 0 0 !important;
	width: 100% !important;
	max-width: none !important;
	min-height: 0 !important;
	background: transparent !important;
	background-image: none !important;
	border: 1px solid var(--nrj-border) !important;
	border-radius: 6px !important;
	padding: 0.55rem 0.75rem !important;
	font-size: 0.85rem !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--nrj-text-muted) !important;
	cursor: pointer;
	box-shadow: none !important;
	text-shadow: none !important;
	text-align: center !important;
}

.nrj-listado-mapa .nrj-cal-clear:hover {
	background: var(--nrj-primary-soft) !important;
	color: var(--nrj-primary-dark) !important;
	border-color: var(--nrj-primary) !important;
}

/* Mapa */
.nrj-listado-mapa .nrj-mapa-wrap {
	position: relative;
}

@media ( min-width: 900px ) {
	.nrj-listado-mapa .nrj-mapa-wrap {
		position: sticky;
		top: 1rem;
	}
}

.nrj-listado-mapa .nrj-mapa {
	width: 100%;
	height: var(--nrj-map-height);
	background: #f0f0f1;
	border-radius: var(--nrj-card-radius);
}

.nrj-listado-mapa .nrj-mapa-aviso {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	max-width: 80%;
	background: #fff;
	border: 1px solid #f0c33c;
	border-radius: 4px;
	padding: 1rem 1.25rem;
	color: #50575e;
	font-size: 0.95rem;
	text-align: center;
}

/* InfoWindow */
.nrj-infowindow {
	max-width: 240px;
	font-family: inherit;
}

.nrj-infowindow img {
	width: 100%;
	height: 120px;
	object-fit: cover;
	border-radius: 4px;
	margin-bottom: 0.4rem;
}

.nrj-infowindow h4 {
	margin: 0 0 0.25rem;
	font-size: 1rem;
}

.nrj-iw-badge {
	display: inline-block;
	background: #f0f0f1;
	color: #50575e;
	font-size: 0.75rem;
	padding: 0.1rem 0.45rem;
	border-radius: 100px;
}

.nrj-iw-cta {
	display: inline-block;
	margin-top: 0.5rem;
	font-size: 0.85rem;
	color: var(--nrj-primary);
	font-weight: 600;
	text-decoration: none;
}

.nrj-iw-cta:hover {
	text-decoration: underline;
}

/* ============================================================
 * Mobile responsive — ajustes específicos < 900px
 * ============================================================ */

@media ( max-width: 899px ) {
	/* En mobile el mapa "fijo" ocupa demasiado: lo bajamos a una altura
	   más razonable y dejamos que el listado fluya debajo. */
	.nrj-listado-mapa {
		--nrj-map-height: 360px;
	}

	/* El listado deja de tener scroll interno: no tiene sentido en mobile
	   donde la página entera ya scrollea. */
	.nrj-listado-mapa .nrj-listado {
		max-height: none;
		padding-right: 0;
	}

	/* Orden mobile: mapa arriba, listado debajo. */
	.nrj-listado-mapa .nrj-mapa-wrap { order: 1; }
	.nrj-listado-mapa .nrj-listado   { order: 2; }

	/* Las cards en mobile siempre 1 columna independientemente del toggle
	   (no tiene sentido 2/3 columnas en pantallas pequeñas). */
	.nrj-listado-mapa .nrj-cards {
		grid-template-columns: 1fr;
	}

	/* El toggle de columnas se oculta en mobile (no aplica). */
	.nrj-cols-toggle { display: none; }

	/* Mini-mapa de la ficha también más bajo. */
	.nrj-single {
		--nrj-mini-map-height: 240px;
	}

	/* Touch targets: WCAG 2.5.5 recomienda 44x44px mínimo para mobile.
	   Aumentamos los botones-icono de la galería del dashboard. */
	.nrj-galeria-item button {
		width: 32px;
		height: 32px;
		font-size: 18px;
	}

	/* Lightbox: padding lateral menor para aprovechar pantalla. */
	.nrj-lightbox {
		padding: 1rem;
	}
	.nrj-lightbox-close {
		top: -2.5rem;
		right: 0;
		font-size: 2.4rem;
		width: 44px;
		height: 44px;
	}

	/* Forms: padding más generoso en inputs táctiles. */
	.nrj-form-row input[type="text"],
	.nrj-form-row input[type="email"],
	.nrj-form-row input[type="tel"],
	.nrj-form-row input[type="url"],
	.nrj-form-row select,
	.nrj-form-row textarea,
	.nrj-dashboard-editar input,
	.nrj-dashboard-editar select,
	.nrj-dashboard-editar textarea {
		min-height: 44px;
		font-size: 16px; /* Evita zoom automático de iOS al focusear. */
	}

	.nrj-btn,
	.nrj-btn-primary {
		min-height: 44px;
		padding: 0.7rem 1.25rem;
	}

	/* Coordenadas en una sola columna en mobile. */
	.nrj-form-row-coords {
		grid-template-columns: 1fr;
	}

	/* Diff de cambios: tipografía más pequeña + scroll horizontal. */
	.nrj-cambio-diff {
		font-size: 0.85rem;
		display: block;
		overflow-x: auto;
	}

	/* Card list del dashboard: 1 columna. */
	.nrj-dashboard-cards {
		grid-template-columns: 1fr;
	}

	/* Nav del dashboard: scroll horizontal si no cabe. */
	.nrj-dashboard-nav {
		overflow-x: auto;
		flex-wrap: nowrap;
	}
	.nrj-dashboard-nav a {
		white-space: nowrap;
	}

	/* Header de la ficha en mobile. */
	.nrj-single .nrj-ficha-titulo,
	.nrj-single h1.nrj-ficha-titulo,
	.nrj-single .entry-title.nrj-ficha-titulo {
		font-size: 1.5rem !important;
	}
}

/* Pantallas muy pequeñas (< 480px). */
@media ( max-width: 479px ) {
	.nrj-listado-mapa {
		--nrj-map-height: 280px;
	}
	.nrj-single {
		--nrj-mini-map-height: 200px;
	}
	.nrj-galeria-thumbs {
		grid-template-columns: repeat( 3, 1fr );
	}
}

/* ============================================================
 * FICHA COMPLETA (single)
 * ============================================================ */

.nrj-single {
	--nrj-mini-map-height: 480px;   /* mapa de la ficha más grande que antes */
}

.nrj-ficha {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.nrj-single .nrj-ficha-header {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

/* El tema activo en producción aplica al h1:
     - background azul con `display: inline` + `box-decoration-break: clone`
       → genera rectángulos azules detrás de cada línea del título.
     - color blanco
     - tamaño enorme (clamp 3rem+)
     - text-transform / letter-spacing decorativos.
   Forzamos un reset completo con `body` como prefijo para ganar
   especificidad a selectores tipo `body.single .entry-title`. */
body .nrj-single .nrj-ficha-titulo,
body .nrj-single h1.nrj-ficha-titulo,
body .nrj-single .entry-title.nrj-ficha-titulo,
body.single .nrj-single .nrj-ficha-titulo,
body.single .nrj-single .entry-title {
	margin: 0 !important;
	padding: 0 !important;
	font-size: clamp( 1.6rem, 3vw, 2.2rem ) !important;
	line-height: 1.2 !important;
	font-weight: 700 !important;
	letter-spacing: -0.01em !important;
	text-transform: none !important;
	color: var(--nrj-text) !important;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	max-width: none !important;
	width: auto !important;
	display: block !important;
	box-shadow: none !important;
	text-shadow: none !important;
	text-decoration: none !important;
	-webkit-box-decoration-break: slice !important;
	box-decoration-break: slice !important;
	-webkit-text-fill-color: var(--nrj-text) !important;
	-webkit-background-clip: border-box !important;
	background-clip: border-box !important;
	white-space: normal !important;
	word-break: normal !important;
	overflow-wrap: anywhere;
}

/* Por si el tema mete spans/links/marks dentro del h1. */
body .nrj-single .nrj-ficha-titulo > *,
body .nrj-single .entry-title.nrj-ficha-titulo > * {
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	color: inherit !important;
	-webkit-text-fill-color: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* HERO: galería + info lado a lado */
.nrj-ficha-hero {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--nrj-gap);
	align-items: start;
}

@media ( min-width: 900px ) {
	.nrj-ficha-hero {
		grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
		gap: 2rem;
	}
}

.nrj-ficha-hero-galeria {
	min-width: 0;
}

.nrj-ficha-hero-info {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	background: #fff;
	border: 1px solid var(--nrj-border);
	border-radius: var(--nrj-card-radius);
	padding: 1.5rem;
	box-shadow: var(--nrj-card-shadow);
}

.nrj-ficha-hero-info > section {
	background: transparent;
	border: 0;
	padding: 0;
	margin: 0;
}

.nrj-ficha-hero-info .nrj-section-title {
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--nrj-text-muted);
	margin: 0 0 0.5rem;
}

/* Secciones de ancho completo (descripción, ubicación) */
.nrj-ficha-section {
	background: #fff;
	border: 1px solid var(--nrj-border);
	border-radius: var(--nrj-card-radius);
	padding: 1.5rem 1.75rem;
	box-shadow: var(--nrj-card-shadow);
}

.nrj-ficha-section .nrj-section-title {
	margin-top: 0;
	margin-bottom: 1rem;
	font-size: 1.25rem;
	color: var(--nrj-text);
}

.nrj-ficha-ubicacion .nrj-mini-mapa {
	height: var(--nrj-mini-map-height);
	border-radius: 8px;
	margin-top: 1rem;
}

.nrj-ficha-ubicacion .nrj-single-direccion {
	font-size: 1.1rem;
	font-weight: 500;
	color: var(--nrj-text);
}

body .nrj-ficha-ubicacion .nrj-btn-directions,
body .nrj-ficha-ubicacion a.nrj-btn-directions {
	display: inline-block !important;
	margin-top: 1rem !important;
	padding: 0.85rem 1.5rem !important;
	font-family: inherit !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	background: var(--nrj-primary) !important;
	background-color: var(--nrj-primary) !important;
	background-image: none !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	border: 0 !important;
	border-radius: 8px !important;
	text-decoration: none !important;
	text-shadow: none !important;
	box-shadow: 0 2px 8px rgba( 0, 68, 204, 0.25 ) !important;
	transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

body .nrj-ficha-ubicacion .nrj-btn-directions:hover,
body .nrj-ficha-ubicacion a.nrj-btn-directions:hover {
	background: var(--nrj-primary-dark) !important;
	background-color: var(--nrj-primary-dark) !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	text-decoration: none !important;
	box-shadow: 0 4px 12px rgba( 0, 68, 204, 0.3 ) !important;
	transform: translateY( -1px );
}

.nrj-single-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	align-items: center;
}

.nrj-chip {
	display: inline-block;
	font-size: 0.85rem;
	padding: 0.2rem 0.65rem;
	border-radius: 100px;
	background: #f0f0f1;
	color: #50575e;
}

.nrj-chip-tipo {
	background: var(--nrj-primary-soft);
	color: var(--nrj-primary-dark);
	font-weight: 600;
}

/* Galería */
.nrj-single-galeria {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.nrj-galeria-hero {
	margin: 0;
	border-radius: var(--nrj-card-radius);
	overflow: hidden;
	background: #f0f0f1;
}

.nrj-galeria-hero img {
	display: block;
	width: 100%;
	max-height: 480px;
	object-fit: cover;
}

.nrj-galeria-thumbs {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 100px, 1fr ) );
	gap: 0.4rem;
}

.nrj-galeria-thumbs li { margin: 0; }

.nrj-galeria-thumb {
	margin: 0;
	border-radius: 6px;
	overflow: hidden;
	background: #f0f0f1;
	aspect-ratio: 1 / 1;
}

.nrj-galeria-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Body de la ficha: main + side */
.nrj-ficha-body {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
}

@media ( min-width: 900px ) {
	.nrj-ficha-body {
		grid-template-columns: minmax( 0, 2fr ) minmax( 280px, 1fr );
	}
}

.nrj-ficha-main {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.nrj-ficha-excerpt {
	font-size: 1.1rem;
	color: var(--nrj-text-muted);
	font-weight: 500;
	margin: 0;
}

.nrj-ficha-content {
	line-height: 1.6;
}

.nrj-ficha-side {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.nrj-ficha-side > section {
	background: #fff;
	border: 1px solid var(--nrj-border);
	border-radius: var(--nrj-card-radius);
	padding: 1rem 1.25rem;
}

body .nrj-single .nrj-section-title,
body .nrj-single h2.nrj-section-title,
body.single .nrj-single .nrj-section-title {
	margin: 0 0 0.6rem !important;
	padding: 0 !important;
	font-size: 1.15rem !important;
	line-height: 1.3 !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--nrj-text) !important;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	text-shadow: none !important;
	-webkit-text-fill-color: var(--nrj-text) !important;
	-webkit-background-clip: border-box !important;
	background-clip: border-box !important;
	display: block !important;
	width: auto !important;
	max-width: none !important;
}

/* Contacto / evento meta: dl en dos columnas */
.nrj-contacto-list,
.nrj-evento-list {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.nrj-contacto-list > div,
.nrj-evento-list > div {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 0.5rem;
	align-items: baseline;
}

.nrj-contacto-list dt,
.nrj-evento-list dt {
	font-weight: 600;
	color: var(--nrj-text-muted);
	font-size: 0.9rem;
}

.nrj-contacto-list dd,
.nrj-evento-list dd {
	margin: 0;
	word-break: break-word;
}

.nrj-contacto-list a {
	color: var(--nrj-primary);
	text-decoration: none;
}

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

/* Mini-mapa */
.nrj-mini-mapa {
	width: 100%;
	height: var(--nrj-mini-map-height);
	background: #f0f0f1;
	border-radius: 6px;
	margin-top: 0.5rem;
}

.nrj-mini-mapa-aviso {
	margin: 0.5rem 0 0;
	padding: 0.6rem 0.75rem;
	border: 1px solid #f0c33c;
	border-radius: 4px;
	background: #fffaeb;
	color: #50575e;
	font-size: 0.9rem;
}

.nrj-single-direccion {
	margin: 0 0 0.5rem;
}

.nrj-single-acciones {
	margin-top: 0.75rem;
}

.nrj-btn {
	display: inline-block;
	padding: 0.55rem 1rem;
	border-radius: 4px;
	background: var(--nrj-primary);
	color: #fff;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.95rem;
}

.nrj-btn:hover {
	background: var(--nrj-primary-dark);
	color: #fff;
}

.nrj-btn-directions::before {
	content: "→ ";
}

/* Horarios */
.nrj-horarios-text {
	margin: 0;
	white-space: pre-wrap;
	line-height: 1.5;
}

/* Lightbox */
.nrj-lightbox {
	position: fixed;
	inset: 0;
	background: rgba( 0, 0, 0, 0.85 );
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
}

.nrj-lightbox[hidden] {
	display: none;
}

.nrj-lightbox-inner {
	position: relative;
	max-width: 100%;
	max-height: 100%;
}

.nrj-lightbox-inner img {
	display: block;
	max-width: 100%;
	max-height: calc( 100vh - 4rem );
	width: auto;
	height: auto;
}

.nrj-lightbox-close {
	position: absolute;
	top: -2rem;
	right: -0.5rem;
	background: transparent;
	border: 0;
	color: #fff;
	font-size: 2rem;
	line-height: 1;
	cursor: pointer;
	padding: 0.25rem 0.5rem;
}

body.nrj-lightbox-open {
	overflow: hidden;
}

/* ============================================================
 * FORM REGISTRO PÚBLICO
 * ============================================================ */

.nrj-form-registro {
	--nrj-form-border: #c3c4c7;
	--nrj-form-error: #b32d2e;
	--nrj-form-success: #1c4729;
	max-width: 720px;
}

.nrj-form-intro {
	color: #50575e;
	margin-bottom: 1.5rem;
}

.nrj-form-row {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	margin-bottom: 1rem;
}

.nrj-form-row label {
	font-weight: 600;
	font-size: 0.95rem;
}

.nrj-form-row input[type="text"],
.nrj-form-row input[type="email"],
.nrj-form-row input[type="tel"],
.nrj-form-row input[type="url"],
.nrj-form-row select,
.nrj-form-row textarea {
	width: 100%;
	padding: 0.55rem 0.75rem;
	border: 1px solid var( --nrj-form-border, #c3c4c7 );
	border-radius: 4px;
	font-size: 1rem;
	font-family: inherit;
	background: #fff;
	box-sizing: border-box;
}

.nrj-form-row textarea {
	resize: vertical;
	min-height: 60px;
}

.nrj-form-row.has-error input,
.nrj-form-row.has-error select,
.nrj-form-row.has-error textarea {
	border-color: var(--nrj-form-error);
}

.nrj-form-row-checkbox label {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	font-weight: 400;
	cursor: pointer;
}

.nrj-form-row-checkbox input[type="checkbox"] {
	margin-top: 0.2em;
	flex-shrink: 0;
}

.nrj-required {
	color: var(--nrj-form-error);
	margin-left: 0.15em;
}

.nrj-form-help {
	color: #50575e;
	font-size: 0.85rem;
}

.nrj-field-error {
	color: var(--nrj-form-error);
	font-size: 0.85rem;
	min-height: 1em;
}

.nrj-form-row .nrj-field-error:empty {
	display: none;
}

.nrj-form-actions {
	margin-top: 1.5rem;
}

.nrj-btn-primary {
	background: var(--nrj-primary);
	color: #fff;
	border: 0;
	padding: 0.7rem 1.5rem;
	border-radius: 4px;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s ease, opacity 0.15s ease;
}

.nrj-btn-primary:hover:not(:disabled) {
	background: var(--nrj-primary-dark);
}

.nrj-btn-primary:disabled,
.nrj-btn-primary.is-loading {
	opacity: 0.6;
	cursor: wait;
}

.nrj-form-message {
	margin-top: 1rem;
	padding: 0.75rem 1rem;
	border-radius: 4px;
	font-size: 0.95rem;
}

.nrj-form-message-success {
	background: #d4f4dc;
	border: 1px solid #b6e3c1;
	color: var(--nrj-form-success);
}

.nrj-form-message-error {
	background: #fcecec;
	border: 1px solid #f1c2c2;
	color: var(--nrj-form-error);
}

/* ============================================================
 * DASHBOARD DEL OWNER
 * ============================================================ */

.nrj-dashboard {
	--nrj-border: #e5e5e5;
	--nrj-text-muted: #666;
}

.nrj-dashboard-nav {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	border-bottom: 1px solid var(--nrj-border);
	padding-bottom: 0.75rem;
	margin-bottom: 1.5rem;
}

.nrj-dashboard-nav a {
	text-decoration: none;
	color: var(--nrj-text-muted);
	padding: 0.4rem 0;
	font-weight: 500;
	border-bottom: 2px solid transparent;
}

.nrj-dashboard-nav a.is-current {
	color: var(--nrj-primary);
	border-bottom-color: var(--nrj-primary);
}

.nrj-dashboard-nav-logout {
	margin-left: auto;
	color: #b32d2e !important;
}

.nrj-dashboard-header {
	margin-bottom: 1.5rem;
}

.nrj-dashboard-header h2 {
	margin: 0.25em 0;
}

/* Cards de mis fichas */
.nrj-dashboard-cards {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 280px, 1fr ) );
	gap: 1rem;
}

.nrj-dashboard-card {
	background: #fff;
	border: 1px solid var(--nrj-border);
	border-radius: 8px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.nrj-dashboard-card-thumb {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	background: #f0f0f1;
}

.nrj-dashboard-card-body {
	padding: 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	flex: 1;
}

.nrj-dashboard-card-body h3 {
	margin: 0;
	font-size: 1.05rem;
}

.nrj-status-badge {
	display: inline-block;
	background: #f0f0f1;
	color: #50575e;
	font-size: 0.8rem;
	padding: 0.15rem 0.6rem;
	border-radius: 100px;
	width: fit-content;
}

.nrj-card-status-pending .nrj-status-badge {
	background: #fff3c2;
	color: #80570c;
}

.nrj-card-status-publish .nrj-status-badge {
	background: #d4f4dc;
	color: #1c4729;
}

.nrj-dashboard-card-actions {
	margin-top: auto;
	display: flex;
	gap: 0.75rem;
	align-items: center;
}

.nrj-link {
	color: var(--nrj-primary);
	text-decoration: none;
	font-size: 0.9rem;
}

.nrj-empty {
	text-align: center;
	padding: 2rem;
	background: #f6f7f7;
	border-radius: 8px;
}

/* Editar ficha — inputs (refuerzo por si el tema los pisa). */
.nrj-dashboard-editar input[type="text"],
.nrj-dashboard-editar input[type="email"],
.nrj-dashboard-editar input[type="tel"],
.nrj-dashboard-editar input[type="url"],
.nrj-dashboard-editar input[type="number"],
.nrj-dashboard-editar select,
.nrj-dashboard-editar textarea {
	width: 100%;
	padding: 0.55rem 0.75rem;
	border: 1px solid #c3c4c7;
	border-radius: 4px;
	font-size: 1rem;
	font-family: inherit;
	background: #fff;
	box-sizing: border-box;
	color: #1d2327;
	line-height: 1.4;
}

.nrj-dashboard-editar input:focus,
.nrj-dashboard-editar textarea:focus,
.nrj-dashboard-editar select:focus {
	outline: 2px solid var(--nrj-primary);
	outline-offset: -1px;
}

.nrj-dashboard-editar textarea {
	resize: vertical;
	min-height: 70px;
}

.nrj-edit-grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: 1fr;
}

@media ( min-width: 900px ) {
	.nrj-edit-grid {
		grid-template-columns: minmax( 0, 2fr ) minmax( 280px, 1fr );
	}
}

.nrj-edit-section {
	background: #fff;
	border: 1px solid var(--nrj-border);
	border-radius: 8px;
	padding: 1.25rem 1.5rem;
	margin-bottom: 1rem;
}

.nrj-edit-section h3 {
	margin-top: 0;
}

.nrj-edit-section-readonly {
	background: #fafbfc;
}

.nrj-edit-section-structural {
	border-left: 3px solid #f0c33c;
}

.nrj-pending-banner {
	background: #fff8e1;
	border: 1px solid #f0c33c;
	border-radius: 4px;
	padding: 0.6rem 0.9rem;
	margin-bottom: 1rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}

.nrj-cancel-pending {
	background: none;
	border: 0;
	color: #b32d2e;
	cursor: pointer;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: underline;
}

.nrj-badge-pending {
	display: inline-block;
	background: #f0c33c;
	color: #50575e;
	font-size: 0.7rem;
	padding: 0.1rem 0.4rem;
	border-radius: 100px;
	margin-left: 0.4em;
	font-weight: 600;
}

.nrj-form-row-coords {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem;
}

.nrj-save-struct-status {
	margin-left: 0.75rem;
	font-size: 0.95rem;
}

.nrj-save-struct-status[data-kind="success"] { color: #1c4729; }
.nrj-save-struct-status[data-kind="error"]   { color: #b32d2e; }
.nrj-save-struct-status[data-kind="pending"] { color: var(--nrj-text-muted); font-style: italic; }

/* Vista Cambios pendientes del owner */
.nrj-cambios-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.nrj-cambio {
	background: #fff;
	border: 1px solid var(--nrj-border);
	border-radius: 8px;
	padding: 1rem 1.25rem;
}

.nrj-cambio-status-pending  { border-left: 3px solid #f0c33c; }
.nrj-cambio-status-approved { border-left: 3px solid #1c4729; }
.nrj-cambio-status-rejected { border-left: 3px solid #b32d2e; }

.nrj-cambio-header {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	flex-wrap: wrap;
	margin-bottom: 0.5rem;
}

.nrj-cambio-header h3 {
	margin: 0;
	font-size: 1.05rem;
}

.nrj-cambio-diff {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
	margin: 0.5rem 0;
}

.nrj-cambio-diff th,
.nrj-cambio-diff td {
	text-align: left;
	padding: 0.4rem 0.5rem;
	border-bottom: 1px solid #f0f0f1;
	vertical-align: top;
}

.nrj-cambio-diff thead th {
	background: #f6f7f7;
	font-weight: 600;
}

.nrj-cambio-diff .nrj-diff-old { color: #b32d2e; text-decoration: line-through; }
.nrj-cambio-diff .nrj-diff-new { color: #1c4729; font-weight: 600; }

.nrj-cambio-footer {
	margin-top: 0.5rem;
	color: var(--nrj-text-muted);
	font-size: 0.85rem;
}

.nrj-cambio-notes {
	margin: 0.5rem 0;
	padding: 0.5rem 0.75rem;
	background: #f6f7f7;
	border-radius: 4px;
	color: #1d2327;
}

/* ============================================================
 * BLOQUE DE CLAIM (en single-establecimiento)
 * Estética sutil: una sola línea de texto con link inline.
 * El form se despliega al click sin destacar visualmente al inicio.
 * ============================================================ */

.nrj-claim-block {
	margin-top: 1.5rem;
	padding: 0;
	background: transparent;
	border: 0;
}

.nrj-claim-line {
	margin: 0;
	color: var(--nrj-text-muted, #50575e);
	font-size: 0.9rem;
	line-height: 1.55;
}

.nrj-claim-line strong {
	color: var(--nrj-text, #1d2327);
}

/* "Click aquí": botón unificado con el resto del plugin (estilo
   `.nrj-btn-directions`). Reset agresivo para que el tema activo
   no aplique sus estilos de <button>. */
.nrj-claim-block .nrj-claim-link,
body .nrj-claim-block .nrj-claim-link,
body .nrj-claim-block button.nrj-claim-link {
	-webkit-appearance: none !important;
	appearance: none !important;
	display: inline-block !important;
	vertical-align: middle !important;
	margin: 0 0 0 0.25rem !important;
	padding: 0.55rem 1.1rem !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: none !important;
	width: auto !important;
	height: auto !important;
	background: var(--nrj-primary, #0044cc) !important;
	background-color: var(--nrj-primary, #0044cc) !important;
	background-image: none !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	border: 0 !important;
	border-radius: 8px !important;
	font-family: inherit !important;
	font-size: 0.9rem !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	text-decoration: none !important;
	text-shadow: none !important;
	box-shadow: 0 2px 8px rgba( 0, 68, 204, 0.2 ) !important;
	cursor: pointer;
	transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.nrj-claim-block .nrj-claim-link:hover,
body .nrj-claim-block button.nrj-claim-link:hover {
	background: var(--nrj-primary-dark, #003399) !important;
	background-color: var(--nrj-primary-dark, #003399) !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	text-decoration: none !important;
	box-shadow: 0 4px 12px rgba( 0, 68, 204, 0.3 ) !important;
	transform: translateY( -1px );
}

.nrj-claim-block .nrj-claim-link:focus-visible {
	outline: 2px solid #fff !important;
	outline-offset: -3px !important;
	box-shadow: 0 0 0 4px var(--nrj-primary, #0044cc) !important;
}

.nrj-claim-pending {
	margin: 1.5rem 0 0;
	padding: 0.6rem 0.9rem;
	background: #fffaeb;
	border-left: 3px solid #f0c33c;
	border-radius: 4px;
	color: #80570c;
	font-size: 0.9rem;
}

.nrj-claim-actions {
	margin-top: 0.5rem;
	display: flex;
	gap: 0.75rem;
	align-items: center;
	flex-wrap: wrap;
}

/* Cuando el form se despliega, sí lleva caja blanca contenedora. */
.nrj-claim-form {
	margin-top: 1rem;
	background: #fff;
	border: 1px solid var(--nrj-border, #e5e7eb);
	border-radius: 8px;
	padding: 1.25rem;
	box-shadow: var(--nrj-card-shadow, 0 1px 2px rgba(0,0,0,0.04));
}

.nrj-claim-form input[type="text"],
.nrj-claim-form textarea {
	width: 100%;
	padding: 0.5rem 0.75rem;
	border: 1px solid #c3c4c7;
	border-radius: 4px;
	font-family: inherit;
	font-size: 1rem;
	box-sizing: border-box;
}

.nrj-claim-form textarea {
	resize: vertical;
	min-height: 80px;
}

.nrj-readonly-list {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.nrj-readonly-list > div {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 0.5rem;
}

.nrj-readonly-list dt {
	font-weight: 600;
	color: var(--nrj-text-muted);
	font-size: 0.9rem;
}

.nrj-readonly-list dd {
	margin: 0;
	color: #1d2327;
}

.nrj-edit-side {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.nrj-save-status {
	margin-left: 0.75rem;
	font-size: 0.95rem;
}

.nrj-save-status[data-kind="success"] { color: #1c4729; }
.nrj-save-status[data-kind="error"]   { color: #b32d2e; }
.nrj-save-status[data-kind="pending"] { color: var(--nrj-text-muted); font-style: italic; }

/* Foto de portada: preview grande arriba de la galería */
.nrj-portada-preview {
	width: 100%;
	aspect-ratio: 16 / 10;
	border-radius: 8px;
	overflow: hidden;
	background: var(--nrj-bg-soft, #f4f6f8);
	border: 1px solid var(--nrj-border, #e2e6ea);
	margin: 0.25rem 0 0.6rem;
	display: flex;
	align-items: center;
	justify-content: center;
}

.nrj-portada-preview img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.nrj-portada-empty {
	color: var(--nrj-text-muted, #50575e);
	font-size: 0.95rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.4rem;
	text-align: center;
	padding: 1rem;
}

.nrj-portada-empty span[aria-hidden] {
	font-size: 2.5rem;
	line-height: 1;
}

.nrj-portada-help {
	margin: 0.4rem 0 0;
	font-size: 0.85rem;
	color: var(--nrj-text-muted, #50575e);
	line-height: 1.45;
}

/* Galería en el editor */
.nrj-galeria-tip {
	margin: 0 0 0.5rem;
	font-size: 0.85rem;
	color: var(--nrj-text-muted, #50575e);
	line-height: 1.45;
}

.nrj-tip-star {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	background: var(--nrj-primary, #0044cc);
	color: #fff;
	border-radius: 4px;
	font-size: 11px;
	vertical-align: -3px;
}

.nrj-galeria-grid {
	list-style: none;
	margin: 0 0 0.75rem;
	padding: 0;
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 90px, 1fr ) );
	gap: 0.45rem;
}

.nrj-galeria-item {
	position: relative;
	aspect-ratio: 1 / 1;
	border-radius: 6px;
	overflow: hidden;
	background: #f0f0f1;
	border: 2px solid transparent;
	transition: border-color 0.15s ease, transform 0.15s ease;
}

.nrj-galeria-item.is-featured {
	border-color: var(--nrj-primary, #0044cc);
	box-shadow: 0 2px 10px rgba( 0, 68, 204, 0.25 );
}

.nrj-galeria-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Cinta "Portada" en la esquina inferior de la miniatura destacada. */
.nrj-galeria-featured-label {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--nrj-primary, #0044cc);
	color: #fff;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-align: center;
	padding: 3px 0;
	text-transform: uppercase;
	pointer-events: none;
	line-height: 1;
}

/* Reset agresivo para que el tema activo no pinte estos botones. */
.nrj-galeria-item button {
	-webkit-appearance: none !important;
	appearance: none !important;
	position: absolute !important;
	top: 4px !important;
	border: 0 !important;
	cursor: pointer;
	background: rgba( 0, 0, 0, 0.65 ) !important;
	background-image: none !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	border-radius: 4px !important;
	padding: 0 !important;
	margin: 0 !important;
	width: 24px !important;
	height: 24px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	box-shadow: none !important;
	text-shadow: none !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	transition: background 0.12s, transform 0.12s;
}

.nrj-galeria-item button:hover {
	background: rgba( 0, 0, 0, 0.85 ) !important;
	transform: scale( 1.08 );
}

.nrj-galeria-item .nrj-galeria-del      { right: 4px !important; }
.nrj-galeria-item .nrj-galeria-set-featured {
	left: 4px !important;
}
.nrj-galeria-item.is-featured .nrj-galeria-set-featured {
	background: var(--nrj-primary, #0044cc) !important;
	color: #fff !important;
	cursor: default;
}
.nrj-galeria-item.is-featured .nrj-galeria-set-featured:hover {
	transform: none;
}

.nrj-galeria-add-btn {
	display: inline-block;
	cursor: pointer;
	margin-top: 0.5rem;
}

.nrj-galeria-status {
	margin-top: 0.5rem;
	font-size: 0.9rem;
}

.nrj-galeria-status[data-kind="success"] { color: #1c4729; }
.nrj-galeria-status[data-kind="error"]   { color: #b32d2e; }
.nrj-galeria-status[data-kind="pending"] { color: var(--nrj-text-muted); font-style: italic; }

/* Login del dashboard */
.nrj-dashboard-login form {
	max-width: 380px;
}

.nrj-dashboard-login form p {
	margin-bottom: 1rem;
}

.nrj-dashboard-login input[type="text"],
.nrj-dashboard-login input[type="password"] {
	width: 100%;
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--nrj-border);
	border-radius: 4px;
	font-size: 1rem;
}

.nrj-dashboard-login-extra {
	margin-top: 1rem;
	font-size: 0.9rem;
}

/* ============================================================
 * CARRUSEL ([nrj_carrusel])
 *
 * Server-rendered. El track usa scroll horizontal con scroll-snap;
 * las flechas hacen scrollBy del ancho de una tarjeta. Sin librería
 * externa.
 * ============================================================ */

.nrj-carrusel {
	width: 100%;
	margin: 1.5rem 0;
}

.nrj-carrusel-header {
	text-align: center;
	margin-bottom: 1.5rem;
}

.nrj-carrusel-kicker {
	margin: 0 0 0.5rem;
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nrj-primary);
}

/* Reset agresivo del título contra temas que pintan h2 enorme. */
body .nrj-carrusel .nrj-carrusel-title,
body .nrj-carrusel h2.nrj-carrusel-title {
	margin: 0 !important;
	padding: 0 !important;
	font-size: clamp( 1.6rem, 3.2vw, 2.4rem ) !important;
	line-height: 1.15 !important;
	font-weight: 800 !important;
	letter-spacing: -0.01em !important;
	text-transform: none !important;
	color: var(--nrj-text) !important;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	-webkit-text-fill-color: var(--nrj-text) !important;
	-webkit-background-clip: border-box !important;
	background-clip: border-box !important;
	border: 0 !important;
	box-shadow: none !important;
	text-shadow: none !important;
	display: block !important;
}

/* Viewport: contenedor relativo para anclar las flechas. */
.nrj-carrusel-viewport {
	position: relative;
	width: 100%;
}

/* Track: scroll horizontal con snap. */
.nrj-carrusel-track {
	list-style: none;
	margin: 0;
	padding: 0.5rem 0.5rem;
	display: flex;
	gap: 1.25rem;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;             /* Firefox */
	-ms-overflow-style: none;          /* IE/Edge legacy */
	scroll-behavior: smooth;
	outline: none;
}
.nrj-carrusel-track::-webkit-scrollbar { display: none; }

.nrj-carrusel-item {
	flex: 0 0 auto;
	width: calc( ( 100% - 1.25rem * 2 ) / 3 );  /* 3 cards de base en desktop */
	scroll-snap-align: start;
	min-width: 240px;
}

@media ( max-width: 1024px ) {
	.nrj-carrusel-item { width: calc( ( 100% - 1.25rem ) / 2 ); }
}
@media ( max-width: 640px ) {
	.nrj-carrusel-item { width: 86%; }
	.nrj-carrusel-track { padding: 0.5rem 0.25rem; gap: 1rem; }
}

/* Card: enlace completo a la ficha. */
.nrj-carrusel-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: var(--nrj-card-radius);
	overflow: hidden;
	box-shadow: var(--nrj-card-shadow);
	color: var(--nrj-text);
	text-decoration: none !important;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
	height: 100%;
}

.nrj-carrusel-card:hover {
	box-shadow: var(--nrj-card-shadow-hv);
	transform: translateY( -3px );
}

.nrj-carrusel-thumb-wrap {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	background: var(--nrj-bg-soft);
	overflow: hidden;
}

.nrj-carrusel-thumb-wrap img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	display: block !important;
	border-radius: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	transition: transform 0.4s ease;
}

/* Por si algún tema autoenlaza URLs sueltas dentro del card. */
.nrj-carrusel-thumb-wrap a,
.nrj-carrusel-thumb-wrap p {
	display: none !important;
}

.nrj-carrusel-card:hover .nrj-carrusel-thumb-wrap img {
	transform: scale( 1.05 );
}

.nrj-carrusel-thumb-empty {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 3rem;
	color: var(--nrj-text-muted);
}

/* Placeholder cuando la ficha NO tiene foto real (ni featured ni default
   del término). Más elegante que mostrar el SVG fallback genérico. */
.nrj-carrusel-thumb-placeholder {
	position: absolute;
	inset: 0;
	background:
		radial-gradient( circle at 30% 20%, rgba( 255, 255, 255, 0.18 ) 0%, transparent 50% ),
		radial-gradient( circle at 70% 80%, rgba( 255, 255, 255, 0.10 ) 0%, transparent 60% ),
		linear-gradient( 135deg, var(--nrj-primary) 0%, var(--nrj-primary-dark) 100% );
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.nrj-carrusel-thumb-placeholder::before,
.nrj-carrusel-thumb-placeholder::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	background: rgba( 255, 255, 255, 0.06 );
	pointer-events: none;
}

.nrj-carrusel-thumb-placeholder::before {
	width: 180px;
	height: 180px;
	top: -60px;
	right: -60px;
}

.nrj-carrusel-thumb-placeholder::after {
	width: 120px;
	height: 120px;
	bottom: -40px;
	left: -40px;
}

.nrj-carrusel-thumb-icon {
	position: relative;
	z-index: 1;
	font-size: 3.2rem;
	line-height: 1;
	filter: drop-shadow( 0 2px 6px rgba( 0, 0, 0, 0.25 ) );
}

.nrj-carrusel-card:hover .nrj-carrusel-thumb-placeholder {
	background:
		radial-gradient( circle at 30% 20%, rgba( 255, 255, 255, 0.25 ) 0%, transparent 50% ),
		radial-gradient( circle at 70% 80%, rgba( 255, 255, 255, 0.15 ) 0%, transparent 60% ),
		linear-gradient( 135deg, var(--nrj-primary) 0%, var(--nrj-primary-dark) 100% );
}

/* Banner inferior sobre la imagen (tipo / fecha de evento). */
.nrj-carrusel-overlay {
	position: absolute;
	left: 12px;
	right: 12px;
	bottom: 12px;
	display: flex;
	gap: 0.5rem;
	pointer-events: none;
}

.nrj-carrusel-overlay-pill {
	background: rgba( 255, 255, 255, 0.95 );
	color: var(--nrj-primary);
	font-size: 0.8rem;
	font-weight: 600;
	padding: 0.35rem 0.7rem;
	border-radius: 6px;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	box-shadow: 0 1px 4px rgba( 0, 0, 0, 0.08 );
	max-width: calc( 100% - 0.5rem );
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.nrj-carrusel-body {
	padding: 1rem 1.1rem 1.1rem;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	flex: 1;
}

/* Reset agresivo del card-title contra temas que pintan h3 raro. */
body .nrj-carrusel .nrj-carrusel-card-title,
body .nrj-carrusel h3.nrj-carrusel-card-title {
	margin: 0 !important;
	padding: 0 !important;
	font-size: 1.1rem !important;
	line-height: 1.25 !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--nrj-text) !important;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	-webkit-text-fill-color: var(--nrj-text) !important;
	-webkit-background-clip: border-box !important;
	background-clip: border-box !important;
	border: 0 !important;
	box-shadow: none !important;
	text-shadow: none !important;
	display: -webkit-box !important;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.nrj-carrusel-card-loc {
	margin: 0 !important;
	font-size: 0.9rem !important;
	color: var(--nrj-text-muted) !important;
	-webkit-text-fill-color: var(--nrj-text-muted) !important;
	background: none !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.nrj-carrusel-card-cta {
	margin-top: auto;
	align-self: flex-start;
	display: inline-block;
	padding: 0.55rem 1.1rem;
	background: var(--nrj-primary);
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	font-weight: 600;
	font-size: 0.9rem;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba( 0, 68, 204, 0.2 );
	transition: background 0.15s, transform 0.15s, box-shadow 0.15s;
}

.nrj-carrusel-card:hover .nrj-carrusel-card-cta {
	background: var(--nrj-primary-dark);
	box-shadow: 0 4px 12px rgba( 0, 68, 204, 0.3 );
}

/* Flechas prev/next (reset agresivo: temas pintan <button> azul gigante). */
.nrj-carrusel .nrj-carrusel-arrow {
	-webkit-appearance: none !important;
	appearance: none !important;
	position: absolute !important;
	top: 50% !important;
	transform: translateY( -50% ) !important;
	z-index: 2;
	width: 44px !important;
	height: 44px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
	background: #fff !important;
	background-image: none !important;
	color: var(--nrj-primary) !important;
	-webkit-text-fill-color: var(--nrj-primary) !important;
	border: 1px solid var(--nrj-border) !important;
	border-radius: 50% !important;
	font-size: 1.6rem !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba( 0, 0, 0, 0.12 ) !important;
	text-shadow: none !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	transition: background 0.15s, color 0.15s, transform 0.15s;
}

.nrj-carrusel .nrj-carrusel-arrow:hover {
	background: var(--nrj-primary) !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	transform: translateY( -50% ) scale( 1.05 ) !important;
}

.nrj-carrusel-prev { left: -10px; }
.nrj-carrusel-next { right: -10px; }

@media ( max-width: 640px ) {
	.nrj-carrusel-prev { left: 4px; }
	.nrj-carrusel-next { right: 4px; }
	.nrj-carrusel .nrj-carrusel-arrow {
		width: 38px !important;
		height: 38px !important;
		font-size: 1.3rem !important;
	}
}

.nrj-carrusel-arrow.is-hidden {
	opacity: 0;
	pointer-events: none;
}

/* Si todas las cards caben en pantalla, ocultamos las flechas. */
.nrj-carrusel.is-static .nrj-carrusel-arrow { display: none !important; }
.nrj-carrusel.is-static .nrj-carrusel-track {
	overflow-x: hidden;
	justify-content: center;
}

/* ============================================================
 * BUSCADOR ([nrj_buscador]) — estilo hero o compact
 * ============================================================ */

.nrj-buscador {
	position: relative;
	width: 100%;
	margin: 0 0 2rem;
	overflow: hidden;
}

/* Estilo HERO: fondo grande + heading + form sobre overlay. */
.nrj-buscador-hero {
	min-height: 480px;
	padding: 4rem 1.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	border-radius: var(--nrj-card-radius);
	isolation: isolate;
}

.nrj-buscador-hero .nrj-buscador-bg {
	position: absolute;
	inset: 0;
	background-image: var(--nrj-buscador-bg);
	background-size: cover;
	background-position: center;
	z-index: -2;
}

.nrj-buscador-hero .nrj-buscador-overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient( 180deg, rgba( 0, 0, 0, 0.30 ) 0%, rgba( 0, 0, 0, 0.55 ) 100% );
	z-index: -1;
}

/* Si no hay imagen de fondo, fallback a gradiente azul. */
.nrj-buscador-hero:not([style*="--nrj-buscador-bg"]) {
	background: linear-gradient( 135deg, var(--nrj-primary), var(--nrj-primary-dark) );
}

.nrj-buscador-inner {
	position: relative;
	width: 100%;
	max-width: 980px;
	margin: 0 auto;
	text-align: center;
}

.nrj-buscador-header {
	margin-bottom: 1.5rem;
}

body .nrj-buscador-hero .nrj-buscador-title,
body .nrj-buscador-hero h2.nrj-buscador-title {
	margin: 0 0 0.6rem !important;
	padding: 0 !important;
	font-size: clamp( 2rem, 4.5vw, 3.4rem ) !important;
	line-height: 1.1 !important;
	font-weight: 800 !important;
	letter-spacing: -0.01em !important;
	text-transform: none !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	box-shadow: none !important;
	text-shadow: 0 2px 12px rgba( 0, 0, 0, 0.4 ) !important;
	display: block !important;
	-webkit-background-clip: border-box !important;
	background-clip: border-box !important;
}

.nrj-buscador-hero .nrj-buscador-subtitle {
	margin: 0 auto;
	max-width: 680px;
	font-size: 1.05rem;
	line-height: 1.5;
	color: #fff;
	opacity: 0.95;
	text-shadow: 0 1px 6px rgba( 0, 0, 0, 0.4 );
}

/* FORM (igual en hero y compact). */
.nrj-buscador-form {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	width: 100%;
	background: #fff;
	border-radius: 12px;
	padding: 6px;
	box-shadow: 0 6px 24px rgba( 0, 0, 0, 0.18 );
	max-width: 880px;
	margin: 0 auto;
}

.nrj-buscador-field {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	align-items: stretch;
	border-right: 1px solid var(--nrj-border);
}

.nrj-buscador-field:last-of-type {
	border-right: 0;
}

.nrj-buscador-form input[type="search"],
.nrj-buscador-form select {
	-webkit-appearance: none !important;
	appearance: none !important;
	width: 100% !important;
	background: transparent !important;
	background-image: none !important;
	border: 0 !important;
	padding: 0.95rem 1rem !important;
	font-family: inherit !important;
	font-size: 1rem !important;
	color: var(--nrj-text) !important;
	-webkit-text-fill-color: var(--nrj-text) !important;
	box-shadow: none !important;
	text-shadow: none !important;
	border-radius: 0 !important;
	margin: 0 !important;
	min-height: 0 !important;
	height: auto !important;
}

.nrj-buscador-form input[type="search"]:focus,
.nrj-buscador-form select:focus {
	outline: none !important;
	box-shadow: inset 0 -2px 0 var(--nrj-primary) !important;
}

.nrj-buscador-form select {
	padding-right: 2.5rem !important;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%23999' d='M6 8L0 0h12z'/></svg>") !important;
	background-repeat: no-repeat !important;
	background-position: right 0.85rem center !important;
}

/* Reset agresivo del botón submit. */
.nrj-buscador .nrj-buscador-submit {
	-webkit-appearance: none !important;
	appearance: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto !important;
	padding: 0.95rem 2rem !important;
	margin: 0 !important;
	min-width: 0 !important;
	min-height: 0 !important;
	background: var(--nrj-primary) !important;
	background-image: none !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	border: 0 !important;
	border-radius: 8px !important;
	font-family: inherit !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.04em !important;
	line-height: 1 !important;
	text-transform: uppercase !important;
	cursor: pointer;
	box-shadow: 0 2px 10px rgba( 0, 68, 204, 0.3 ) !important;
	text-shadow: none !important;
	transition: background 0.15s, transform 0.15s, box-shadow 0.15s;
}

.nrj-buscador .nrj-buscador-submit:hover {
	background: var(--nrj-primary-dark) !important;
	transform: translateY( -1px );
	box-shadow: 0 4px 16px rgba( 0, 68, 204, 0.4 ) !important;
}

@media ( max-width: 640px ) {
	.nrj-buscador-form {
		flex-direction: column;
		gap: 4px;
		padding: 8px;
	}
	.nrj-buscador-field { border-right: 0; border-bottom: 1px solid var(--nrj-border); }
	.nrj-buscador-field:last-of-type { border-bottom: 0; }
	.nrj-buscador .nrj-buscador-submit { width: 100% !important; padding: 0.95rem 1rem !important; }
	.nrj-buscador-hero { min-height: 380px; padding: 3rem 1rem; }
}

/* Estilo COMPACT: solo barra horizontal, sin fondo. */
.nrj-buscador-compact {
	background: transparent;
	padding: 0;
	min-height: 0;
}

.nrj-buscador-compact .nrj-buscador-form {
	box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.06 );
	border: 1px solid var(--nrj-border);
}

/* ============================================================
 * RESULTADOS ([nrj_resultados]) — grid de tarjetas cuadradas
 * ============================================================ */

.nrj-resultados {
	width: 100%;
	margin: 1.5rem 0;
	--nrj-res-cols: 3;
}

.nrj-resultados[data-cols="2"] { --nrj-res-cols: 2; }
.nrj-resultados[data-cols="3"] { --nrj-res-cols: 3; }
.nrj-resultados[data-cols="4"] { --nrj-res-cols: 4; }

.nrj-resultados-header {
	margin-bottom: 1.5rem;
}

body .nrj-resultados .nrj-resultados-title,
body .nrj-resultados h2.nrj-resultados-title {
	margin: 0 !important;
	padding: 0 !important;
	font-size: clamp( 1.4rem, 2.5vw, 2rem ) !important;
	line-height: 1.2 !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--nrj-text) !important;
	-webkit-text-fill-color: var(--nrj-text) !important;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	box-shadow: none !important;
	text-shadow: none !important;
	display: block !important;
	-webkit-background-clip: border-box !important;
	background-clip: border-box !important;
}

.nrj-resultados-meta {
	margin: 0.4rem 0 0;
	color: var(--nrj-text-muted);
	font-size: 0.95rem;
}

.nrj-resultados-empty {
	padding: 3rem 1.5rem;
	background: var(--nrj-bg-soft);
	border-radius: var(--nrj-card-radius);
	text-align: center;
	color: var(--nrj-text-muted);
}

.nrj-resultados-empty p { margin: 0; }
.nrj-resultados-empty-tip { margin-top: 0.5rem !important; font-size: 0.9rem; }

/* Grid de cards: cuadradas, con imagen 1:1 arriba. */
.nrj-resultados-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat( var(--nrj-res-cols), minmax( 0, 1fr ) );
	gap: 1.5rem;
}

@media ( max-width: 1024px ) {
	.nrj-resultados-grid { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
}
@media ( max-width: 600px ) {
	.nrj-resultados-grid { grid-template-columns: 1fr; }
}

.nrj-resultado-item {
	margin: 0;
	display: flex;
}

.nrj-resultado-card {
	display: flex;
	flex-direction: column;
	width: 100%;
	background: #fff;
	border: 1px solid var(--nrj-border);
	border-radius: var(--nrj-card-radius);
	overflow: hidden;
	box-shadow: var(--nrj-card-shadow);
	color: var(--nrj-text);
	text-decoration: none !important;
	transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.nrj-resultado-card:hover {
	box-shadow: var(--nrj-card-shadow-hv);
	border-color: var(--nrj-primary);
	transform: translateY( -3px );
}

.nrj-resultado-thumb {
	position: relative;
	width: 100%;
	aspect-ratio: 1 / 1;          /* tarjeta cuadrada */
	overflow: hidden;
	background: var(--nrj-bg-soft);
}

.nrj-resultado-thumb img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
	transition: transform 0.4s ease;
}

.nrj-resultado-card:hover .nrj-resultado-thumb img {
	transform: scale( 1.05 );
}

/* Placeholder si no hay imagen (mismo estilo que carrusel). */
.nrj-resultado-thumb-placeholder {
	position: absolute;
	inset: 0;
	background:
		radial-gradient( circle at 30% 20%, rgba( 255, 255, 255, 0.18 ) 0%, transparent 50% ),
		radial-gradient( circle at 70% 80%, rgba( 255, 255, 255, 0.10 ) 0%, transparent 60% ),
		linear-gradient( 135deg, var(--nrj-primary) 0%, var(--nrj-primary-dark) 100% );
	display: flex;
	align-items: center;
	justify-content: center;
}

.nrj-resultado-thumb-icon {
	font-size: 3.2rem;
	line-height: 1;
	filter: drop-shadow( 0 2px 6px rgba( 0, 0, 0, 0.25 ) );
}

/* Badge del CPT en la esquina superior izquierda. */
.nrj-resultado-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	background: rgba( 255, 255, 255, 0.95 );
	color: var(--nrj-primary);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0.3rem 0.65rem;
	border-radius: 6px;
	box-shadow: 0 1px 4px rgba( 0, 0, 0, 0.1 );
}

.nrj-resultado-body {
	padding: 1.1rem 1.2rem 1.2rem;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	flex: 1;
}

body .nrj-resultados .nrj-resultado-card-title,
body .nrj-resultados h3.nrj-resultado-card-title {
	margin: 0 !important;
	padding: 0 !important;
	font-size: 1.15rem !important;
	line-height: 1.25 !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--nrj-text) !important;
	-webkit-text-fill-color: var(--nrj-text) !important;
	background: none !important;
	background-color: transparent !important;
	background-image: none !important;
	border: 0 !important;
	box-shadow: none !important;
	text-shadow: none !important;
	display: -webkit-box !important;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	-webkit-background-clip: border-box !important;
	background-clip: border-box !important;
}

.nrj-resultado-loc {
	margin: 0 !important;
	font-size: 0.9rem !important;
	color: var(--nrj-text-muted) !important;
	-webkit-text-fill-color: var(--nrj-text-muted) !important;
	background: none !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.nrj-resultado-excerpt {
	margin: 0.2rem 0 0 !important;
	font-size: 0.9rem !important;
	color: var(--nrj-text) !important;
	line-height: 1.45 !important;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.nrj-resultado-cta {
	margin-top: auto;
	padding-top: 0.75rem;
	color: var(--nrj-primary) !important;
	-webkit-text-fill-color: var(--nrj-primary) !important;
	font-weight: 600;
	font-size: 0.9rem;
}

/* Paginación. */
.nrj-resultados-paginacion {
	margin-top: 2rem;
	display: flex;
	justify-content: center;
}

.nrj-pagi-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 0.4rem;
	flex-wrap: wrap;
	justify-content: center;
}

.nrj-pagi-list li { margin: 0; }

.nrj-pagi-list a,
.nrj-pagi-list span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 0.7rem;
	background: #fff;
	color: var(--nrj-text) !important;
	-webkit-text-fill-color: var(--nrj-text) !important;
	border: 1px solid var(--nrj-border);
	border-radius: 8px;
	text-decoration: none !important;
	font-weight: 600;
	font-size: 0.95rem;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.nrj-pagi-list a:hover {
	background: var(--nrj-primary-soft);
	border-color: var(--nrj-primary);
	color: var(--nrj-primary-dark) !important;
	-webkit-text-fill-color: var(--nrj-primary-dark) !important;
}

.nrj-pagi-list .current {
	background: var(--nrj-primary);
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	border-color: var(--nrj-primary);
}

.nrj-pagi-list .dots {
	border: 0;
	background: transparent;
	color: var(--nrj-text-muted) !important;
}
