.cfe-events {
	--cfe-columns: 3;
	--cfe-gap: 32px;
	--cfe-accent: var(--g-color, #bc1dc1);
	--cfe-accent-contrast: var(--absolute-white, #ffffff);
	--cfe-ink: var(--dark-accent, #000e23);
	--cfe-radius: var(--round-3, 3px);
	--cfe-radius-media: var(--round-5, 5px);
	--cfe-line: rgba(0, 0, 0, 0.12);
	--cfe-surface: rgba(0, 0, 0, 0.03);
	--cfe-bg: transparent;
	--cfe-muted: rgba(0, 0, 0, 0.6);
	--cfe-heading-font: var(--h3-family, inherit);
	--cfe-heading-weight: var(--h3-fweight, 700);
	--cfe-meta-font: var(--meta-family, inherit);
	--cfe-cat-font: var(--cat-family, var(--meta-family, inherit));
	--cfe-cat-space: var(--cat-fspace, 1px);
	--cfe-btn-font: var(--btn-family, inherit);
	--cfe-input-font: var(--input-family, inherit);

	color: inherit;
	max-width: 100%;
}

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

.cfe-filter {
	border: 1px solid var(--cfe-line);
	border-top: 3px solid var(--cfe-ink);
	border-radius: 0 0 var(--cfe-radius) var(--cfe-radius);
	padding: 20px;
	margin-bottom: var(--cfe-gap);
}

.cfe-filter__row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 14px;
}

.cfe-filter__row--toggles {
	align-items: center;
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid var(--cfe-line);
	gap: 22px;
}

.cfe-filter__field {
	display: flex;
	flex-direction: column;
	gap: 7px;
	min-width: 0;
}

.cfe-filter__field--search {
	flex: 2 1 240px;
}

.cfe-filter__field--date {
	flex: 1 1 150px;
}

.cfe-filter__field--order {
	flex: 1 1 175px;
}

.cfe-filter__field--submit {
	flex: 0 0 auto;
}

.cfe-filter__label {
	margin: 0;
	font-family: var(--cfe-meta-font);
	font-size: var(--meta-fsize, 10px);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: var(--cfe-cat-space);
	text-transform: uppercase;
	color: var(--cfe-muted);
}

.cfe-filter__input {
	width: 100%;
	padding: 10px 12px;
	font-family: var(--cfe-input-font);
	font-size: 13px;
	line-height: 1.4;
	color: inherit;
	background: var(--cfe-bg);
	border: 1px solid var(--cfe-line);
	border-radius: var(--cfe-radius);
	min-height: 42px;
	transition: border-color 0.15s ease;
}

.cfe-filter__input:hover {
	border-color: var(--cfe-accent);
}

.cfe-filter__input:focus {
	outline: none;
	border-color: var(--cfe-accent);
	box-shadow: 0 0 0 2px rgba(188, 29, 193, 0.18);
}

.cfe-filter__submit {
	padding: 10px 26px;
	min-height: 42px;
	font-family: var(--cfe-btn-font);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--cfe-accent-contrast);
	background: var(--cfe-accent);
	border: 1px solid var(--cfe-accent);
	border-radius: var(--cfe-radius);
	cursor: pointer;
	transition: opacity 0.15s ease;
}

.cfe-filter__submit:hover {
	opacity: 0.85;
}

.cfe-filter__check {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin: 0;
	font-family: var(--cfe-meta-font);
	font-size: 11px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	cursor: pointer;
}

.cfe-filter__check input {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--cfe-accent);
	cursor: pointer;
}

.cfe-filter__reset {
	margin-left: auto;
	font-family: var(--cfe-meta-font);
	font-size: 11px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--cfe-muted);
	text-decoration: none;
	border-bottom: 1px solid var(--cfe-line);
}

.cfe-filter__reset:hover {
	color: var(--cfe-accent);
	border-bottom-color: var(--cfe-accent);
}

.cfe-events__items {
	display: grid;
	gap: var(--cfe-gap);
}

.cfe-events--bricks .cfe-events__items {
	grid-template-columns: repeat(var(--cfe-columns), minmax(0, 1fr));
}

.cfe-events--list .cfe-events__items {
	grid-template-columns: minmax(0, 1fr);
	gap: 0;
}

.cfe-card {
	display: flex;
	flex-direction: column;
	gap: 14px;
	min-width: 0;
	background: var(--cfe-bg);
}

.cfe-card--list {
	flex-direction: row;
	align-items: flex-start;
	gap: 24px;
	padding: var(--cfe-gap) 0;
	border-bottom: 1px solid var(--cfe-line);
}

.cfe-events--list .cfe-card:first-child {
	padding-top: 0;
}

.cfe-events--list .cfe-card:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.cfe-card--past {
	opacity: 0.72;
}

.cfe-card--past:hover {
	opacity: 1;
}

