/**
 * Estilos del front.
 *
 * Todo se resuelve con las variables que inyecta cada preset. Ninguna vista
 * tiene colores ni fuentes propias: cambiando las variables cambia todo.
 * El preset «cero» no carga este archivo.
 */

.ce {
	--ce-bg: #0B0B0B;
	--ce-fg: #FAF3E4;
	--ce-muted: #92ADA4;
	--ce-accent: #F1A805;
	--ce-accent-fg: #0B0B0B;
	--ce-line: rgba(146, 173, 164, .22);
	--ce-mark: #F2D6A1;
	--ce-hover-bg: rgba(241, 168, 5, .07);
	--ce-hover-fg: #F1A805;
	--ce-font-display: 'Cormorant Garamond', Georgia, serif;
	--ce-font-body: 'Jost', 'Helvetica Neue', sans-serif;
	--ce-font-numbers: 'Jost', 'Helvetica Neue', sans-serif;
	--ce-font-data: 'Jost', 'Helvetica Neue', sans-serif;
	--ce-display-weight: 300;
	--ce-body-weight: 300;
	--ce-numbers-weight: 300;
	--ce-data-weight: 300;
	--ce-size: 15px;
	--ce-title-size: 1.55em;
	--ce-numbers-size: 1.1em;
	--ce-tracking: 2.1px;
	--ce-caps: uppercase;
	--ce-radius: 0px;
	--ce-cell: 66px;
	--ce-shadow: none;
	--ce-cols: 3;

	background: var(--ce-bg);
	color: var(--ce-mark);
	font-family: var(--ce-font-body);
	font-size: var(--ce-size);
	font-weight: var(--ce-body-weight);
	line-height: 1.6;
	padding: clamp(24px, 4vw, 56px);
	box-sizing: border-box;

	/* El calendario se adapta al ANCHO DE SU CONTENEDOR, no al de la ventana:
	   dentro de una columna estrecha de Elementor o de la vista previa del
	   panel se reordena igual que en un móvil. */
	container-type: inline-size;
	container-name: ce;
}

.ce *,
.ce *::before,
.ce *::after {
	box-sizing: border-box;
}

.ce a {
	color: inherit;
	text-decoration: none;
}

.ce-display {
	font-family: var(--ce-font-display);
	font-weight: var(--ce-display-weight);
	color: var(--ce-fg);
	margin: 0;
	line-height: 1.15;
}

.ce-eyebrow {
	font-size: .7em;
	letter-spacing: var(--ce-tracking);
	text-transform: var(--ce-caps);
	color: var(--ce-muted);
	margin: 0 0 .6em;
}

/* ------------------------------------------------------------------ *
 *  Cabecera del calendario
 * ------------------------------------------------------------------ */

.ce-cal__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	padding-bottom: 26px;
	border-bottom: 1px solid var(--ce-line);
}

.ce-cal__head h2 {
	font-size: clamp(30px, 4vw, 52px);
	margin-top: .2em;
}

.ce-cal__nav {
	display: flex;
	gap: 10px;
}

.ce .ce-nav__btn {
	width: 42px;
	height: 42px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--ce-line);
	border-radius: var(--ce-radius);
	color: var(--ce-muted);
	transition: border-color .18s ease, color .18s ease;
}

.ce .ce-nav__btn:hover,
.ce .ce-nav__btn:focus-visible {
	border-color: var(--ce-accent);
	color: var(--ce-accent);
}

/* ------------------------------------------------------------------ *
 *  Rejilla del mes
 * ------------------------------------------------------------------ */

.ce-cal__body--split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(24px, 4vw, 56px);
}

.ce-cal__body--split .ce-cal__agenda-pane {
	border-left: 1px solid var(--ce-line);
	padding-left: clamp(24px, 4vw, 46px);
}

.ce-cal__grid-pane,
.ce-cal__agenda-pane {
	padding-top: 34px;
}

.ce-cal__dow {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	padding-bottom: 12px;
	border-bottom: 1px solid var(--ce-line);
}

