/* PDR Course Calendar. Colores de la marca; se pueden cambiar con estas variables desde Elementor. */
.pdr-cal {
	--pdr-blue: #1D678A;
	--pdr-blue-deep: #154E69;
	--pdr-yellow: #F9C943;
	--pdr-ink: #1E2A30;
	--pdr-muted: #5E7079;
	--pdr-line: #DCE6EA;
	--pdr-soft: #F4F8FA;
	--pdr-today: #E4572E;
	--pdr-radius: 12px;
	color: var(--pdr-ink);
	font-family: inherit;
	margin: 0 0 1.5em;
}

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

.pdr-cal__title {
	margin: 0 0 18px;
	color: var(--pdr-blue);
	font-size: 28px;
	font-weight: 800;
	line-height: 1.1;
	text-transform: uppercase;
	letter-spacing: .02em;
}

.pdr-cal__body {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: 28px;
	align-items: start;
}

/* ----- Mes ----- */
.pdr-cal__month {
	border: 1.5px solid var(--pdr-line);
	border-radius: var(--pdr-radius);
	overflow: hidden;
	background: #fff;
	scroll-margin-top: 110px;
}

.pdr-cal__month.is-flash {
	animation: pdr-flash 1s ease;
}

@keyframes pdr-flash {
	0% { box-shadow: 0 0 0 4px var(--pdr-yellow); }
	100% { box-shadow: 0 0 0 0 transparent; }
}

.pdr-cal__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 12px 14px;
	background: var(--pdr-yellow);
}

.pdr-cal .pdr-cal__month-title {
	margin: 0;
	color: #2A2200;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.pdr-cal__nav {
	display: flex;
	gap: 6px;
}

.pdr-cal .pdr-cal__nav button {
	min-width: 34px;
	height: 34px;
	margin: 0;
	padding: 0 10px;
	border: 0;
	border-radius: 8px;
	background: rgba(255, 255, 255, .7);
	color: #2A2200;
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}

.pdr-cal .pdr-cal__nav button:hover {
	background: #fff;
}

.pdr-cal button:focus-visible,
.pdr-cal a:focus-visible {
	outline: 3px solid var(--pdr-blue);
	outline-offset: 2px;
}

.pdr-cal .pdr-cal__table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: separate;
	border-spacing: 4px;
	table-layout: fixed;
	padding: 8px;
}

.pdr-cal .pdr-cal__table th {
	padding: 2px 0 4px;
	border: 0;
	background: none;
	color: var(--pdr-muted);
	font-size: 11px;
	font-weight: 700;
	text-align: center;
	letter-spacing: .06em;
}

.pdr-cal .pdr-cal__table abbr {
	text-decoration: none;
	border: 0;
	cursor: default;
}

.pdr-cal .pdr-cal__table td {
	position: relative;
	height: 62px;
	padding: 6px 7px;
	border: 0;
	border-radius: 8px;
	background: var(--pdr-soft);
	vertical-align: top;
	overflow: hidden;
}

.pdr-cal .pdr-cal__table td.is-out {
	background: transparent;
}

.pdr-cal .pdr-cal__table td.is-event {
	background: var(--pdr-bg);
	color: var(--pdr-on);
}

.pdr-cal .pdr-cal__table td.is-past {
	filter: saturate(.35);
	opacity: .6;
}

.pdr-cal .pdr-cal__table td.is-today {
	box-shadow: inset 0 0 0 2px var(--pdr-today);
}

.pdr-cal .pdr-cal__table td.is-today::after {
	content: "";
	position: absolute;
	top: 7px;
	right: 7px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--pdr-today);
}

.pdr-cal__d {
	display: block;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	font-variant-numeric: tabular-nums;
}

.pdr-cal__lbl {
	position: absolute;
	left: 7px;
	right: 4px;
	bottom: 6px;
	font-size: 10px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .04em;
	text-transform: uppercase;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.pdr-cal .pdr-cal__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin: 0;
	padding: 0 14px 14px;
	list-style: none;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .05em;
}

.pdr-cal .pdr-cal__legend li {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
}

.pdr-cal__sw {
	display: inline-block;
	flex: none;
	width: 12px;
	height: 12px;
	border-radius: 3px;
}

/* ----- Próximas fechas ----- */
.pdr-cal .pdr-cal__up-title {
	margin: 0 0 10px;
	font-size: 15px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .05em;
}

.pdr-cal .pdr-cal__list {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pdr-cal .pdr-cal__item {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 14px;
	border: 1.5px solid var(--pdr-line);
	border-radius: var(--pdr-radius);
	background: #fff;
}

.pdr-cal .pdr-cal__item[hidden] {
	display: none;
}

.pdr-cal .pdr-cal__item.is-first {
	border-color: var(--pdr-blue);
	box-shadow: 0 12px 26px -18px rgba(29, 103, 138, .55);
}

.pdr-cal__item-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

.pdr-cal__type {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.3;
}

.pdr-cal__pill {
	flex: none;
	padding: 4px 9px;
	border-radius: 999px;
	background: #E7F0F4;
	color: var(--pdr-blue-deep);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	white-space: nowrap;
}

.pdr-cal__pill.is-next {
	background: var(--pdr-yellow);
	color: #3B2F00;
}

.pdr-cal .pdr-cal__when {
	margin: 0;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.3;
	font-variant-numeric: tabular-nums;
}

.pdr-cal__year {
	font-weight: 600;
}

.pdr-cal__when small {
	margin-left: 6px;
	color: var(--pdr-muted);
	font-size: 12px;
	font-weight: 600;
}

.pdr-cal__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
}

.pdr-cal a.pdr-cal__btn {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 9px 14px;
	border-radius: 8px;
	background: var(--pdr-blue);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-decoration: none;
	text-transform: uppercase;
}

.pdr-cal a.pdr-cal__btn:hover {
	background: var(--pdr-blue-deep);
	color: #fff;
}

.pdr-cal .pdr-cal__item.is-first a.pdr-cal__btn {
	background: var(--pdr-yellow);
	color: #2A2200;
}

.pdr-cal .pdr-cal__link {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	color: var(--pdr-blue);
	font: inherit;
	font-size: 12px;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.pdr-cal .pdr-cal__link:hover,
.pdr-cal .pdr-cal__link:focus {
	background: none;
	color: var(--pdr-blue-deep);
}

.pdr-cal .pdr-cal__empty {
	margin: 0;
	padding: 18px;
	border: 1.5px dashed var(--pdr-line);
	border-radius: var(--pdr-radius);
	color: var(--pdr-muted);
	font-size: 14px;
}

.pdr-cal .pdr-cal__empty[hidden] {
	display: none;
}

@media (max-width: 900px) {
	.pdr-cal__body {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 520px) {
	.pdr-cal__title {
		font-size: 22px;
	}

	.pdr-cal .pdr-cal__table {
		border-spacing: 3px;
		padding: 4px;
	}

	.pdr-cal .pdr-cal__table td {
		height: 44px;
		padding: 4px 5px;
	}

	.pdr-cal__lbl {
		display: none;
	}

	.pdr-cal__d {
		font-size: 12px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pdr-cal__month.is-flash {
		animation: none;
	}
}
