/**
 * Calendario de actividades: estilos del frontend.
 *
 * Sigue la referencia visual: rejilla mensual a la izquierda, columna de
 * próximas actividades a la derecha, tipografía sobria y acentos por tipo.
 *
 * Los colores base se exponen como custom properties para que el tema pueda
 * redefinirlos sin tocar el plugin.
 */

.aca-calendar-wrap {
	--aca-ink: #111214;
	--aca-muted: #6b7280;
	--aca-line: #e5e7eb;
	--aca-bg: #ffffff;
	--aca-accent: #e12828;
	--aca-highlight: #fdf2f2;
	--aca-radius: 4px;

	/*
	 * MEDIDAS
	 *
	 * Estas variables las controla el widget de Elementor (pestana Estilo >
	 * Tamano). Se definen aqui para que el calendario tenga valores sensatos
	 * cuando se usa por shortcode, sin Elementor.
	 */
	--aca-cell-height: 96px;      /* alto minimo de cada dia */
	--aca-aside-width: 1fr;       /* ancho de la columna de proximas */
	--aca-main-width: 2.1fr;      /* ancho de la rejilla */
	--aca-aside-min: 280px;       /* ancho minimo antes de apilar */
	--aca-gap: 32px;              /* separacion entre rejilla y columna */
	--aca-font-size: 14px;        /* tamano base del calendario */

	color: var(--aca-ink);
	font-family: Raleway, system-ui, -apple-system, "Segoe UI", sans-serif;
}

/* ---------- Cabecera y leyenda ---------- */

.aca-calendar__heading {
	margin: 0 0 16px;
	font-size: clamp(24px, 3vw, 34px);
	font-weight: 800;
	letter-spacing: -0.01em;
}

.aca-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
	margin: 0 0 20px;
	padding: 16px 0;
	border-top: 2px solid var(--aca-ink);
	border-bottom: 1px solid var(--aca-line);
	list-style: none;
}

.aca-legend__item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--aca-muted);
}

.aca-legend__dot {
	width: 9px;
	height: 9px;
	border-radius: 2px;
	flex: 0 0 auto;
}

/* ---------- Maquetación ---------- */

.aca-calendar-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--aca-gap);
	align-items: start;
}

.aca-calendar-wrap--with-aside .aca-calendar-layout {
	grid-template-columns: minmax(0, var(--aca-main-width)) minmax(var(--aca-aside-min), var(--aca-aside-width));
}

.aca-calendar__main {
	min-width: 0;
}

.aca-calendar__aside {
	max-height: min(760px, 82vh);
	overflow-y: auto;
	overflow-x: hidden;
	padding-right: 10px;
	scrollbar-gutter: stable;
}

.aca-calendar__aside::-webkit-scrollbar {
	width: 8px;
}

.aca-calendar__aside::-webkit-scrollbar-track {
	background: transparent;
}