.ce-cal__dow span {
	text-align: center;
	font-size: .7em;
	letter-spacing: var(--ce-tracking);
	text-transform: var(--ce-caps);
	color: var(--ce-muted);
}

.ce-cal__days {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	row-gap: 2px;
}

.ce-day {
	min-height: var(--ce-cell);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border-radius: var(--ce-radius);
	color: color-mix(in srgb, var(--ce-fg) 40%, transparent);
	font-family: var(--ce-font-numbers);
	font-weight: var(--ce-numbers-weight);
	font-size: var(--ce-numbers-size);
	font-variant-numeric: tabular-nums;
}

.ce-day__dot {
	width: 5px;
	height: 5px;
	background: transparent;
	border-radius: calc(var(--ce-radius) / 2);
}

.ce .ce-day--evento {
	color: var(--ce-mark);
}

.ce-day--evento .ce-day__dot {
	background: var(--ce-accent);
}

.ce-day--agotado .ce-day__dot {
	background: var(--ce-muted);
}

.ce .ce-day--hoy {
	background: var(--ce-accent);
	color: var(--ce-accent-fg);
}

.ce .ce-day--hoy .ce-day__dot {
	background: var(--ce-accent-fg);
}

.ce a.ce-day:hover,
.ce a.ce-day:focus-visible {
	background: var(--ce-accent);
	color: var(--ce-accent-fg);
}

.ce a.ce-day:hover .ce-day__dot,
.ce a.ce-day:focus-visible .ce-day__dot {
	background: var(--ce-accent-fg);
}

.ce-cal__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--ce-line);
	font-size: .72em;
	letter-spacing: var(--ce-tracking);
	text-transform: var(--ce-caps);
	color: var(--ce-muted);
}

.ce-legend__item::before {
	content: "";
	display: inline-block;
	width: 5px;
	height: 5px;
	margin-right: 9px;
	vertical-align: middle;
	background: var(--ce-accent);
}

.ce-legend__item--agotado::before {
	background: var(--ce-muted);
}

/* ------------------------------------------------------------------ *
 *  Filtros
 * ------------------------------------------------------------------ */

.ce-cal__filters {
	margin-top: 26px;
	padding-top: 22px;
	border-top: 1px solid var(--ce-line);
}

.ce-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.ce .ce-chip {
	border: 1px solid var(--ce-line);
	border-radius: var(--ce-radius);
	padding: 9px 15px;
	font-size: .78em;
	color: var(--ce-muted);
	transition: border-color .18s ease, color .18s ease;
}

.ce .ce-chip:hover {
	border-color: var(--ce-mark);
	color: var(--ce-mark);
}

.ce .ce-chip--activo {
	background: var(--ce-mark);
	border-color: var(--ce-mark);
	color: var(--ce-bg);
}

.ce-cal__ical {
	margin-top: 20px;
	font-size: .74em;
	letter-spacing: var(--ce-tracking);
	text-transform: var(--ce-caps);
}

.ce .ce-cal__ical a {
	color: var(--ce-accent);
}

/* ------------------------------------------------------------------ *
 *  Agenda
 * ------------------------------------------------------------------ */

.ce-agenda__count {
	font-size: .74em;
	letter-spacing: var(--ce-tracking);
	text-transform: var(--ce-caps);
	color: var(--ce-muted);
	margin: 0 0 18px;
}