.cfe-card__media {
	display: block;
	overflow: hidden;
	line-height: 0;
	border-radius: var(--cfe-radius-media);
	background: var(--cfe-surface);
}

.cfe-card--bricks .cfe-card__media {
	aspect-ratio: 16 / 9;
}

.cfe-card--list .cfe-card__media {
	flex: 0 0 280px;
	max-width: 280px;
	aspect-ratio: 16 / 10;
}

.cfe-card__image {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.cfe-card:hover .cfe-card__image {
	transform: scale(1.05);
}

.cfe-card__body {
	display: flex;
	flex-direction: column;
	gap: 11px;
	flex: 1 1 auto;
	min-width: 0;
}

.cfe-card__head {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.cfe-card__status {
	align-self: flex-start;
	padding: 5px 11px;
	font-family: var(--cfe-cat-font);
	font-size: var(--cat-fsize, 10px);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: var(--cfe-cat-space);
	text-transform: uppercase;
	border-radius: 999px;
	color: var(--cfe-accent-contrast);
	background: var(--cfe-accent);
}

.cfe-card__status--ongoing {
	background: var(--cfe-ink);
}

.cfe-card__status--past {
	color: var(--cfe-muted);
	background: var(--cfe-surface);
	box-shadow: inset 0 0 0 1px var(--cfe-line);
}

.cfe-card__title {
	margin: 0;
	font-family: var(--cfe-heading-font);
	font-size: var(--h3-fsize, 18px);
	font-weight: var(--cfe-heading-weight);
	line-height: 1.34;
	word-break: break-word;
}

.cfe-card--list .cfe-card__title {
	font-size: var(--h2-fsize, 22px);
}

.cfe-card__title a {
	color: inherit;
	text-decoration: none;
	box-shadow: none;
	transition: color 0.15s ease;
}

.cfe-card__title a:hover {
	color: var(--cfe-accent);
	text-decoration: none;
}

.cfe-card__meta {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	font-family: var(--cfe-meta-font);
	font-size: var(--meta-fsize, 10px);
	font-weight: var(--meta-fweight, 400);
	letter-spacing: 0.04em;
	text-transform: var(--meta-transform, uppercase);
	color: var(--cfe-muted);
}

.cfe-card__meta-item {
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	line-height: 1.4;
}

.cfe-card__meta-item::before {
	content: "";
	width: 12px;
	height: 12px;
	flex: 0 0 12px;
	background-color: var(--cfe-accent);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.cfe-card__meta-item--date::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
}

.cfe-card__meta-item--location::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13S3 17 3 10a9 9 0 0 1 18 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13S3 17 3 10a9 9 0 0 1 18 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}

.cfe-card__description {
	margin: 0;
	font-size: var(--excerpt-fsize, 14px);
	line-height: 1.65;
	color: var(--cfe-muted);
}

.cfe-card__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-top: auto;
	padding-top: 4px;
}

.cfe-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	padding: 8px 16px;
	font-family: var(--cfe-btn-font);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	text-transform: var(--btn-transform, none);
	text-decoration: none;
	box-shadow: none;
	color: var(--cfe-accent);
	background: transparent;
	border: 1px solid var(--cfe-accent);
	border-radius: var(--cfe-radius);
	transition: color 0.18s ease, background-color 0.18s ease;
}

.cfe-button::after {
	content: "";
	width: 13px;
	height: 13px;
	flex: 0 0 13px;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M12 8v8M8 12h8'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M12 8v8M8 12h8'/%3E%3C/svg%3E");
}

.cfe-button:hover,
.cfe-button:focus {
	color: var(--cfe-accent-contrast);
	background: var(--cfe-accent);
	border-color: var(--cfe-accent);
	text-decoration: none;
}

.cfe-card__link {
	margin-left: auto;
}

.cfe-promo {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-width: 0;
	padding: 5px 6px 5px 12px;
	border: 1px dashed var(--cfe-line);
	border-radius: var(--cfe-radius);
}

.cfe-promo__label {
	font-family: var(--cfe-cat-font);
	font-size: var(--cat-fsize, 10px);
	font-weight: 700;
	letter-spacing: var(--cfe-cat-space);
	text-transform: uppercase;
	color: var(--cfe-muted);
}

.cfe-promo__code {
	padding: 0;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--cfe-accent);
	background: none;
	overflow-wrap: anywhere;
}

.cfe-promo__copy {
	padding: 4px 10px;
	font-family: var(--cfe-meta-font);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: var(--cfe-cat-space);
	text-transform: uppercase;
	white-space: nowrap;
	color: inherit;
	background: var(--cfe-surface);
	border: 1px solid var(--cfe-line);
	border-radius: var(--cfe-radius);
	cursor: pointer;
	transition: color 0.15s ease, background-color 0.15s ease;
}