.aca-calendar__aside::-webkit-scrollbar-thumb {
	border-radius: 999px;
	background: color-mix(in srgb, var(--aca-ink, #111214) 24%, transparent);
}

.aca-calendar__aside::-webkit-scrollbar-thumb:hover {
	background: color-mix(in srgb, var(--aca-ink, #111214) 38%, transparent);
}

/* ---------- Estados de carga ---------- */

.aca-calendar__loading {
	padding: 48px 0;
	text-align: center;
	color: var(--aca-muted);
	font-size: 14px;
}

.aca-calendar.is-loading {
	opacity: .55;
	transition: opacity .15s ease;
}

.aca-calendar.has-error::after {
	content: attr(data-error);
	display: block;
	padding: 16px;
	color: var(--aca-accent);
	font-size: 14px;
}

.aca-calendar__noscript {
	padding: 12px 16px;
	background: var(--aca-highlight);
	border-left: 3px solid var(--aca-accent);
	font-size: 14px;
}

/* ---------- FullCalendar: ajustes de aspecto ----------
 *
 * Los selectores llevan .aca-calendar delante a propósito: FullCalendar trae
 * su propia hoja de estilos y, sin esa especificidad extra, gana la suya y el
 * calendario se ve con el aspecto por defecto (botones azules, celdas grises).
 *
 * Casi todo se resuelve redefiniendo las variables --fc-*, que es la vía que
 * la propia librería ofrece para personalizarla.
 */

.aca-calendar.fc {
	font-size: var(--aca-font-size);
	--fc-border-color: var(--aca-line);
	--fc-today-bg-color: var(--aca-highlight);
	--fc-page-bg-color: var(--aca-bg);
	--fc-neutral-bg-color: transparent;
	--fc-list-event-hover-bg-color: var(--aca-highlight);
	--fc-event-border-color: transparent;
	--fc-event-text-color: #fff;
	--fc-small-font-size: 12px;

	font-size: 14px;
	font-family: inherit;
}
.aca-calendar .aca-event-cont{
	font-weight: 700;
	font-size: 14px;
}

/* Quitamos el borde exterior doble que trae por defecto */

.aca-calendar.fc .fc-scrollgrid,
.aca-calendar.fc .fc-scrollgrid-section > * {
	border-left-width: 0;
	border-right-width: 0;
}

.aca-calendar.fc .fc-scrollgrid {
	border-top-width: 0;
}

/* ---------- Barra superior ---------- */

.aca-calendar.fc .fc-toolbar.fc-header-toolbar {
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 20px;
}

.aca-calendar.fc .fc-toolbar-title {
	font-size: clamp(19px, 2.2vw, 26px);
	font-weight: 800;
	letter-spacing: -0.02em;
	text-transform: capitalize;
	color: var(--aca-ink);
}

/* Botones: planos, no los azules de la librería */

.aca-calendar.fc .fc-button,
.aca-calendar.fc .fc-button-primary {
	background-color: var(--aca-bg);
	background-image: none;
	border: 1px solid var(--aca-line);
	border-radius: var(--aca-radius);
	color: var(--aca-ink);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: none;
	padding: 7px 14px;
	box-shadow: none;
	transition: background-color .15s ease, border-color .15s ease;
}

.aca-calendar.fc .fc-button-primary:hover:not(:disabled) {
	background-color: #f3f4f6;
	border-color: #d1d5db;
	color: var(--aca-ink);
}

.aca-calendar.fc .fc-button-primary:not(:disabled):active,
.aca-calendar.fc .fc-button-primary:not(:disabled).fc-button-active {
	background-color: var(--aca-ink);
	border-color: var(--aca-ink);
	color: #fff;
	box-shadow: none;
}

.aca-calendar.fc .fc-button-primary:focus,
.aca-calendar.fc .fc-button-primary:focus-visible {
	outline: 2px solid var(--aca-accent);
	outline-offset: 2px;
	box-shadow: none;
}

.aca-calendar.fc .fc-button-primary:disabled {
	background-color: var(--aca-bg);
	border-color: var(--aca-line);
	color: #c4c7cc;
	opacity: 1;
}

/* Las flechas, más compactas que los botones de texto */

.aca-calendar.fc .fc-prev-button,
.aca-calendar.fc .fc-next-button {
	padding: 7px 11px;
}

/* ---------- Cabecera de días ---------- */

.aca-calendar.fc .fc-col-header-cell {
	background: transparent;
	border-bottom: 1px solid var(--aca-line);
	padding: 12px 4px;
	font-weight: 600;
}

.aca-calendar.fc .fc-col-header-cell-cushion {
	color: var(--aca-muted);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 0;
}

/* ---------- Celdas de día ---------- */

.aca-calendar.fc .fc-daygrid-day {
	background: var(--aca-bg);
}

/* Los días de otro mes, apagados pero sin fondo gris */

.aca-calendar.fc .fc-day-other {
	background: transparent;
}

.aca-calendar.fc .fc-day-other .fc-daygrid-day-top {
	opacity: 1;
}

.aca-calendar.fc .fc-daygrid-day-frame {
	min-height: var(--aca-cell-height);
	padding: 2px;
}

.aca-calendar.fc .fc-daygrid-day-top {
	flex-direction: row;
	justify-content: flex-end;
}

.aca-calendar.fc .fc-daygrid-day-number {
	color: var(--aca-ink);
	font-size: 13px;
	font-weight: 600;
	padding: 6px 8px;
	text-decoration: none;
	line-height: 1;
}

.aca-calendar.fc .fc-day-other .fc-daygrid-day-number {
	color: #c4c7cc;
	font-weight: 400;
}

/* El día de hoy: número en un círculo del color de acento */

.aca-calendar.fc .fc-day-today {
	background-color: var(--aca-highlight);
}

.aca-calendar.fc .fc-day-today .fc-daygrid-day-number {
	background: var(--aca-accent);
	color: #fff;
	border-radius: 999px;
	min-width: 24px;
	margin: 4px 4px 0 0;
	padding: 5px 7px;
	text-align: center;
	font-weight: 700;
}

/* ---------- Actividades en la rejilla ---------- */

.aca-calendar.fc .fc-daygrid-event-harness {
	margin-bottom: 2px;
}

/*
 * Pastilla de color sólido con el color del tipo o del evento.
 * overflow:hidden y text-overflow evitan que el texto se salga de la celda,
 * que es lo que hacía que se viera cortado a mitad de palabra.
 */
.aca-calendar.fc .fc-daygrid-event {
	border: 0;
	border-radius: 3px;
	margin: 0 4px;
	padding: 3px 7px;
	overflow: hidden;
	font-size: 12px;
	line-height: 1.35;
}

.aca-calendar.fc .fc-daygrid-event:hover {
	filter: brightness(.92);
}

.aca-calendar.fc .fc-daygrid-event .fc-event-main {
	color: #fff;
	overflow: hidden;
}

.aca-calendar.fc .fc-event-title {
	color: inherit;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.35;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.aca-calendar.fc .fc-event-time {
	color: inherit;
	font-size: 11px;
	font-weight: 500;
	opacity: .85;
	margin-right: 3px;
}

/* Los eventos de todo el día no muestran hora */

.aca-calendar.fc .fc-daygrid-block-event .fc-event-time {
	display: none;
}

.aca-calendar.fc .fc-daygrid-more-link {
	color: var(--aca-accent);
	font-size: 11px;
	font-weight: 700;
	margin: 2px 0 0 5px;
}

.aca-calendar.fc .fc-daygrid-more-link:hover {
	text-decoration: underline;
}

/* ---------- Vista de lista ---------- */

.aca-calendar.fc .fc-list {
	border: 1px solid var(--aca-line);
	border-radius: var(--aca-radius);
	overflow: hidden;
}

.aca-calendar.fc .fc-list-day-cushion {
	background: #fafafa;
	padding: 10px 14px;
}

.aca-calendar.fc .fc-list-day-text,
.aca-calendar.fc .fc-list-day-side-text {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--aca-ink);
}

.aca-calendar.fc .fc-list-event td {
	padding: 12px 14px;
}

.aca-calendar.fc .fc-list-event-title a {
	color: var(--aca-ink);
	font-weight: 600;
	text-decoration: none;
}

.aca-calendar.fc .fc-list-event-title a:hover {
	color: var(--aca-accent);
}

.aca-calendar.fc .fc-list-event-time {
	color: var(--aca-muted);
	font-size: 13px;
	white-space: nowrap;
}

.aca-calendar.fc .fc-list-empty {
	background: transparent;
	color: var(--aca-muted);
	padding: 40px 16px;
	font-size: 14px;
}

/* ---------- Próximas actividades ---------- */

.aca-upcoming__header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--aca-ink, #111214);
}

.aca-upcoming__title {
	margin: 0;
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.01em;
}

.aca-upcoming__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.aca-upcoming__empty {
	padding: 20px 0;
	color: #6b7280;
	font-size: 14px;
}

.aca-upcoming__loading {
	display: block;
	padding: 18px 0;
	color: var(--aca-muted, #6b7280);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.5;
}

.aca-upcoming__loading::after {
	content: "";
	display: inline-block;
	width: 1.15em;
	text-align: left;
	animation: aca-loading-dots 1.1s steps(4, end) infinite;
}

@keyframes aca-loading-dots {
	0% { content: ""; }
	25% { content: "."; }
	50% { content: ".."; }
	75%, 100% { content: "..."; }
}

.aca-calendar-wrap .aca-upcoming__more,
.aca-upcoming .aca-upcoming__more {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 42px;
	margin-top: 16px;
	padding: 10px 16px;
	border: 1px solid var(--aca-ink, #111214);
	border-radius: var(--aca-radius, 4px);
	background: #fff;
	color: #111214 !important;
	font-family: inherit;
	font-size: 13px !important;
	font-weight: 800;
	letter-spacing: .08em;
	line-height: 1.2;
	text-transform: uppercase;
	text-indent: 0 !important;
	text-shadow: none !important;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

.aca-upcoming__more-label {
	display: inline-block !important;
	color: inherit !important;
	font: inherit !important;
	line-height: inherit !important;
	opacity: 1 !important;
	visibility: visible !important;
	text-indent: 0 !important;
	text-shadow: none !important;
	white-space: nowrap;
}

.aca-calendar-wrap .aca-upcoming__more:hover,
.aca-calendar-wrap .aca-upcoming__more:focus-visible,
.aca-upcoming .aca-upcoming__more:hover,
.aca-upcoming .aca-upcoming__more:focus-visible {
	background: #111214;
	color: #fff !important;
}

.aca-calendar-wrap .aca-upcoming__more:disabled,
.aca-upcoming .aca-upcoming__more:disabled {
	cursor: wait;
	opacity: .7;
}

.aca-upcoming__more.is-loading .aca-upcoming__more-label::after {
	content: "";
}

.aca-upcoming__more.has-error {
	border-color: var(--aca-accent, #e12828);
	color: var(--aca-accent, #e12828) !important;
}

.aca-calendar-wrap .aca-upcoming__more[hidden],
.aca-upcoming .aca-upcoming__more[hidden] {
	display: none;
}

/* Tarjeta */

.aca-activity-card {
	display: grid;
	grid-template-columns: 54px minmax(0, 1fr);
	gap: 16px;
	padding: 18px 12px 18px 0;
	border-bottom: 1px solid #e5e7eb;
}

.aca-activity-card:last-child {
	border-bottom: 0;
}

.aca-activity-card--cancelada {
	opacity: .55;
}

.aca-activity-card--cancelada .aca-activity-card__title {
	text-decoration: line-through;
}

.aca-activity-card__date {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	line-height: 1;
}

.aca-activity-card__day {
	font-size: 30px;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.aca-activity-card__month {
	margin-top: 4px;
	color: #6b7280;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.aca-activity-card__body {
	min-width: 0;
}

.aca-activity-card__type {
	display: inline-block;
	margin-bottom: 8px;
	padding: 3px 9px;
	border: 1px solid var(--aca-type-color, #6b7280);
	border-radius: 3px;
	color: var(--aca-type-color, #6b7280);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
	line-height: 1.5;
}

.aca-activity-card__title {
	margin: 0 0 6px;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
}

.aca-activity-card__title a {
	color: inherit;
	text-decoration: none;
}

.aca-activity-card__title a:hover {
	text-decoration: underline;
}

.aca-activity-card__meta {
	margin: 0;
	color: #6b7280;
	font-size: 13px;
	line-height: 1.5;
}

.aca-activity-card__event {
	margin: 6px 0 0;
	font-size: 12px;
}

.aca-activity-card__event a {
	color: #6b7280;
	text-decoration: none;
}

.aca-activity-card__event a:hover {
	color: var(--aca-accent, #e12828);
	text-decoration: underline;
}

/* ---------- Modal de detalle ---------- */

.aca-modal-activity {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.aca-modal-activity[hidden] {
	display: none;
}

.aca-modal-activity__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(17, 18, 20, .6);
}

.aca-modal-activity__dialog {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 460px;
	max-height: 85vh;
	overflow-y: auto;
	padding: 34px 28px 28px;
	background: #fff;
	border-radius: 6px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, .28);
}

.aca-modal-activity__close {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: #f3f4f6;
	box-shadow: none;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 28px;
	font-weight: 400;
	line-height: 1;
	color: #111214 !important;
	text-align: center;
	text-decoration: none;
	opacity: 1;
	visibility: visible;
	cursor: pointer;
}

.aca-modal-activity__close:hover,
.aca-modal-activity__close:focus-visible {
	background: #111214;
	color: #fff !important;
	outline: 0;
}

.aca-modal-activity__type {
	display: inline-block;
	margin-bottom: 10px;
	padding: 4px 10px;
	border-radius: 3px;
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.aca-modal-activity__title {
	margin: 0 0 8px;
	font-size: 21px;
	font-weight: 800;
	line-height: 1.25;
}

.aca-modal-activity__meta {
	margin: 0 0 12px;
	color: #6b7280;
	font-size: 13px;
}

.aca-modal-activity__excerpt {
	margin: 0 0 16px;
	font-size: 14px;
	line-height: 1.6;
}

.aca-modal-activity__links {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 0;
}

.aca-modal-activity__links a {
	color: var(--aca-accent, #e12828);
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}

.aca-modal-activity__links a:hover {
	text-decoration: underline;
}
.aca-modal-activity__links a[hidden] { display: none; }
.aca-modal-activity__links .aca-modal-activity__whatsapp { padding: 10px 14px; background: #E12828; color: #fff; border-radius: 4px; }

/* ---------- Responsive ---------- */

@media (max-width: 900px) {
	.aca-calendar-wrap--with-aside .aca-calendar-layout {
		grid-template-columns: 1fr;
	}

	.aca-calendar__aside {
		max-height: none;
		overflow: visible;
		padding-right: 0;
	}
}

@media (max-width: 600px) {
	.aca-calendar.fc .fc-toolbar.fc-header-toolbar {
		justify-content: center;
		gap: 8px;
	}

	.aca-calendar.fc .fc-toolbar-chunk {
		display: flex;
		justify-content: center;
	}

	.aca-calendar.fc .fc-button,
	.aca-calendar.fc .fc-button-primary {
		padding: 6px 10px;
		font-size: 11px;
	}

	.aca-calendar.fc .fc-daygrid-day-frame {
		min-height: 62px;
	}

	.aca-calendar.fc .fc-col-header-cell-cushion {
		font-size: 10px;
		letter-spacing: .04em;
	}

	/* En móvil el título del evento sobra: basta la pastilla de color */
	.aca-calendar.fc .fc-daygrid-event {
		padding: 2px 4px;
		font-size: 10px;
	}

	.aca-activity-card {
		grid-template-columns: 46px minmax(0, 1fr);
		gap: 12px;
	}

	.aca-activity-card__day {
		font-size: 26px;
	}
}

/* Presentation shared by the widget and shortcode. */
.aca-calendar-wrap { --aca-radius: 0px; background: var(--aca-bg); }
.aca-calendar__header { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); align-items: end; gap: 32px; margin-bottom: 24px; }
.aca-calendar__header .aca-calendar__heading { margin: 0; font-size: clamp(26px, 3.5vw, 42px); line-height: 1.15; }
.aca-calendar__eyebrow { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; color: var(--aca-accent); font-size: 10px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.aca-calendar__eyebrow::before { content: ''; width: 8px; height: 8px; background: currentColor; }
.aca-calendar__description { margin: 0; color: var(--aca-muted); font-size: 13px; line-height: 1.7; }
.aca-calendar-wrap .aca-legend { margin: 0 0 32px; padding: 14px 0; }
.aca-legend__dot { border-radius: 0; width: 7px; height: 7px; }
.aca-calendar-wrap--with-aside .aca-calendar-layout { grid-template-columns: minmax(0, 1.65fr) minmax(260px, 1fr); gap: 40px; }
.aca-calendar.fc table { margin: 0; background: transparent; }
.aca-calendar.fc th, .aca-calendar.fc td { background: transparent; border-color: var(--aca-line); }
.aca-calendar.fc .fc-toolbar-title { font-size: 24px; }
.aca-calendar.fc .fc-col-header-cell { border-top: 1px solid var(--aca-ink); border-left: 0; border-right: 0; text-align: left; padding: 10px 6px; }
.aca-calendar.fc .fc-col-header-cell-cushion { font-size: 9px; }
.aca-calendar.fc .fc-daygrid-day-top { justify-content: flex-start; }
.aca-calendar.fc .fc-daygrid-day-number { font-size: 11px; padding: 7px 5px; }
.aca-calendar.fc .fc-daygrid-day-frame { min-height: 104px; }
.aca-calendar.fc .fc-day-other { background: color-mix(in srgb, var(--aca-ink) 5%, var(--aca-bg)); }
.aca-calendar.fc .fc-day-today { background: var(--aca-bg); }
.aca-calendar.fc .fc-day-today .fc-daygrid-day-number { border-radius: 0; margin: 4px 0 3px 4px; min-width: 20px; padding: 4px; }
.aca-calendar.fc .fc-button-primary { border-color: var(--aca-ink); border-radius: 0; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.aca-calendar.fc .fc-today-button { background: var(--aca-ink); color: var(--aca-bg); }
.aca-calendar.fc .fc-daygrid-event { background: var(--aca-event-color, var(--aca-accent)) !important; border: 0; border-radius: 6px; margin: 2px 4px 4px; padding: 8px 10px; box-shadow: 0 6px 14px rgba(7, 21, 39, .12); }
.aca-calendar.fc .fc-daygrid-event .fc-event-main { color: var(--aca-event-text, #fff); }
.aca-calendar.fc .fc-daygrid-event .fc-event-title { white-space: normal; overflow-wrap: anywhere; font-size: 14px; font-weight: 800; line-height: 1.3; }
.aca-calendar.fc .aca-event-time { color: var(--aca-event-text, #fff); font-size: 12px; font-weight: 700; margin-top: 5px; opacity: 1; }
.aca-calendar-wrap .aca-upcoming__header { min-height: 40px; border-bottom-width: 1px; padding-bottom: 12px; }
.aca-calendar-wrap .aca-upcoming__title { margin: 0; font-size: 18px; line-height: 1.3; }
.aca-upcoming__all { margin-left: auto; color: var(--aca-accent); font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; white-space: nowrap; }
.aca-calendar-wrap .aca-activity-card { padding: 18px 0; grid-template-columns: 44px minmax(0, 1fr); border-color: var(--aca-line); }
.aca-calendar-wrap .aca-activity-card__day { font-size: 28px; }
.aca-calendar-wrap .aca-activity-card__type { padding: 2px 6px; margin-bottom: 7px; border-radius: 0; font-size: 9px; }
.aca-calendar-wrap .aca-activity-card__title { margin: 0 0 6px; font-size: 15px; }
.aca-calendar-wrap .aca-activity-card__meta { font-size: 12px; color: var(--aca-muted); }
.aca-calendar-wrap--no-lines .aca-legend,
.aca-calendar-wrap--no-lines .aca-upcoming__header,
.aca-calendar-wrap--no-lines .aca-activity-card { border: 0; }
.aca-calendar-wrap--no-lines .aca-calendar.fc { --fc-border-color: transparent; }
.aca-calendar-wrap--no-lines .aca-calendar.fc th,
.aca-calendar-wrap--no-lines .aca-calendar.fc td,
.aca-calendar-wrap--no-lines .aca-calendar.fc .fc-col-header-cell { border-color: transparent; }
@media (max-width: 900px) {
 .aca-calendar-wrap--with-aside .aca-calendar-layout { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 600px) {
 .aca-calendar__header { grid-template-columns: 1fr; gap: 16px; }
 .aca-calendar.fc .fc-toolbar.fc-header-toolbar { justify-content: space-between; }
 .aca-calendar.fc .fc-toolbar-title { font-size: 20px; }
 .aca-calendar.fc .fc-daygrid-day-frame { min-height: 76px; }
 .aca-calendar.fc .fc-daygrid-event { margin-left: 1px; margin-right: 1px; padding: 6px 7px; }
 .aca-calendar.fc .fc-daygrid-event .fc-event-title { font-size: 12px; }
 .aca-calendar.fc .aca-event-time { font-size: 11px; }
}

/* Nearby activities slider. */
.aca-nearby-slider { --aca-nearby-accent: #e12828; position: relative; font-family: Raleway, system-ui, -apple-system, "Segoe UI", sans-serif; }
.aca-nearby-slider__title { margin: 0 0 24px; color: #071527; font-size: clamp(26px, 3vw, 40px); font-weight: 800; line-height: 1.15; }
.aca-nearby-slider__swiper { position: relative; padding: 2px 2px 42px; }
.aca-nearby-slider .swiper-slide { height: auto; }
.aca-nearby-slider .swiper-wrapper { align-items: stretch; }
.aca-nearby-slider .swiper-slide:only-child { max-width: 360px; }
.aca-nearby-slider--fallback .swiper-wrapper { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.aca-nearby-slider--fallback .swiper-slide { width: auto; }
.aca-nearby-slider [data-aca-slide][hidden] { display: none !important; }
.aca-nearby-slider--loading .aca-nearby-slider__swiper { opacity: .45; pointer-events: none; transition: opacity .2s ease; }
.aca-nearby-slider--loading .aca-nearby-filter__clear,
.aca-nearby-slider--loading .aca-nearby-filter input,
.aca-nearby-slider--loading .aca-nearby-filter select { cursor: progress; }
.aca-nearby-filter { display: grid; grid-template-columns: minmax(220px, 1.2fr) minmax(220px, 1fr) auto; gap: 12px; align-items: end; margin: 0 0 22px; padding: 16px; border: 1px solid #dbe3ea; border-radius: 8px; background: #fff; box-shadow: 0 14px 30px rgba(7, 21, 39, .05); }
.aca-nearby-filter__field { display: grid; gap: 7px; margin: 0; min-width: 0; }
.aca-nearby-filter__field span { color: #566170; font-size: 11px; font-weight: 800; line-height: 1.2; letter-spacing: .08em; text-transform: uppercase; }
.aca-nearby-filter input,
.aca-nearby-filter select { width: 100%; min-height: 44px; margin: 0; border: 1px solid #d5dde5; border-radius: 6px; background: #fff; color: #071527; font-size: 13px; font-weight: 600; line-height: 1.2; box-shadow: none; outline: none; }
.aca-nearby-filter input { padding: 0 13px; }
.aca-nearby-filter select { padding: 0 34px 0 12px; }
.aca-nearby-filter input:focus,
.aca-nearby-filter select:focus { border-color: var(--aca-nearby-accent); box-shadow: 0 0 0 3px rgba(225, 40, 40, .12); }
.aca-nearby-filter__clear { min-height: 44px; padding: 0 16px; border: 1px solid #d5dde5; border-radius: 6px; background: #fff; color: #071527; font-size: 12px; font-weight: 800; line-height: 1; cursor: pointer; transition: border-color .2s ease, color .2s ease, box-shadow .2s ease; }
.aca-nearby-filter__clear:hover,
.aca-nearby-filter__clear:focus { border-color: var(--aca-nearby-accent); color: var(--aca-nearby-accent); box-shadow: 0 8px 18px rgba(7, 21, 39, .08); }
.aca-nearby-filter__empty { margin: 0 0 18px; color: #687483; font-size: 14px; font-weight: 600; line-height: 1.5; }
.aca-nearby-slider--filtered-empty .aca-nearby-slider__swiper { display: none; }
.aca-nearby-card { --aca-activity-color: var(--aca-nearby-accent); --aca-activity-text: #fff; display: flex; flex-direction: column; min-height: 100%; overflow: hidden; border: 1px solid #d5dde5; border-radius: 10px; background: #fff; box-shadow: 0 16px 34px rgba(7, 21, 39, .1); color: #071527; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.aca-nearby-card:hover { transform: translateY(-3px); border-color: #c6d1dc; box-shadow: 0 20px 42px rgba(7, 21, 39, .12); }
.aca-nearby-card__top { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 58px; padding: 12px 16px; background: var(--aca-activity-color); color: var(--aca-activity-text); }
.aca-nearby-card__top strong { min-width: 0; overflow: hidden; color: inherit; font-size: 21px; font-weight: 900; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.aca-nearby-card__calendar { position: relative; display: inline-flex; width: 26px; height: 26px; align-items: center; justify-content: center; border: 2px solid currentColor; border-radius: 5px; opacity: .96; }
.aca-nearby-card__calendar::before { content: ""; position: absolute; top: 6px; left: 3px; right: 3px; height: 2px; background: currentColor; }
.aca-nearby-card__calendar::after { content: ""; width: 4px; height: 4px; margin-top: 8px; border-radius: 1px; background: currentColor; box-shadow: 7px 0 0 currentColor, -7px 0 0 currentColor; }
.aca-nearby-card__month-pill { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 7px 15px; border-radius: 999px; background: rgba(255, 255, 255, .2); color: inherit; font-size: 13px; font-weight: 800; line-height: 1; white-space: nowrap; }
.aca-nearby-card__image { position: relative; display: block; aspect-ratio: 16 / 7.1; overflow: hidden; background: #e8edf2; text-decoration: none; }
.aca-nearby-card__image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.aca-nearby-card:hover .aca-nearby-card__image img { transform: scale(1.04); }
.aca-nearby-card__image--empty { background: linear-gradient(135deg, #cfd8e3, #edf1f5); }
.aca-nearby-card__badge { display: none; }
.aca-nearby-card__body { display: flex; flex: 1; flex-direction: column; padding: 18px 16px 16px; }
.aca-nearby-card__date-range { display: grid; grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr); align-items: stretch; gap: 8px; margin: 0 0 16px; }
.aca-nearby-card__date-range--single { grid-template-columns: 1fr; }
.aca-nearby-card__date-box { display: grid; align-content: center; min-height: 62px; padding: 11px 17px; border: 1px solid color-mix(in srgb, var(--aca-activity-color) 25%, #d8dee5); border-radius: 6px; background: color-mix(in srgb, var(--aca-activity-color) 25%, #ffffff); }
.aca-nearby-card__date-box span { display: block; margin: 0 0 5px; color: #5d6980; font-size: 10px; font-weight: 900; line-height: 1.1; letter-spacing: .08em; text-transform: uppercase; }
.aca-nearby-card__date-box strong { display: block; color: #071527; font-size: 18px; font-weight: 900; line-height: 1.05; text-transform: none; }
.aca-nearby-card__date-arrow { display: flex; align-items: center; justify-content: center; color: var(--aca-activity-color); font-size: 20px; font-weight: 900; line-height: 1; }
.aca-nearby-card__main { display: block; }
.aca-nearby-card__title { margin: 0 0 5px; color: inherit; font-size: 24px; font-weight: 900; line-height: 1.08; }
.aca-nearby-card__title a { color: inherit; text-decoration: none; }
.aca-nearby-card__title a:hover { color: var(--aca-nearby-accent); }
.aca-nearby-card__title,
.aca-nearby-card__activity,
.aca-nearby-card__place,
.aca-nearby-card__summary { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; }
.aca-nearby-card__title { -webkit-line-clamp: 2; }
.aca-nearby-card__activity { margin: 0 0 5px; color: #303b49; font-size: 16px; font-weight: 700; line-height: 1.35; -webkit-line-clamp: 2; }
.aca-nearby-card__place { margin: 0 0 12px; color: #6a7480; font-size: 12px; font-weight: 800; line-height: 1.25; letter-spacing: .06em; text-transform: uppercase; -webkit-line-clamp: 2; }
.aca-nearby-card__summary { margin: 14px 0 0; color: #687483; font-size: 16px; font-weight: 500; line-height: 1.55; -webkit-line-clamp: 3; }
.aca-nearby-card__meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 14px 0 12px; padding-top: 0; border-top: 0; color: #071527; font-size: 13px; font-weight: 800; line-height: 1.22; text-align: center; }
.aca-nearby-card__meta span { display: grid; gap: 5px; min-width: 0; min-height: 62px; align-content: center; padding: 9px 8px; border: 1px solid #e2e7ec; border-radius: 6px; background: #fbfcfd; box-shadow: 0 5px 12px rgba(7,21,39,.035); }
.aca-nearby-card__meta strong { display: block; color: #5d6980; font-size: 9px; font-weight: 900; line-height: 1.1; letter-spacing: .07em; text-transform: uppercase; }
.aca-nearby-card__button { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; margin-top: auto; min-height: 54px; padding: 14px 18px; border-radius: 8px; background: var(--aca-activity-color); color: var(--aca-activity-text); font-size: 14px; font-weight: 800; line-height: 1.2; text-align: center; text-decoration: none; transition: filter .2s ease, transform .2s ease; }
.aca-nearby-card a.aca-nearby-card__button,
.aca-nearby-card a.aca-nearby-card__button:visited,
.aca-nearby-card a.aca-nearby-card__button:hover,
.aca-nearby-card a.aca-nearby-card__button:focus,
.aca-nearby-card a.aca-nearby-card__button:active { text-decoration: none; }
.aca-nearby-card__button:hover,
.aca-nearby-card__button:focus { color: var(--aca-activity-text); text-decoration: none; filter: brightness(.94); transform: translateY(-1px); }
.aca-nearby-slider__arrow { position: absolute; top: 42%; transform: translateY(-50%); z-index: 5; width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #d5dde5; border-radius: 50%; background: #fff; color: #071527; font-size: 18px; line-height: 1; box-shadow: 0 10px 24px rgba(7, 21, 39, .16); cursor: pointer; transition: background-color .15s ease, border-color .15s ease, transform .15s ease; }
.aca-nearby-slider__arrow:hover { background: var(--aca-nearby-accent, #e12828); border-color: var(--aca-nearby-accent, #e12828); color: #fff; }
.aca-nearby-slider__arrow:focus-visible { outline: 2px solid var(--aca-nearby-accent, #e12828); outline-offset: 2px; }
.aca-nearby-slider__arrow--prev { left: 6px; }
.aca-nearby-slider__arrow--next { right: 6px; }
.aca-nearby-slider__arrow.swiper-button-disabled { opacity: .35; cursor: default; }
.aca-nearby-slider__arrow.swiper-button-lock { display: none; }
.aca-nearby-slider__pagination { position: absolute; left: 0; right: 0; bottom: 6px; text-align: center; }
.aca-nearby-slider__pagination .swiper-pagination-bullet { background: #9aa5b1; opacity: .45; }
.aca-nearby-slider__pagination .swiper-pagination-bullet-active { background: var(--aca-nearby-accent); opacity: 1; }
@media (max-width: 1024px) {
 .aca-nearby-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .aca-nearby-filter__clear { width: 100%; }
 .aca-nearby-slider--fallback .swiper-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
 .aca-nearby-filter { grid-template-columns: 1fr; padding: 14px; }
 .aca-nearby-slider--fallback .swiper-wrapper { grid-template-columns: 1fr; }
 .aca-nearby-slider__swiper { padding-left: 2px; padding-right: 2px; }
 .aca-nearby-card__image { aspect-ratio: 16 / 9; }
 .aca-nearby-card__title { font-size: 17px; }
 .aca-nearby-card__date-range { grid-template-columns: 1fr; gap: 6px; }
 .aca-nearby-card__date-arrow { display: none; }
 .aca-nearby-card__date-box { min-height: 58px; }
 .aca-nearby-card__meta { grid-template-columns: 1fr; }
 .aca-nearby-slider__arrow { width: 40px; height: 40px; font-size: 16px; }
}

/*
 * Las flechas van DENTRO del area del slider (left/right positivos).
 * Antes se colocaban a -54px, fuera del contenedor: si el widget quedaba
 * pegado al borde de la pagina, se cortaban y parecia que no existieran.
 *
 * Tampoco se ocultan ya en movil: son la forma natural de pasar tarjetas
 * para quien no descubre el gesto de deslizar.
 */

/* Professional route/event slider. */
.aca-routes-slider { --aca-routes-accent: #c91f1f; position: relative; font-family: Raleway, system-ui, -apple-system, "Segoe UI", sans-serif; color: #071527; }
.aca-routes-slider__title { margin: 0 0 22px; color: #071527; font-size: clamp(28px, 3vw, 44px); font-weight: 800; line-height: 1.1; }
.aca-routes-filter { --aca-route-filter-width: 280px; --aca-route-filter-active-width: 560px; --aca-route-filter-gap: 18px; width: 100%; margin: 0 0 28px; overflow: hidden; padding: 4px 3px 10px; }
.aca-routes-filter .swiper-wrapper { align-items: stretch; }
.aca-routes-filter__item { position: relative; min-height: 138px; overflow: hidden; border: 0; border-radius: 8px; background: #111923; color: #fff; text-align: left; padding: 26px 26px 24px; cursor: pointer; isolation: isolate; box-shadow: 0 16px 34px rgba(7, 21, 39, .1); }
.aca-routes-filter__item img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.aca-routes-filter__item::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(7, 21, 39, .74), rgba(7, 21, 39, .24)); }
.aca-routes-filter__item span { display: block; font-size: 22px; font-weight: 700; line-height: 1.1; }
.aca-routes-filter__item small { display: block; margin-top: 8px; font-size: 10px; font-weight: 800; line-height: 1.2; letter-spacing: .14em; text-transform: uppercase; }
.aca-routes-filter__item b { display: none; margin-top: 18px; color: #fff; font-size: 12px; font-weight: 800; line-height: 1.2; }
.aca-routes-filter__item i { position: absolute; right: 18px; bottom: 18px; display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.72); border-radius: 50%; font-style: normal; }
.aca-routes-filter__item:hover img,
.aca-routes-filter__item.is-active img { transform: scale(1.05); }
.aca-routes-filter__item:hover,
.aca-routes-filter__item.is-active { outline: 3px solid var(--aca-routes-accent); outline-offset: 3px; }
.aca-routes-slider--destination-filter .aca-routes-filter__item { width: var(--aca-route-filter-width); height: 248px; min-height: 0; padding: 0; display: flex; flex-direction: column; justify-content: flex-end; transition: width .42s cubic-bezier(.22,.61,.36,1), outline-color .2s ease, box-shadow .2s ease; }
.aca-routes-slider--destination-filter .aca-routes-filter__item.is-active,
.aca-routes-slider--destination-filter .aca-routes-filter__item.is-expanded { width: var(--aca-route-filter-width); }
.aca-routes-slider--destination-filter .aca-routes-filter__item:hover,
.aca-routes-slider--destination-filter .aca-routes-filter__item.is-active,
.aca-routes-slider--destination-filter .aca-routes-filter__item.is-expanded { outline: 0; outline-offset: 0; box-shadow: 0 0 0 1px rgba(7,21,39,.24); }
.aca-routes-slider--destination-filter .aca-routes-filter__item:focus,
.aca-routes-slider--destination-filter .aca-routes-filter__item:focus-visible,
.aca-routes-slider--destination-filter .aca-routes-filter__item.is-active { border: 0 !important; outline: 0 !important; box-shadow: none !important; -webkit-tap-highlight-color: transparent; }
.aca-routes-slider--destination-filter .aca-routes-filter__item span,
.aca-routes-slider--destination-filter .aca-routes-filter__item small,
.aca-routes-slider--destination-filter .aca-routes-filter__item b { position: relative; z-index: 1; margin-left: 28px; margin-right: 72px; }
.aca-routes-slider--destination-filter .aca-routes-filter__item span { font-size: clamp(26px, 2.5vw, 36px); font-weight: 600; letter-spacing: 0; }
.aca-routes-slider--destination-filter .aca-routes-filter__item small { order: -1; margin-bottom: 8px; font-size: 11px; }
.aca-routes-slider--destination-filter .aca-routes-filter__item b { display: none; }
.aca-routes-slider--destination-filter .aca-routes-filter__item i { top: 18px; right: 18px; bottom: auto; width: 40px; height: 40px; font-size: 19px; }
.aca-routes-slider--destination-filter .aca-routes-filter__item::before { background: linear-gradient(0deg, rgba(3, 9, 16, .88), rgba(7, 21, 39, .34) 58%, rgba(7, 21, 39, .1)); }
.aca-routes-slider--destination-filter .aca-routes-filter__item.is-active i { border-color: var(--aca-routes-accent); background: var(--aca-routes-accent); }
.aca-routes-slider--destination-filter .aca-routes-filter__item:not(.is-active):not(.is-expanded) b { opacity: 0; transform: translateY(8px); }
.aca-routes-slider--destination-filter .aca-routes-filter__item b { transition: opacity .25s ease, transform .25s ease; }
.aca-routes-slider--compact-filter .aca-routes-filter__item { width: var(--aca-route-filter-width); }
.aca-routes-slider__swiper { overflow: visible !important; padding: 4px 2px 46px; }
.aca-routes-slider .swiper-wrapper { align-items: stretch; }
.aca-routes-slider .swiper-slide { height: auto; }
.aca-routes-slider [data-route-slide][hidden] { display: none !important; }
.aca-routes-slider--fallback .aca-routes-slider__swiper > .swiper-wrapper { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(300px, 33.333%); grid-template-columns: none; gap: 24px; overflow-x: auto; padding-bottom: 14px; scroll-snap-type: x proximity; }
.aca-routes-slider--fallback .aca-routes-slider__swiper > .swiper-wrapper > .swiper-slide { width: auto; scroll-snap-align: start; }
.aca-route-card { display: flex; flex-direction: column; min-height: 100%; overflow: hidden; border: 1px solid transparent; border-radius: 10px; background: #fff; box-shadow: 0 18px 38px rgba(7, 21, 39, .08); color: #071527; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.aca-route-card:hover { transform: translateY(-3px); box-shadow: 0 24px 48px rgba(7, 21, 39, .12); }
.aca-route-card__media { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #dce4ec; text-decoration: none; }
.aca-route-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.aca-route-card:hover .aca-route-card__media img { transform: scale(1.04); }
.aca-route-card__media::after { content: ""; position: absolute; inset: auto 0 0; height: 45%; background: linear-gradient(0deg, rgba(7,21,39,.42), transparent); }
.aca-route-card__badge { position: absolute; top: 16px; right: 16px; z-index: 1; max-width: calc(100% - 32px); padding: 8px 13px; border-radius: 999px; background: #ff7a00; color: #fff; font-size: 11px; font-weight: 800; line-height: 1.2; }
.aca-route-card__body { display: flex; flex: 1; flex-direction: column; padding: 24px 24px 20px; }
.aca-route-card__title { margin: 0 0 10px; color: #071527; font-size: 22px; font-weight: 800; line-height: 1.2; }
.aca-route-card__title a { color: inherit; text-decoration: none; }
.aca-route-card__title a:hover { color: var(--aca-routes-accent); }
.aca-route-card__excerpt { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; margin: 0 0 18px; color: #566170; font-size: 14px; font-weight: 500; line-height: 1.55; }
.aca-route-card__meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: auto 0 16px; padding-top: 15px; border-top: 1px solid #dbe3ea; color: #566170; font-size: 13px; font-weight: 600; line-height: 1.35; }
.aca-route-card__tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; }
.aca-route-card__tags span { max-width: 100%; overflow: hidden; padding: 6px 11px; border-radius: 999px; background: #f2f4f6; color: #566170; font-size: 12px; font-weight: 600; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.aca-route-card__button { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 52px; margin-top: auto; border-radius: 8px; background: var(--aca-routes-accent); color: #fff; font-size: 15px; font-weight: 800; line-height: 1.2; text-align: center; text-decoration: none; transition: filter .2s ease, transform .2s ease; }
.aca-route-card__button:hover,
.aca-route-card__button:focus,
.aca-route-card__button:visited { color: #fff; text-decoration: none; }
.aca-route-card__button:hover { filter: brightness(.94); transform: translateY(-1px); }
.aca-route-overlay-card { height: 390px; min-height: 390px; overflow: hidden !important; border: 1px solid rgba(7,21,39,.2); border-radius: 10px; background: #13283b; box-shadow: 0 14px 30px rgba(7,21,39,.1); }
.aca-route-overlay-card__link { position: relative; display: block; width: 100%; height: 100%; color: #fff; text-decoration: none; }
.aca-route-overlay-card__link > img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.aca-route-overlay-card:hover .aca-route-overlay-card__link > img { transform: scale(1.035); }
.aca-route-overlay-card__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,21,39,.04) 30%, rgba(7,21,39,.9) 100%); }
.aca-route-overlay-card .aca-route-card__badge { z-index: 2; }
.aca-route-overlay-card .aca-route-card__badge { right: auto !important; left: 18px !important; }
.aca-route-overlay-card__arrow { position: absolute; top: 18px; right: 18px; z-index: 2; display: inline-flex; width: 42px; height: 42px; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.82); border-radius: 50%; color: #fff; font-size: 19px; transition: background .2s ease, border-color .2s ease; }
.aca-route-overlay-card:hover .aca-route-overlay-card__arrow { border-color: var(--aca-routes-accent); background: var(--aca-routes-accent); }
.aca-route-overlay-card__copy { position: absolute; right: 24px; bottom: 24px; left: 24px; z-index: 2; }
.aca-route-overlay-card__copy .aca-route-flip-card__eyebrow { color: rgba(255,255,255,.9); }
.aca-route-overlay-card__copy h3 { max-width: calc(100% - 10px); margin: 0; color: #fff; font-size: 23px; font-weight: 700; line-height: 1.08; }
.aca-route-flip-card { position: relative; z-index: 1; min-height: 390px; perspective: 1100px; background: transparent !important; box-shadow: none !important; overflow: visible !important; }
.aca-route-flip-card:hover, .aca-route-flip-card.is-flipped { z-index: 5; }
.aca-route-flip-card:focus { outline: 2px solid var(--aca-routes-accent); outline-offset: 5px; }
.aca-route-flip-card__inner { position: relative; width: 100%; height: 390px; transform-style: preserve-3d; transition: transform .65s cubic-bezier(.2,.7,.2,1); will-change: transform; }
.aca-route-flip-card:hover .aca-route-flip-card__inner,
.aca-route-flip-card.is-flipped .aca-route-flip-card__inner { transform: rotateY(180deg); }
.aca-route-flip-card__face { position: absolute; inset: 0; overflow: hidden; border: 1px solid rgba(7,21,39,.22); border-radius: 10px; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.aca-route-flip-card__front { isolation: isolate; border: 1px solid rgba(7,21,39,.24); background: #13283b; color: #fff; }
.aca-route-flip-card__front > img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.aca-route-flip-card:hover .aca-route-flip-card__front > img { transform: scale(1.04); }
.aca-route-flip-card__shade { position: absolute; inset: 0; z-index: 0; background: linear-gradient(180deg, rgba(7,21,39,.08) 24%, rgba(7,21,39,.9) 100%); }
.aca-route-flip-card__front .aca-route-card__badge { z-index: 1; }
.aca-route-flip-card__front .aca-route-card__badge { right: auto; left: 18px; }
.aca-route-flip-card__front-copy { position: absolute; right: 24px; bottom: 24px; left: 24px; z-index: 1; }
.aca-route-flip-card__eyebrow { display: block; margin: 0 0 9px; color: #687688; font-size: 11px; font-weight: 800; line-height: 1.2; letter-spacing: .12em; text-transform: uppercase; }
.aca-route-flip-card__front .aca-route-flip-card__eyebrow { color: rgba(255,255,255,.9); }
.aca-route-flip-card__front h3 { max-width: calc(100% - 44px); margin: 0; color: #fff; font-size: clamp(24px, 2.4vw, 34px); font-weight: 700; line-height: 1.05; }
.aca-route-flip-card__flip { position: absolute; top: 18px; right: 18px; z-index: 2; display: inline-flex; width: 42px; height: 42px; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.82); border-radius: 50%; background: rgba(7,21,39,.16); color: #fff; font-size: 19px; cursor: pointer; }
.aca-route-flip-card__flip:hover, .aca-route-flip-card__flip:focus { background: var(--aca-routes-accent); color: #fff; }
.aca-route-flip-card__back { transform: rotateY(180deg); border: 1px solid #d7dfe7; background: #fff; box-shadow: 0 12px 24px rgba(7,21,39,.1); }
.aca-route-flip-card__back::before { content: ""; position: absolute; top: 0; right: 0; left: 0; height: 4px; background: var(--aca-routes-accent); }
.aca-route-flip-card__back .aca-route-card__body { height: 100%; box-sizing: border-box; }
.aca-route-flip-card__back .aca-route-card__title { font-size: 22px; }
.aca-route-flip-card__back .aca-route-card__excerpt { -webkit-line-clamp: 4; }
@media (prefers-reduced-motion: reduce) {
 .aca-route-flip-card__inner { transition: none; }
}
.aca-routes-slider__arrow { position: absolute; top: 62%; z-index: 2; display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border: 1px solid #d5dde5; border-radius: 50%; background: #fff; color: #071527; box-shadow: 0 10px 24px rgba(7, 21, 39, .12); cursor: pointer; }
.aca-routes-slider__arrow i, .aca-routes-slider__arrow svg { display: block; color: currentColor; fill: currentColor; line-height: 1; }
.aca-routes-slider__arrow--prev { left: -56px; }
.aca-routes-slider__arrow--next { right: -56px; }
.aca-routes-slider__arrow.swiper-button-disabled { opacity: .35; cursor: default; }
.aca-routes-slider__arrow.swiper-button-lock { display: none; }
@media (max-width: 1024px) {
 .aca-routes-filter { --aca-route-filter-width: 250px; --aca-route-filter-active-width: 460px; }
 .aca-routes-slider--destination-filter .aca-routes-filter__item { height: 220px; }
 .aca-routes-slider--fallback .aca-routes-slider__swiper > .swiper-wrapper { grid-auto-columns: minmax(290px, 50%); }
 .aca-routes-slider__arrow { display: none; }
}
@media (max-width: 640px) {
 .aca-routes-filter { --aca-route-filter-width: calc(86vw - 6px); --aca-route-filter-active-width: calc(86vw - 6px); --aca-route-filter-gap: 14px; }
 .aca-routes-filter__item { min-height: 122px; padding: 22px; }
 .aca-routes-slider--destination-filter .aca-routes-filter__item { height: 210px; }
 .aca-routes-slider--destination-filter .aca-routes-filter__item span { font-size: 28px; }
 .aca-routes-slider--fallback .aca-routes-slider__swiper > .swiper-wrapper { grid-auto-columns: minmax(260px, 86vw); }
 .aca-route-card__body { padding: 20px 18px 18px; }
 .aca-route-card__title { font-size: 20px; }
 .aca-route-card__meta { grid-template-columns: 1fr; }
 .aca-route-flip-card, .aca-route-flip-card__inner { min-height: 360px; height: 360px; }
 .aca-route-overlay-card { min-height: 360px; height: 360px; }
 .aca-route-overlay-card__copy { right: 18px; bottom: 18px; left: 18px; }
 .aca-route-overlay-card__copy h3 { font-size: 27px; }
 .aca-route-flip-card__front-copy { right: 18px; bottom: 18px; left: 18px; }
 .aca-route-flip-card__front h3 { font-size: 27px; }
}

/* Compact information step widget. */
.aca-info-step { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 24px; align-items: center; font-family: Raleway, system-ui, -apple-system, "Segoe UI", sans-serif; }
.aca-info-step__number-badge { width: 72px; height: 72px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: #ffd6d6; color: #e12828; font-size: 18px; font-weight: 900; line-height: 1; letter-spacing: .02em; }
.aca-info-step__number-badge svg { width: 26px; height: 26px; display: block; fill: currentColor; }
.aca-info-step__content { min-width: 0; }
.aca-info-step__number-inline { display: block; margin: 0 0 7px; color: #e12828; font-size: 14px; font-weight: 800; line-height: 1; }
.aca-info-step__title { margin: 0 0 10px; color: #071527; font-size: 17px; font-weight: 600; line-height: 1.25; }
.aca-info-step__description { margin: 0; color: #637083; font-size: 13px; font-weight: 500; line-height: 1.5; }
@media (max-width: 520px) {
 .aca-info-step { grid-template-columns: 58px minmax(0, 1fr); gap: 16px; }
 .aca-info-step__number-badge { width: 58px; height: 58px; font-size: 15px; }
 .aca-info-step__number-badge svg { width: 22px; height: 22px; }
}

/* ---------- Navegación desde la lista de próximas ---------- */

/*
 * Al pulsar una tarjeta, el calendario salta a su mes. Lo indicamos con
 * el cursor para que se note que es pulsable.
 */
.aca-activity-card[data-aca-goto] {
	cursor: pointer;
}

.aca-activity-card[data-aca-goto]:hover {
	background: rgba(0, 0, 0, .02);
}

.aca-activity-card--active {
	background: color-mix(in srgb, var(--aca-accent, #e12828) 9%, #fff);
	box-shadow: inset 3px 0 0 var(--aca-accent, #e12828);
}

/* Parpadeo breve sobre la actividad a la que se ha saltado */

.aca-calendar .fc .fc-event.aca-event--flash {
	animation: aca-flash 1.1s ease-in-out 2;
	position: relative;
	z-index: 2;
}

@keyframes aca-flash {
	0%, 100% {
		box-shadow: 0 0 0 0 transparent;
	}
	50% {
		box-shadow: 0 0 0 3px rgba(225, 40, 40, .55);
	}
}

/* Respetamos a quien prefiere no ver animaciones */

@media (prefers-reduced-motion: reduce) {
	.aca-calendar .fc .fc-event.aca-event--flash {
		animation: none;
		box-shadow: 0 0 0 3px rgba(225, 40, 40, .55);
	}
}

/* =========================================================
   LEGIBILIDAD Y PERTENENCIA AL EVENTO

   Dos objetivos:

   1. Que se vea de un vistazo a qué expedición pertenece cada barra.
   2. Que el texto sea legible sin esfuerzo. Los tamaños de aquí son
      deliberadamente mayores que los de FullCalendar por defecto (que
      usa 10-11px): buena parte del público tiene vista cansada.
   ========================================================= */

/* ---------- Barras del calendario ---------- */

.aca-calendar .fc .aca-event-body {
	padding: 1px 0;
	overflow: hidden;
}

/* Nombre del evento: lo primero que se lee */

.aca-calendar .fc .aca-event-evento {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .02em;
	line-height: 1.3;
	opacity: .95;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.aca-calendar .fc .aca-event-body .fc-event-title {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;
	white-space: normal;
}

.aca-calendar .fc .aca-event-time {
	font-size: 12px;
	font-weight: 500;
	line-height: 1.35;
	opacity: .9;
}

/*
 * Continuación de una expedición que cruza de semana.
 * No repetimos el título: solo una franja con el nombre del evento,
 * más tenue, para que se entienda que es lo mismo que empezó arriba.
 */
.aca-calendar .fc .aca-event-body--cont {
	opacity: .78;
}

.aca-calendar .fc .aca-event-cont {
	display: block;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Un poco más de aire dentro de cada barra */

.aca-calendar .fc .fc-daygrid-event {
	padding: 5px 9px;
}

/* Números de día y cabeceras, también más legibles */

.aca-calendar .fc .fc-daygrid-day-number {
	font-size: 15px;
}

.aca-calendar .fc .fc-col-header-cell-cushion {
	font-size: 12px;
	letter-spacing: .06em;
}

.aca-calendar .fc .fc-toolbar-title {
	font-size: clamp(21px, 2.4vw, 28px);
}

.aca-calendar .fc .fc-button,
.aca-calendar .fc .fc-button-primary {
	font-size: 13px;
	padding: 9px 16px;
}

/* ---------- Tarjetas de la lista ---------- */

.aca-activity-card__tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin-bottom: 8px;
}

/*
 * Etiqueta del evento: fondo sólido con SU color.
 * Es lo que permite emparejar de un vistazo la tarjeta con la barra
 * del mismo color en la rejilla.
 */
.aca-activity-card__evento-tag {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 3px;
	background: var(--aca-evento-color, #e12828);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .02em;
	line-height: 1.5;
}

.aca-activity-card__title {
	font-size: 18px;
	line-height: 1.35;
}

.aca-activity-card__meta {
	font-size: 15px;
	line-height: 1.55;
}

/* Duración: "16 días" */

.aca-activity-card__dias {
	display: inline-block;
	margin-left: 6px;
	padding: 2px 8px;
	border-radius: 3px;
	background: rgba(0, 0, 0, .06);
	font-size: 13px;
	font-weight: 700;
}

.aca-activity-card__day {
	font-size: 32px;
}

.aca-activity-card__month {
	font-size: 12px;
}

/* ---------- Móvil: lista en vez de rejilla ---------- */

@media (max-width: 782px) {

	/*
	 * Una rejilla de 7 columnas en un teléfono deja celdas de 45px:
	 * ilegibles. La vista de lista muestra una actividad por fila,
	 * con texto de tamaño normal.
	 */
	.aca-calendar .fc .fc-list-event-title a {
		font-size: 16px;
		font-weight: 700;
	}

	.aca-calendar .fc .fc-list-event-time {
		font-size: 14px;
	}

	.aca-calendar .fc .fc-list-day-text,
	.aca-calendar .fc .fc-list-day-side-text {
		font-size: 14px;
	}

	.aca-calendar .fc .fc-list-event td {
		padding: 14px 12px;
	}

	/* Si aun así se usa la rejilla, que al menos se lea */
	.aca-calendar .fc .aca-event-evento,
	.aca-calendar .fc .aca-event-cont {
		font-size: 11px;
	}

	.aca-calendar .fc .aca-event-body .fc-event-title {
		font-size: 12px;
	}

	.aca-activity-card__title {
		font-size: 17px;
	}

	.aca-activity-card__meta {
		font-size: 15px;
	}
}

/* ---------- Contraste del texto sobre la barra ---------- */

/*
 * --aca-event-text lo calcula el JavaScript según el color de fondo:
 * blanco sobre colores oscuros, negro sobre claros. Sin esto, un evento
 * en amarillo o turquesa quedaba con letra blanca e ilegible.
 */
.aca-calendar .fc .fc-daygrid-event,
.aca-calendar .fc .fc-daygrid-event .fc-event-main,
.aca-calendar .fc .aca-event-body,
.aca-calendar .fc .aca-event-evento,
.aca-calendar .fc .aca-event-body .fc-event-title,
.aca-calendar .fc .aca-event-time,
.aca-calendar .fc .aca-event-cont {
	color: var(--aca-event-text, #fff);
}

/* Etiqueta del evento en la lista: mismo criterio */

.aca-activity-card__evento-tag {
	color: var(--aca-evento-text, #fff);
}

/* =========================================================
   BARRA DE FILTROS

   Dos desplegables: expedición y mes. Tamaños generosos porque se
   usan con el dedo en móvil y los lee gente con vista cansada.
   ========================================================= */

.aca-filtros {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 16px;
	margin: 0 0 22px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--aca-line);
}

.aca-filtros__campo {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	min-width: 220px;
}

.aca-filtros__label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--aca-muted);
}

/*
 * appearance:none quita el estilo del sistema para que el desplegable
 * se vea igual en todos los navegadores. La flecha la dibujamos como
 * imagen de fondo.
 */
.aca-filtros__select,
.aca-filtros__input {
	appearance: none;
	-webkit-appearance: none;
	width: 100%;
	padding: 11px 38px 11px 14px;
	border: 1px solid var(--aca-line);
	border-radius: var(--aca-radius);
	background-color: var(--aca-bg);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%236b7280' d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 12px 8px;
	color: var(--aca-ink);
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	cursor: pointer;
	transition: border-color .15s ease;
}

.aca-filtros__input {
	background-image: none;
	cursor: text;
}

.aca-filtros__select:hover,
.aca-filtros__input:hover {
	border-color: #d1d5db;
}

.aca-filtros__select:focus-visible,
.aca-filtros__input:focus-visible {
	outline: 2px solid var(--aca-accent);
	outline-offset: 2px;
	border-color: var(--aca-accent);
}

/* Botón de quitar filtros: solo visible si hay alguno puesto */

.aca-filtros__limpiar {
	padding: 11px 16px;
	border: 0;
	border-radius: var(--aca-radius);
	background: transparent;
	color: var(--aca-accent);
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.aca-filtros__limpiar:hover {
	background: var(--aca-highlight);
}

.aca-filtros__limpiar[hidden] {
	display: none;
}

/* ---------- Móvil ---------- */

@media (max-width: 782px) {
	.aca-filtros {
		gap: 12px;
	}

	.aca-filtros__campo {
		flex: 1 1 100%;
		min-width: 0;
	}

	.aca-filtros__select,
	.aca-filtros__input {
		padding: 13px 38px 13px 14px;
		font-size: 16px; /* 16px evita que iOS haga zoom al enfocar */
	}

	.aca-filtros__limpiar {
		width: 100%;
	}
}

/* ---------- Vista de año (multiMonthYear) ---------- */

/*
 * Muestra los 12 meses a la vez. Es la forma que ofrece FullCalendar
 * para saltar de temporada: se ve el año entero y se pulsa el mes.
 */

.aca-calendar .fc .fc-multimonth {
	border: 0;
}

.aca-calendar .fc .fc-multimonth-title {
	padding: 12px 0 8px;
	font-size: 16px;
	font-weight: 800;
	letter-spacing: -0.01em;
	color: var(--aca-ink);
	text-transform: capitalize;
}

.aca-calendar .fc .fc-multimonth-month {
	padding: 0 10px 18px;
}

.aca-calendar .fc .fc-multimonth-daygrid {
	background: transparent;
}

/* En la vista de año las celdas son pequeñas: solo el punto de color */

.aca-calendar .fc .fc-multimonth .fc-daygrid-day-frame {
	min-height: 0;
}

.aca-calendar .fc .fc-multimonth .fc-daygrid-event {
	margin: 1px 2px;
	padding: 2px 4px;
	font-size: 10px;
}

.aca-calendar .fc .fc-multimonth .aca-event-evento,
.aca-calendar .fc .fc-multimonth .aca-event-time,
.aca-calendar .fc .fc-multimonth .aca-event-cont {
	display: none;
}

.aca-calendar .fc .fc-multimonth .fc-event-title {
	font-size: 10px;
	font-weight: 600;
}

.aca-calendar .fc .fc-multimonth .fc-daygrid-day-number {
	font-size: 12px;
	padding: 3px 5px;
}

@media (max-width: 782px) {
	.aca-calendar .fc .fc-multimonth-month {
		padding: 0 4px 14px;
	}
}

/* ---------- Corrección visual de barras del calendario ---------- */

/*
 * Una regla anterior dejaba las barras transparentes, pero el JavaScript
 * calcula el color del texto pensando que la barra tiene fondo. Resultado:
 * texto blanco sobre fondo blanco o eventos poco visibles. Aquí cerramos
 * el contrato: cada actividad se pinta como pastilla sólida con su color.
 */
.aca-calendar.fc .fc-daygrid-event,
.aca-calendar .fc .fc-daygrid-event {
	background: var(--aca-event-color, var(--aca-accent, #e12828)) !important;
	border: 0 !important;
	border-left: 0 !important;
	border-radius: 6px;
	margin: 3px 4px;
	padding: 8px 10px;
	box-shadow: 0 4px 10px rgba(7, 21, 39, .1);
}

.aca-calendar.fc .fc-daygrid-event:hover,
.aca-calendar .fc .fc-daygrid-event:hover {
	filter: brightness(.94);
}

.aca-calendar.fc .fc-daygrid-event .fc-event-main,
.aca-calendar .fc .fc-daygrid-event .fc-event-main,
.aca-calendar .fc .aca-event-body,
.aca-calendar .fc .aca-event-evento,
.aca-calendar .fc .aca-event-body .fc-event-title,
.aca-calendar .fc .aca-event-time,
.aca-calendar .fc .aca-event-cont {
	color: var(--aca-event-text, #fff) !important;
}

.aca-calendar .fc .aca-event-evento {
	font-size: 13px;
	font-weight: 900;
	line-height: 1.25;
	opacity: 1;
}

.aca-calendar .fc .aca-event-body .fc-event-title {
	font-size: 14px;
	font-weight: 800;
	line-height: 1.3;
}

.aca-calendar .fc .aca-event-time {
	margin-top: 5px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.35;
	opacity: 1;
}

.aca-calendar .fc .aca-event-body--cont {
	opacity: .85;
}

/* Las continuaciones sin texto se muestran como una linea de color. */
.aca-calendar .fc .fc-daygrid-event:has(.aca-event-body--cont) {
	min-height: 0;
	height: 6px;
	padding: 0 !important;
}

.aca-calendar .fc .aca-event-body--cont {
	height: 6px;
	min-height: 6px;
	padding: 0;
}

/*
 * En la pagina single del evento las barras usan colores por actividad.
 * Algunos tonos saturados calculan un texto oscuro que se pierde; aqui
 * priorizamos lectura: texto blanco y sombra suave sobre el color.
 */
.single-evento .aca-calendar .fc .fc-event[class*="aca-activity-event--"] {
	--aca-event-shadow: 0 1px 2px rgba(0, 0, 0, .35) !important;
}

.single-evento .aca-calendar .fc .fc-event[class*="aca-activity-event--"] .aca-event-body,
.single-evento .aca-calendar .fc .fc-event[class*="aca-activity-event--"] .aca-event-evento,
.single-evento .aca-calendar .fc .fc-event[class*="aca-activity-event--"] .fc-event-title,
.single-evento .aca-calendar .fc .fc-event[class*="aca-activity-event--"] .aca-event-time,
.single-evento .aca-calendar .fc .fc-event[class*="aca-activity-event--"] .aca-event-cont {
	color: var(--aca-event-text, #fff) !important;
	opacity: 1 !important;
	text-shadow: var(--aca-event-shadow);
}

@media (max-width: 782px) {
	/* En movil la vista lista debe leerse sin hacer zoom. */
	.aca-calendar.fc .fc-list {
		border: 0;
		border-radius: 0;
	}

	.aca-calendar.fc .fc-list-day-cushion {
		padding: 12px 10px;
		font-size: 15px;
	}

	.aca-calendar.fc .fc-list-event td {
		padding: 12px 10px;
		font-size: 14px;
		vertical-align: top;
	}

	.aca-calendar.fc .fc-list-event-title {
		font-size: 15px;
		font-weight: 700;
		white-space: normal;
	}

	.aca-calendar.fc .fc-list-event-time {
		font-size: 13px;
		white-space: nowrap;
	}

	.aca-calendar.fc .fc-toolbar {
		gap: 10px;
		flex-wrap: wrap;
	}

	.aca-calendar.fc .fc-toolbar-title {
		font-size: 20px;
	}

	.aca-calendar.fc .fc-button {
		min-height: 38px;
		padding: 8px 10px;
		font-size: 12px;
	}

	.aca-calendar.fc .fc-daygrid-event,
	.aca-calendar .fc .fc-daygrid-event {
		margin: 2px;
		padding: 6px 7px;
	}

	.aca-calendar .fc .aca-event-evento {
		font-size: 11px;
	}

	.aca-calendar .fc .aca-event-body .fc-event-title {
		font-size: 12px;
	}

	.aca-calendar .fc .aca-event-time {
		font-size: 11px;
	}
}

/* ---------- Flatpickr: selector de ano ---------- */

.flatpickr-calendar .flatpickr-current-month {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 75%;
	color: #111214;
}

.flatpickr-calendar .flatpickr-current-month .flatpickr-monthDropdown-months {
	width: auto;
	min-width: 9ch;
	height: auto;
	padding: 0;
	border: 0;
	background: transparent;
	color: #111214;
	font: inherit;
	line-height: 1;
	opacity: 1;
}

.flatpickr-calendar .flatpickr-current-month .numInputWrapper {
	display: inline-flex;
	width: 72px !important;
	min-width: 72px;
	height: 24px;
	align-items: center;
	overflow: visible;
	vertical-align: middle;
}

.flatpickr-calendar .flatpickr-current-month .numInputWrapper input.cur-year,
.flatpickr-calendar input.numInput.cur-year {
	display: inline-block !important;
	position: static !important;
	width: 100% !important;
	min-width: 56px;
	height: 24px !important;
	margin: 0 !important;
	padding: 0 16px 0 4px !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: #111214 !important;
	-webkit-text-fill-color: #111214;
	font: inherit !important;
	line-height: 24px !important;
	opacity: 1 !important;
	visibility: visible !important;
	text-align: left;
	pointer-events: auto !important;
	appearance: textfield !important;
	-webkit-appearance: textfield !important;
	-moz-appearance: textfield !important;
}

.flatpickr-calendar .flatpickr-current-month .numInputWrapper input.cur-year:focus,
.flatpickr-calendar input.numInput.cur-year:focus {
	outline: 1px solid var(--aca-accent, #e12828);
	outline-offset: 1px;
}

.flatpickr-calendar .flatpickr-current-month .numInputWrapper span {
	right: 0;
	display: block;
	opacity: .65;
}

.flatpickr-calendar .flatpickr-current-month .numInputWrapper:hover span {
	opacity: 1;
}

/* ---------- Iconos de las flechas del slider cercano ---------- */

/*
 * Ahora las flechas llevan un icono de Elementor (chevron por defecto)
 * en lugar de los caracteres ← →. Estas reglas lo centran y le dan un
 * tamaño coherente con el botón, igual que en el slider de rutas.
 */

.aca-nearby-slider__arrow i,
.aca-nearby-slider__arrow svg {
	width: 18px;
	height: 18px;
	font-size: 18px;
	line-height: 1;
	display: block;
}

.aca-nearby-slider__arrow svg {
	fill: currentColor;
}

@media (max-width: 640px) {
	.aca-nearby-slider__arrow i,
	.aca-nearby-slider__arrow svg {
		width: 16px;
		height: 16px;
		font-size: 16px;
	}
}

/* =========================================================
   LEGIBILIDAD PARA VISTA CANSADA

   El publico del sitio incluye personas mayores. Ademas del
   contraste (que se ajusta solo en PHP hasta nivel AAA), aqui
   subimos los tamanos por debajo de 14px, que es el limite a
   partir del cual cuesta leer sin gafas.
   ========================================================= */

.aca-calendar .fc .aca-event-time {
	font-size: 13px;
	font-weight: 700;
}

.aca-calendar .fc .aca-event-evento {
	font-size: 13px;
}

/* Numeros de los dias: se consultan de un vistazo */

.aca-calendar .fc .fc-daygrid-day-number {
	font-size: 16px;
	font-weight: 700;
}

/* Cabecera de dias de la semana */

.aca-calendar .fc .fc-col-header-cell-cushion {
	font-size: 13px;
	letter-spacing: .04em;
}

/* Tarjetas de proximas actividades */

.aca-calendar-wrap .aca-activity-card__title {
	font-size: 16px;
	line-height: 1.4;
}

.aca-calendar-wrap .aca-activity-card__meta {
	font-size: 14px;
	color: #4b5563; /* mas oscuro que el gris anterior */
}

.aca-calendar-wrap .aca-activity-card__type {
	font-size: 11px;
}

.aca-calendar-wrap .aca-activity-card__day {
	font-size: 30px;
}

/* Leyenda de expediciones */

.aca-legend__label {
	font-size: 12px;
	letter-spacing: .05em;
}

/* Filtros: el texto de los desplegables */

.aca-filtros__select {
	font-size: 16px;
}

.aca-filtros__label {
	font-size: 13px;
	color: #4b5563;
}

/* Vista de lista: es la que usa mas gente mayor */

.aca-calendar .fc .fc-list-event-title a {
	font-size: 16px;
	font-weight: 700;
}

.aca-calendar .fc .fc-list-event-time {
	font-size: 15px;
	color: #4b5563;
}

.aca-calendar .fc .fc-list-day-text,
.aca-calendar .fc .fc-list-day-side-text {
	font-size: 15px;
}

/* Agenda movil: una salida por tarjeta y fechas completas, sin filas por dia. */
.aca-calendar.fc .aca-agenda__summary {
	margin: 0 0 6px;
	color: #17212b;
	font-size: 17px;
	font-weight: 800;
	line-height: 1.4;
}

.aca-calendar.fc .aca-agenda__hint {
	margin: 0 0 18px;
	color: #4b5563;
	font-size: 14px;
	line-height: 1.5;
}

.aca-calendar.fc .aca-agenda__list {
	display: grid;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.aca-calendar.fc .aca-agenda__item { min-width: 0; margin: 0; padding: 0; }

.aca-calendar.fc .aca-agenda__card {
	display: block;
	overflow: hidden;
	border: 1px solid #d5dbe1;
	border-radius: 10px;
	background: #fff;
	color: #17212b;
	text-decoration: none;
	white-space: normal;
	overflow-wrap: anywhere;
	box-shadow: 0 3px 10px rgba(7, 21, 39, .05);
}

.aca-calendar.fc .aca-agenda__card:hover { border-color: #6b7280; }
.aca-calendar.fc .aca-agenda__card:focus-visible { outline: 3px solid #17212b; outline-offset: 3px; }

.aca-calendar.fc .aca-agenda__heading {
	display: block;
	padding: 14px 16px;
	background: var(--aca-agenda-color);
	color: var(--aca-agenda-text);
}

.aca-calendar.fc .aca-agenda__event {
	display: block;
	margin-bottom: 5px;
	color: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.45;
}

.aca-calendar.fc .aca-agenda__title {
	display: block;
	color: inherit;
	font-size: 17px;
	font-weight: 800;
	line-height: 1.4;
}

.aca-calendar.fc .aca-agenda__dates {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	padding: 16px;
}

.aca-calendar.fc .aca-agenda__date { display: block; min-width: 0; }
.aca-calendar.fc .aca-agenda__label { display: block; margin-bottom: 4px; color: #4b5563; font-size: 13px; font-weight: 600; line-height: 1.4; }
.aca-calendar.fc .aca-agenda__value { display: block; color: #17212b; font-size: 15px; font-weight: 700; line-height: 1.5; }
.aca-calendar.fc .aca-agenda__time { display: block; color: #4b5563; font-size: 14px; line-height: 1.5; }
.aca-calendar.fc .aca-agenda__continued { display: block; margin: 0 16px 12px; color: #4b5563; font-size: 13px; line-height: 1.5; }
.aca-calendar.fc .aca-agenda__details { display: flex; align-items: center; justify-content: space-between; min-height: 44px; padding: 10px 16px; border-top: 1px solid #e5e7eb; color: #17212b; font-size: 14px; font-weight: 700; line-height: 1.5; }

/* El modificador sigue la misma media query que el cambio de vista en JS. */
.aca-calendar-wrap.aca-calendar-wrap--mobile .aca-calendar-layout,
.single-evento .single-evento__itinerary .aca-calendar-wrap.aca-calendar-wrap--mobile .aca-calendar-layout {
	grid-template-columns: minmax(0, 1fr);
	gap: 28px;
	padding: 12px;
}

.aca-calendar-wrap--mobile > .aca-legend { display: none; }
.aca-calendar-wrap--mobile .aca-calendar__aside { min-width: 0; }

.aca-calendar-wrap--mobile .aca-calendar.fc .fc-toolbar.fc-header-toolbar {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 12px;
	margin-bottom: 22px;
}

.aca-calendar-wrap--mobile .aca-calendar.fc .fc-toolbar-chunk { display: flex; justify-content: center; gap: 12px; margin: 0; }
.aca-calendar-wrap--mobile .aca-calendar.fc .fc-toolbar-chunk:empty { display: none; }
.aca-calendar-wrap--mobile .aca-calendar.fc .fc-toolbar-title { margin: 0; font-size: 23px; line-height: 1.3; text-align: center; text-transform: none; }
.aca-calendar-wrap--mobile .aca-calendar.fc .fc-toolbar-title::first-letter { text-transform: uppercase; }
.aca-calendar.fc.has-error .aca-agenda__summary,
.aca-calendar.fc.has-error .aca-agenda__hint { display: none; }
.aca-calendar-wrap--mobile .aca-calendar.fc .fc-button-primary { min-width: 48px; min-height: 44px; margin: 0; padding: 10px 14px; border-radius: 6px; font-size: 15px; line-height: 1.4; letter-spacing: 0; }
.aca-calendar-wrap--mobile .aca-calendar.fc .fc-today-button { flex: 1; max-width: 170px; }