.ce-agenda {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ce-agenda__item {
	display: grid;
	grid-template-columns: 78px 1fr;
	gap: 22px;
	padding: 24px 0;
	border-top: 1px solid var(--ce-line);
}

.ce-agenda__item:last-child {
	border-bottom: 1px solid var(--ce-line);
}

.ce-agenda__item {
	transition: background .2s ease;
}

.ce-agenda__item:hover {
	background: var(--ce-hover-bg);
}

.ce-agenda__item:hover .ce-titulo a,
.ce-card:hover .ce-titulo a,
.ce-relacionados li:hover a {
	color: var(--ce-hover-fg);
}

.ce-card {
	transition: background .2s ease, border-color .2s ease;
}

.ce-card:hover {
	background: var(--ce-hover-bg);
}

.ce-relacionados li {
	transition: background .2s ease;
}

.ce-agenda__item--destacado {
	background: linear-gradient(90deg, color-mix(in srgb, var(--ce-accent) 8%, transparent), transparent 70%);
}

.ce-fecha {
	/* El día y el mes comparten eje: alineados al centro entre ellos. */
	text-align: center;
}

.ce-fecha__dia {
	display: block;
	font-size: 2.6em;
	line-height: .9;
}

.ce-fecha__mes {
	display: block;
	margin-top: 8px;
	font-size: .7em;
	letter-spacing: var(--ce-tracking);
	text-transform: var(--ce-caps);
	color: var(--ce-accent);
}

.ce-titulo {
	font-size: var(--ce-title-size);
	margin: 0;
}

/* Fecha grande de la agenda: es un dato, no un titular. */
.ce-fecha__dia,
.ce-sello b,
.ce-relacionados__fecha,
.ce-dato dd {
	font-family: var(--ce-font-numbers);
	font-weight: var(--ce-numbers-weight);
	color: var(--ce-fg);
	font-variant-numeric: tabular-nums;
}

.ce-meta,
.ce-hora,
.ce-ficha__texto,
.ce-obras li,
.ce-dato dt {
	font-family: var(--ce-font-data);
	font-weight: var(--ce-data-weight);
}

.ce-meta {
	margin: 8px 0 0;
	color: color-mix(in srgb, var(--ce-fg) 70%, transparent);
	font-size: .88em;
}

.ce-acciones {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-top: 16px;
	flex-wrap: wrap;
}

.ce-hora {
	font-size: .88em;
	color: var(--ce-mark);
}

.ce-hora--tbd {
	color: var(--ce-muted);
}

/* ------------------------------------------------------------------ *
 *  Botones
 * ------------------------------------------------------------------ */

.ce .ce-btn {
	display: inline-block;
	border: 1px solid var(--ce-accent);
	border-radius: var(--ce-radius);
	color: var(--ce-accent);
	padding: 11px 20px;
	font-size: .7em;
	letter-spacing: var(--ce-tracking);
	text-transform: var(--ce-caps);
	transition: background .18s ease, color .18s ease;
}

.ce .ce-btn:hover,
.ce .ce-btn:focus-visible {
	background: var(--ce-accent);
	color: var(--ce-accent-fg);
}

.ce .ce-btn--solido {
	background: var(--ce-accent);
	color: var(--ce-accent-fg);
}

.ce .ce-btn--fantasma {
	border-color: var(--ce-line);
	color: var(--ce-muted);
}

.ce .ce-btn--pasivo,
.ce .ce-btn--free,
.ce .ce-btn--soon {
	border-color: transparent;
	color: var(--ce-muted);
	padding-left: 0;
	padding-right: 0;
}

.ce .ce-btn--pasivo:hover,
.ce .ce-btn--free:hover,
.ce .ce-btn--soon:hover {
	background: none;
	color: var(--ce-muted);
}

.ce .ce-btn--enlace {
	border: 0;
	border-bottom: 1px solid currentColor;
	border-radius: 0;
	padding: 0 0 3px;
}

.ce .ce-btn--enlace:hover {
	background: none;
	color: var(--ce-mark);
}

.ce .ce-btn--cancelled {
	border-color: var(--ce-muted);
	color: var(--ce-muted);
	text-decoration: line-through;
}

/* ------------------------------------------------------------------ *
 *  Grid de eventos
 * ------------------------------------------------------------------ */

.ce-grid,
.ce-loop {
	display: grid;
	grid-template-columns: repeat(var(--ce-cols, 3), minmax(0, 1fr));
	gap: 34px;
}

.ce-card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--ce-line);
	border-radius: var(--ce-radius);
	box-shadow: var(--ce-shadow);
	overflow: hidden;
}