.cfe-promo__copy:hover {
	color: var(--cfe-accent-contrast);
	background: var(--cfe-accent);
	border-color: var(--cfe-accent);
}

.cfe-promo__copy.is-copied {
	color: var(--cfe-accent-contrast);
	background: var(--cfe-ink);
	border-color: var(--cfe-ink);
}

.cfe-events__empty {
	margin: 0;
	padding: 44px 20px;
	text-align: center;
	font-family: var(--cfe-meta-font);
	font-size: 12px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--cfe-muted);
	border: 1px dashed var(--cfe-line);
	border-radius: var(--cfe-radius);
}

.cfe-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	margin-top: var(--cfe-gap);
	padding-top: var(--cfe-gap);
	border-top: 1px solid var(--cfe-line);
}

.cfe-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	min-height: 38px;
	padding: 0 13px;
	font-family: var(--cfe-meta-font);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
	box-shadow: none;
	color: inherit;
	border: 1px solid var(--cfe-line);
	border-radius: var(--cfe-radius);
	transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}

.cfe-pagination .page-numbers:hover {
	color: var(--cfe-accent);
	border-color: var(--cfe-accent);
}

.cfe-pagination .page-numbers.current {
	color: var(--cfe-accent-contrast);
	background: var(--cfe-accent);
	border-color: var(--cfe-accent);
}

.cfe-pagination .page-numbers.dots {
	border-color: transparent;
}

.cfe-single__meta {
	list-style: none;
	margin: 0 0 24px;
	padding: 20px;
	display: flex;
	flex-wrap: wrap;
	gap: 18px 36px;
	border: 1px solid var(--cfe-line);
	border-top: 3px solid var(--cfe-ink);
	border-radius: 0 0 var(--cfe-radius) var(--cfe-radius);
}

.cfe-single__meta-item {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0;
}

.cfe-single__meta-label {
	font-family: var(--cfe-cat-font);
	font-size: var(--cat-fsize, 10px);
	font-weight: 700;
	letter-spacing: var(--cfe-cat-space);
	text-transform: uppercase;
	color: var(--cfe-muted);
}

.cfe-single__meta-value {
	font-family: var(--cfe-heading-font);
	font-size: var(--h4-fsize, 15px);
	font-weight: var(--cfe-heading-weight);
	line-height: 1.4;
}

.cfe-single__description {
	margin-bottom: 24px;
}

.cfe-single__action {
	margin: 24px 0 0;
}

@media (max-width: 1024px) {
	.cfe-events {
		--cfe-gap: 26px;
	}

	.cfe-events--bricks .cfe-events__items {
		grid-template-columns: repeat(min(var(--cfe-columns), 2), minmax(0, 1fr));
	}

	.cfe-card--list .cfe-card__media {
		flex-basis: 210px;
		max-width: 210px;
	}
}

@media (max-width: 640px) {
	.cfe-events {
		--cfe-gap: 22px;
	}

	.cfe-events--bricks .cfe-events__items {
		grid-template-columns: minmax(0, 1fr);
	}

	.cfe-card--list {
		flex-direction: column;
		gap: 14px;
	}

	.cfe-card--list .cfe-card__media {
		flex-basis: auto;
		max-width: none;
		aspect-ratio: 16 / 9;
	}

	.cfe-card--list .cfe-card__title {
		font-size: var(--h3-fsize, 18px);
	}

	.cfe-filter {
		padding: 16px;
	}

	.cfe-filter__field--search,
	.cfe-filter__field--date,
	.cfe-filter__field--order,
	.cfe-filter__field--submit {
		flex: 1 1 100%;
	}

	.cfe-filter__submit {
		width: 100%;
	}

	.cfe-filter__row--toggles {
		flex-direction: column;
		align-items: flex-start;
		gap: 13px;
	}

	.cfe-filter__reset {
		margin-left: 0;
	}

	.cfe-card__link {
		margin-left: 0;
	}
}

body[data-theme="dark"] .cfe-events,
[data-theme="dark"] .cfe-events,
.light-scheme .cfe-events {
	--cfe-ink: var(--absolute-white, #ffffff);
	--cfe-line: rgba(255, 255, 255, 0.18);
	--cfe-surface: rgba(255, 255, 255, 0.07);
	--cfe-muted: rgba(255, 255, 255, 0.62);
}

body[data-theme="dark"] .cfe-card__status--ongoing,
[data-theme="dark"] .cfe-card__status--ongoing,
.light-scheme .cfe-card__status--ongoing {
	color: var(--dark-accent, #000e23);
}

body[data-theme="dark"] .cfe-promo__copy.is-copied,
[data-theme="dark"] .cfe-promo__copy.is-copied,
.light-scheme .cfe-promo__copy.is-copied {
	color: var(--dark-accent, #000e23);
}
