/* Upcoming events list rendered by [ea_kalendar] (inc/ea-kalendar.php). */

.ea-kalendar-wrap {
	--ea-ink: #242423;
	--ea-muted: #55605c;
	--ea-accent: #466c76;
	--ea-accent-soft: #a6c6cd;
	--ea-card: rgba(255, 255, 255, 0.62);
	--ea-card-hover: rgba(255, 255, 255, 0.85);
	--ea-line: rgba(36, 36, 35, 0.1);

	color: var(--ea-ink);
}

.ea-kalendar {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Day card */
.ea-day {
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 18px;
	padding: 16px 18px;
	border: 1px solid var(--ea-line);
	border-radius: 12px;
	background: var(--ea-card);
	transition: background-color 0.3s ease;
}

.ea-day:hover {
	background: var(--ea-card-hover);
}

.ea-day--soon {
	border-color: var(--ea-accent-soft);
	box-shadow: inset 4px 0 0 var(--ea-accent);
}

/* Date tile */
.ea-day__date {
	display: flex;
	flex-direction: column;
	align-items: center;
	align-self: start;
	padding: 8px 0 10px;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 1px 0 var(--ea-line);
	line-height: 1;
	text-align: center;
}

.ea-day__dow,
.ea-day__mon {
	font-size: 0.72em;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ea-accent);
}

.ea-day--soon .ea-day__date {
	background: var(--ea-accent);
}

.ea-day--soon .ea-day__date span {
	color: #fff;
}

.ea-day__num {
	margin: 4px 0 3px;
	font-size: 1.75em;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.ea-day__events {
	min-width: 0;
}

/* Events within a day */
.ea-ev + .ea-ev {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--ea-line);
}

/* Body */
.ea-ev > * {
	margin: 0;
}

.ea-ev__when {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-size: 0.9em;
	font-variant-numeric: tabular-nums;
	color: var(--ea-muted);
}

.ea-ev__title {
	margin-top: 2px;
	font-size: 1.15em;
	font-weight: 600;
	line-height: 1.3;
	overflow-wrap: anywhere;
}

.ea-ev__where {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	margin-top: 6px !important;
	font-size: 0.92em;
	color: var(--ea-muted);
}

.ea-ev__where a {
	color: inherit;
}

.ea-ev__icon {
	flex: none;
	width: 1em;
	height: 1em;
	margin-top: 0.2em;
	vertical-align: -0.15em;
}

/* Description */
.ea-ev__desc {
	margin-top: 10px;
	font-size: 0.95em;
	line-height: 1.55;
	overflow-wrap: anywhere;
}

.ea-ev__desc p,
.ea-ev__desc ul,
.ea-ev__desc ol {
	margin: 0 0 0.6em;
}

.ea-ev__desc strong,
.ea-ev__desc b {
	font-weight: 700;
}

.ea-ev__desc > :last-child {
	margin-bottom: 0;
}

.ea-ev__desc ul,
.ea-ev__desc ol {
	padding-left: 1.2em;
}

.ea-ev__more {
	margin-top: 10px !important;
}

.ea-ev__more summary {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 0.92em;
	font-weight: 600;
	color: var(--ea-accent);
	cursor: pointer;
	list-style: none;
}

.ea-ev__more summary::-webkit-details-marker {
	display: none;
}

.ea-ev__more summary::after {
	content: "";
	width: 0.45em;
	height: 0.45em;
	margin-top: -0.2em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.2s ease;
}

.ea-ev__more[open] summary::after {
	margin-top: 0.15em;
	transform: rotate(-135deg);
}

.ea-ev__more[open] summary {
	margin-bottom: 2px;
}

/* Actions */
.ea-ev__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
	margin-top: 12px !important;
	font-size: 0.9em;
}

.ea-ev__button {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	border-radius: 8px;
	background: var(--ea-accent);
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}

.ea-ev__button:hover,
.ea-ev__button:focus-visible {
	background: #3d5d65;
	color: #fff;
}

.ea-ev__add {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--ea-muted);
}

.ea-ev__button .ea-ev__icon,
.ea-ev__add .ea-ev__icon {
	margin-top: 0;
}

.ea-kalendar__subscribe {
	margin-top: 16px;
	font-size: 0.92em;
}

.ea-kalendar__subscribe a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.ea-kalendar__subscribe .ea-ev__icon {
	margin-top: 0;
}

.ea-kalendar__empty {
	padding: 16px 18px;
	border-radius: 12px;
	background: var(--ea-card);
}

.ea-ev a:focus-visible,
.ea-ev summary:focus-visible,
.ea-kalendar__subscribe a:focus-visible {
	outline: 2px solid var(--ea-accent);
	outline-offset: 2px;
	border-radius: 4px;
}

/* Phones */
@media (max-width: 600px) {
	.ea-day {
		grid-template-columns: 52px 1fr;
		gap: 12px;
		padding: 14px;
	}

	.ea-day__num {
		font-size: 1.45em;
	}

	.ea-ev__title {
		font-size: 1.05em;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ea-day,
	.ea-ev__more summary::after {
		transition: none;
	}
}