.ce-card__foto {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.ce-card__foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ce-sello {
	position: absolute;
	left: 0;
	bottom: 0;
	display: flex;
	align-items: baseline;
	gap: 8px;
	padding: 10px 16px 9px;
	background: var(--ce-accent);
	color: var(--ce-accent-fg);
	border-radius: 0 var(--ce-radius) 0 0;
}

.ce-sello b {
	font-size: 1.9em;
	line-height: .9;
}

.ce-sello b {
	/* Sobre el acento manda el color del sello, no el del texto general. */
	color: inherit;
}

.ce-sello i {
	font-style: normal;
	font-size: .7em;
	letter-spacing: var(--ce-tracking);
	text-transform: var(--ce-caps);
}

.ce-card__cuerpo {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 26px 24px 28px;
}

.ce-card__pie {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: auto;
	padding-top: 18px;
	border-top: 1px solid var(--ce-line);
}

/* ------------------------------------------------------------------ *
 *  Ficha de evento
 * ------------------------------------------------------------------ */

.ce-evento__hero {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(24px, 4vw, 56px);
	align-items: center;
}

.ce-evento__foto {
	margin: 0;
	border-radius: var(--ce-radius);
	overflow: hidden;
}

.ce-evento__foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ce-evento__titulo {
	font-size: clamp(30px, 4vw, 52px);
	margin: .3em 0;
}

.ce-evento__lugar {
	font-size: 1.5em;
	color: var(--ce-muted);
	margin: 0;
}

.ce-datos {
	display: flex;
	flex-wrap: wrap;
	margin: 30px 0 0;
	padding-top: 20px;
	border-top: 1px solid var(--ce-line);
}

.ce-dato {
	padding-right: 26px;
	margin-right: 26px;
	border-right: 1px solid var(--ce-line);
}

.ce-dato:last-child {
	border-right: 0;
	margin-right: 0;
	padding-right: 0;
}

.ce-dato dt {
	font-size: .7em;
	letter-spacing: var(--ce-tracking);
	text-transform: var(--ce-caps);
	color: var(--ce-muted);
	margin-bottom: 8px;
}

.ce-dato dd {
	margin: 0;
	font-size: 1.7em;
}

.ce-dato dd small {
	display: block;
	font-family: var(--ce-font-body);
	font-size: .48em;
	color: var(--ce-muted);
	margin-top: 6px;
}

.ce-aviso {
	margin-top: 14px;
	font-size: .82em;
	color: var(--ce-muted);
}

.ce-evento__cuerpo {
	display: grid;
	grid-template-columns: 1fr 340px;
	gap: clamp(24px, 4vw, 56px);
	margin-top: 60px;
	padding-top: 40px;
	border-top: 1px solid var(--ce-line);
}

.ce-evento__texto p {
	max-width: 62ch;
	color: color-mix(in srgb, var(--ce-fg) 72%, transparent);
}

.ce-evento__texto h2 {
	font-size: 1.9em;
	margin-bottom: .6em;
}

.ce-obras {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ce-obras li {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	padding: 13px 0;
	border-bottom: 1px solid var(--ce-line);
	font-size: .9em;
}

.ce-obras__autor {
	color: var(--ce-muted);
}

.ce-ficha__texto {
	margin: 0 0 22px;
	font-size: .9em;
	color: color-mix(in srgb, var(--ce-fg) 72%, transparent);
}

/* ------------------------------------------------------------------ *
 *  Relacionados y estados vacíos
 * ------------------------------------------------------------------ */

.ce-relacionados {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	margin: 22px 0 0;
	padding: 0;
}

.ce-relacionados a {
	display: flex;
	gap: 16px;
	align-items: baseline;
	padding-top: 18px;
	border-top: 1px solid var(--ce-line);
}

.ce-relacionados__fecha {
	font-size: 1.9em;
	color: var(--ce-accent);
	line-height: .9;
}

.ce-relacionados__texto small {
	color: var(--ce-muted);
}

.ce-vacio {
	padding: 30px 0;
	border-top: 1px solid var(--ce-line);
}

.ce-vacio__texto {
	color: var(--ce-muted);
	margin: 0 0 10px;
}

.ce .ce-vacio__siguiente a {
	color: var(--ce-accent);
}

/* ------------------------------------------------------------------ *
 *  Responsive
 * ------------------------------------------------------------------ */

@media (max-width: 900px) {
	.ce-cal__body--split,
	.ce-evento__hero,
	.ce-evento__cuerpo {
		grid-template-columns: 1fr;
	}

	.ce-cal__body--split .ce-cal__agenda-pane {
		border-left: 0;
		padding-left: 0;
		border-top: 1px solid var(--ce-line);
	}

	.ce-grid,
	.ce-loop,
	.ce-relacionados,
	.ce-recortes {
		grid-template-columns: repeat(min(var(--ce-cols, 3), 2), minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.ce {
		--ce-cell: 44px;
	}

	.ce-agenda__item {
		grid-template-columns: 56px 1fr;
		gap: 16px;
	}

	.ce-datos {
		gap: 18px;
	}

	.ce-dato {
		border-right: 0;
		margin-right: 0;
		padding-right: 0;
	}

	.ce-grid,
	.ce-loop,
	.ce-relacionados {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ce * {
		transition: none !important;
	}
}

/* Texto solo para lectores de pantalla. */
.ce .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.ce a:focus-visible,
.ce .ce-day:focus-visible {
	outline: 2px solid var(--ce-accent);
	outline-offset: 2px;
}


/* ------------------------------------------------------------------ *
 *  Agenda horizontal
 * ------------------------------------------------------------------ */

.ce-cal__agenda-pane--horizontal {
	margin-top: 34px;
	padding-top: 28px;
	border-top: 1px solid var(--ce-line);
}

.ce-agenda--horizontal {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: 28px;
}

.ce-agenda--horizontal .ce-agenda__item {
	display: block;
	padding: 20px 0 0;
	border-top: 1px solid var(--ce-line);
	border-bottom: 0;
}

.ce-agenda--horizontal .ce-fecha {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin-bottom: 12px;
}

.ce-agenda--horizontal .ce-fecha__dia {
	font-size: 2em;
}

.ce-agenda--horizontal .ce-fecha__mes {
	margin-top: 0;
}

/* ------------------------------------------------------------------ *
 *  Carrusel
 * ------------------------------------------------------------------ */

.ce-carrusel {
	position: relative;
}

.ce-carrusel__pista {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - (var(--ce-cols, 3) - 1) * 34px) / var(--ce-cols, 3));
	gap: 34px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	padding-bottom: 4px;
}

.ce-carrusel__pista::-webkit-scrollbar {
	display: none;
}

.ce-carrusel__pista .ce-card {
	scroll-snap-align: start;
}

.ce-carrusel__nav {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin-top: 22px;
}

.ce .ce-carrusel__nav .ce-nav__btn {
	background: none;
	cursor: pointer;
	font-family: inherit;
	font-size: 15px;
}

@media (max-width: 720px) {
	.ce-carrusel__pista {
		grid-auto-columns: 78%;
	}
}


/* ------------------------------------------------------------------ *
 *  Adaptación al contenedor
 *
 *  Mismos cortes que los de ventana, pero medidos sobre el ancho real del
 *  bloque. Es lo que hace que la vista previa de móvil del panel y una
 *  columna estrecha se comporten como se espera.
 * ------------------------------------------------------------------ */

@container ce (max-width: 760px) {
	.ce-cal__body--split,
	.ce-evento__hero,
	.ce-evento__cuerpo {
		grid-template-columns: 1fr;
	}

	.ce-cal__body--split .ce-cal__agenda-pane {
		border-left: 0;
		padding-left: 0;
		border-top: 1px solid var(--ce-line);
	}

	.ce-grid,
	.ce-loop,
	.ce-relacionados,
	.ce-agenda--horizontal,
	.ce-recortes {
		grid-template-columns: repeat(min(var(--ce-cols, 3), 2), minmax(0, 1fr));
	}

	.ce-cal__head h2 {
		font-size: 34px;
	}

	.ce-evento__titulo {
		font-size: 30px;
	}
}

@container ce (max-width: 480px) {
	.ce {
		--ce-cell: 42px;
	}

	.ce-cal__head {
		flex-wrap: wrap;
	}

	.ce-cal__head h2 {
		font-size: 26px;
	}

	.ce-agenda__item {
		grid-template-columns: 52px 1fr;
		gap: 14px;
		padding: 18px 0;
	}

	.ce-fecha__dia {
		font-size: 2em;
	}

	.ce-datos {
		gap: 16px;
	}

	.ce-dato {
		border-right: 0;
		margin-right: 0;
		padding-right: 0;
	}

	.ce-grid,
	.ce-loop,
	.ce-relacionados,
	.ce-agenda--horizontal {
		grid-template-columns: 1fr;
	}

	.ce-carrusel__pista {
		grid-auto-columns: 86%;
	}
}


/* ------------------------------------------------------------------ *
 *  Listado con desplazamiento propio
 * ------------------------------------------------------------------ */

.ce-agenda--scroll {
	/* Altura de respaldo por si el JS no llega a medir. */
	max-height: calc(var(--ce-visibles, 4) * 9.5em);
	overflow-y: auto;
	scrollbar-width: thin;
	scrollbar-color: var(--ce-muted) transparent;
	padding-right: 10px;
	overscroll-behavior: contain;
}

.ce-agenda--scroll::-webkit-scrollbar {
	width: 6px;
}

.ce-agenda--scroll::-webkit-scrollbar-track {
	background: transparent;
}

.ce-agenda--scroll::-webkit-scrollbar-thumb {
	background: color-mix(in srgb, var(--ce-muted) 55%, transparent);
	border-radius: 99px;
}

.ce-agenda--scroll .ce-agenda__item:last-child {
	border-bottom: 0;
}

/* Una pista de que hay más debajo. */
.ce-scroll {
	position: relative;
}

.ce-scroll::after {
	content: "";
	position: absolute;
	left: 0;
	right: 10px;
	bottom: 0;
	height: 56px;
	pointer-events: none;
	background: linear-gradient(to bottom, transparent, var(--ce-bg));
	opacity: 1;
	transition: opacity .2s ease;
}

.ce-scroll--final::after {
	opacity: 0;
}

/* ------------------------------------------------------------------ *
 *  Widget de un solo evento
 * ------------------------------------------------------------------ */

/* En formato fila reutiliza el listado tal cual, sin borde superior suelto. */
.ce-destacado--fila .ce-agenda__item {
	border-top: 0;
	padding-top: 0;
}

.ce-destacado--fila .ce-agenda__item:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.ce-destacado--tarjeta .ce-grid {
	grid-template-columns: 1fr;
}

.ce-cuadro {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: var(--ce-radius);
	border: 1px solid var(--ce-line);
	box-shadow: var(--ce-shadow);
	padding: 26px;
	width: 100%;
}

.ce-cuadro__foto {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
	transition: transform .4s ease;
}

.ce-cuadro::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	/* El degradado tiene que llegar casi opaco al pie: ahí va el texto. */
	background: linear-gradient(
		to bottom,
		transparent 10%,
		color-mix(in srgb, var(--ce-bg) 55%, transparent) 42%,
		color-mix(in srgb, var(--ce-bg) 94%, transparent) 72%,
		var(--ce-bg) 100%
	);
}

.ce-cuadro:hover .ce-cuadro__foto {
	transform: scale(1.04);
}

.ce-cuadro__fecha {
	z-index: 2;
	position: absolute;
	top: 22px;
	left: 22px;
	display: block;
	padding: 10px 14px;
	background: var(--ce-accent);
	color: var(--ce-accent-fg);
	border-radius: var(--ce-radius);
	line-height: 1;
}

.ce-cuadro__fecha .ce-fecha__dia {
	font-size: 2em;
	color: inherit;
}

.ce-cuadro__fecha .ce-fecha__mes {
	color: inherit;
	margin-top: 5px;
}

.ce-cuadro__cuerpo {
	display: block;
	position: relative;
	z-index: 2;
}

.ce-cuadro__cuerpo .ce-eyebrow,
.ce-cuadro__cuerpo .ce-titulo,
.ce-cuadro__cuerpo .ce-meta {
	display: block;
}

.ce-cuadro__cuerpo .ce-titulo {
	margin: 4px 0 6px;
}

.ce-cuadro__cuerpo .ce-acciones {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 16px;
}

/* Sin foto, el cuadrado se sostiene solo con el fondo del preset. */
.ce-cuadro:not(:has(.ce-cuadro__foto))::after {
	background: none;
}

@media (max-width: 480px) {
	.ce-cuadro {
		aspect-ratio: auto;
		min-height: 360px;
	}
}

/* ------------------------------------------------------------------ *
 *  Prensa y promoción
 *
 *  Mismo lenguaje que la agenda, otra disposición: filete arriba, el medio
 *  como titular, antetítulo con tracking, extracto y enlace subrayado.
 * ------------------------------------------------------------------ */

.ce-recortes {
	display: grid;
	grid-template-columns: repeat(var(--ce-cols, 3), minmax(0, 1fr));
	gap: clamp(26px, 4vw, 56px);
}

.ce-recorte {
	display: flex;
	flex-direction: column;
	padding-top: 22px;
	border-top: 1px solid var(--ce-line);
}

.ce-recorte__foto {
	margin: 0 0 20px;
	border-radius: var(--ce-radius);
	overflow: hidden;
	aspect-ratio: 3 / 2;
}

.ce-recorte__foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ce-recorte__medio {
	font-size: clamp(24px, 2.4vw, 34px);
	line-height: 1.1;
	margin: 0 0 18px;
}

.ce-recorte .ce-eyebrow {
	margin-bottom: 18px;
}

.ce-recorte__texto {
	font-family: var(--ce-font-data);
	font-weight: var(--ce-data-weight);
	font-size: .95em;
	line-height: 1.7;
	color: color-mix(in srgb, var(--ce-fg) 82%, transparent);
	margin: 0 0 26px;
	max-width: 42ch;
}

.ce .ce-recorte__enlace {
	align-self: flex-start;
	margin-top: auto;
	padding-bottom: 9px;
	border-bottom: 1px solid currentColor;
	font-size: .72em;
	letter-spacing: var(--ce-tracking);
	text-transform: var(--ce-caps);
	color: var(--ce-fg);
	transition: color .18s ease, border-color .18s ease;
}

.ce .ce-recorte__enlace:hover,
.ce .ce-recorte__enlace:focus-visible {
	color: var(--ce-hover-fg);
	border-color: var(--ce-hover-fg);
}

/* Listado: una columna y el medio algo menor. */
.ce-prensa--lista .ce-recortes {
	grid-template-columns: 1fr;
	gap: 0;
}

.ce-prensa--lista .ce-recorte {
	padding: 26px 0;
}

.ce-prensa--lista .ce-recorte__medio {
	font-size: clamp(22px, 2vw, 28px);
	margin-bottom: 12px;
}

.ce-prensa--lista .ce-recorte__texto {
	max-width: 68ch;
	margin-bottom: 18px;
}

/* Carrusel: reutiliza la pista de los eventos. */
.ce-prensa--carrusel .ce-carrusel__pista {
	align-items: stretch;
}

.ce-prensa--carrusel .ce-recorte {
	scroll-snap-align: start;
}

/* Recorte suelto. */
.ce-recorte--tarjeta,
.ce-recorte--foto {
	max-width: 46ch;
}

/* En la ficha de un evento. */
.ce-prensa--evento {
	margin-top: 60px;
	padding-top: 40px;
	border-top: 1px solid var(--ce-line);
}

.ce-prensa--evento h2 {
	font-size: 1.9em;
	margin-bottom: 28px;
}



@container ce (max-width: 480px) {
	.ce-recorte {
		padding: 22px 0;
	}
}
