.events-hero,
.archive-posts {
	margin: 0;
}

.events-hero--upcoming {
	margin-top: clamp(24px, 5vw, 48px);
	padding-bottom: clamp(32px, 6vw, 64px);
}

.archive-posts.events-archive-past-section {
	background-color: #ffffff;
    margin-top: 0;
    padding-bottom: clamp(48px, 8vw, 88px);
    padding-top: clamp(40px, 7vw, 72px);
    border-radius: 34px;
    margin-left: 20px;
    margin-right: 20px;
}


.post-type-archive-event .events-archive-header {
	margin-bottom: clamp(20px, 4vw, 36px);
}

.post-type-archive-event .events-archive-title {
	font-size: clamp(1.75rem, 4.5vw, 2.5rem);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.15;
	margin: 0;
}

.post-type-archive-event .events-calendar-wrap {
	margin-bottom: clamp(28px, 5vw, 48px);
}

.post-type-archive-event .events-section-title {
	color: #ffffff;
	font-size: clamp(1.15rem, 2.8vw, 1.5rem);
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.25;
	margin: 0 0 clamp(18px, 3.5vw, 28px);
}

.post-type-archive-event .events-section-title--past {
	color: #000000;
	margin-bottom: clamp(22px, 4vw, 32px);
}

.post-type-archive-event .events-archive-past-header {
	margin-bottom: 0;
}

.post-type-archive-event .events-post-area {
	margin-bottom: clamp(8px, 2vw, 16px);
}

.post-type-archive-event .events-archive-pagination {
	margin-top: clamp(20px, 4vw, 40px);
	padding-bottom: clamp(8px, 2vw, 16px);
	text-align: center;
	color: #000000;
}

.post-type-archive-event .events-archive-pagination .pagination,
.post-type-archive-event .events-archive-pagination .wp-pagenavi,
.post-type-archive-event .events-archive-pagination .page-numbers {
	justify-content: center;
}

.single-event .container,
.post-type-archive-event .container:not(.container--events-archive) {
	width: 90vw;
	margin: 0 auto;
}
.post-type-archive-event .entry-content {
	display: none;
}
.events__list {
	display: grid;
	gap: 60px;
	grid-template-columns: repeat(2, 1fr);
	margin-top: 32px;
}
.fc .fc-daygrid-day.fc-day-today {
    background-color: #1f1f1f!important;
}
.fc .fc-scrollgrid-section-sticky > * {
	background: none!important;
 }
.event-img img {
	width: 100%;
	object-fit: cover;
	border-radius: 16px;
	display: block;
	margin-bottom: 15px;
	max-height: 440px;
}
.single-event h1 {
	font-size: 36px;
	line-height: 1.3;
}
.event-desc {
	display: flex;
	justify-content: space-between;
	margin-bottom: 15px;
	font-size: 14px;
}
.event-desc__col {
	display: flex;
	column-gap: 30px;
}
.event-desc__col span {
	position: relative;
}
.event-desc__col span:not(:first-child):before {
	content: '';
	position: absolute;
	display: block;
	width: 1px;
	height: 16px;
	top: 4px;
	left: -15px;
	background-color: #0A0A0A;
}
.event-desc__wrapper {
	display: flex;
	column-gap: 30px;
	margin-bottom: 30px;
}
.events__item-wrapper {
	margin-bottom: 40px;
}
.event-img__wrapper img {
	width: 100%;
	border-radius: 20px;
	margin: 0 auto 30px;
	display: block;
}
.content-wrapper ul,
.content-wrapper ol {
	margin-left: 0;
}
.content-wrapper li {
	margin-bottom: 8px;
}
.event-title a {
	text-decoration: none;
	font-size: 24px;
	font-weight: 600;
}
@media screen and (max-width: 1439px) {
	.event-desc__col {
		flex-wrap: wrap;
	}
	.event-desc {
		flex-direction: column;
		row-gap: 0;
	}
	.event-desc__col span:nth-child(3):before {
		display: none;
	}
}
.event-content {
	max-width: 960px;
	margin: 40px auto 0;
}
@media screen and (max-width: 992px) {
	.post-type-archive-event .site-header,
	.single-event .site-header {
		overflow: hidden;
	}
	.post-type-archive-event a.logo,
	.single-event a.logo {
		margin-left: 15px;
		display: block;
	}
	.post-type-archive-event .events-hero--upcoming {
		padding-bottom: clamp(28px, 6vw, 56px);
	}
	.post-type-archive-event .archive-posts.events-archive-past-section {
		margin-top: 0;
	}
	.events__list {
		grid-template-columns: 1fr;
	}
	.event-img__wrapper img {
		max-width: 100%;
	}
	.single-event h1 {
		font-size: 24px;
	}
}

/* Salient "masonry material" meta layout for Event CPT cards. */
body.post-type-archive-event .masonry.material article.type-event .grav-wrap .text {
	align-items: start;
	column-gap: 16px;
	display: grid;
	grid-template-columns: auto 1fr;
	row-gap: 10px;
}

body.post-type-archive-event .masonry.material article.type-event .grav-wrap .text > a[rel="author"] {
	grid-column: 1 / -1;
}

/* Дата + формат/адреса в одній колонці: спочатку ряд дати, під ним один рядок локації */
body.post-type-archive-event .masonry.material article.type-event .grav-wrap .text .event-meta-stack {
	display: flex;
	flex-direction: column;
	gap: 10px;
	grid-column: 1 / -1;
	width: 100%;
}

body.post-type-archive-event .masonry.material article.type-event .grav-wrap .text .event-status-badge {
	align-self: flex-start;
	background: rgba(42, 180, 118, 0.16);
	border: 1px solid rgba(42, 180, 118, 0.4);
	border-radius: 999px;
	color: #1a7a52;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.2;
	padding: 0.35rem 0.75rem;
	text-transform: uppercase;
}

body.post-type-archive-event .masonry.material article.type-event.event-archive--past .grav-wrap .text .event-status-badge {
	background: rgba(0, 0, 0, 0.06);
	border-color: rgba(0, 0, 0, 0.12);
	color: #5c5c5c;
}

body.post-type-archive-event .masonry.material article.type-event .grav-wrap .text span.event-date-time {
	align-items: flex-start;
	column-gap: 12px;
	display: flex;
	margin-top: 0;
}

body.post-type-archive-event .masonry.material article.type-event .grav-wrap .text .event-date-main {
	color: #2ab476;
	font-size: clamp(44px, 8vw, 56px);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 0.92;
}

body.post-type-archive-event .masonry.material article.type-event .grav-wrap .text .event-date-side {
	align-items: flex-start;
	color: #8a8a8a;
	display: flex;
	flex-direction: column;
	padding-top: 4px;
}

body.post-type-archive-event .masonry.material article.type-event .grav-wrap .text .event-time {
	font-size: clamp(17px, 3vw, 20px);
	font-weight: 600;
	line-height: 1;
	padding-bottom: 4px;
}

body.post-type-archive-event .masonry.material article.type-event .grav-wrap .text .event-year {
	font-size: clamp(17px, 3vw, 20px);
	font-weight: 600;
	line-height: 1;
}

body.post-type-archive-event .masonry.material article.type-event .grav-wrap .text .event-location-line {
	color: #0a0a0a;
	display: block;
	font-size: clamp(13px, 2.2vw, 15px);
	font-weight: 600;
	line-height: 1.35;
	margin: 0;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@media screen and (max-width: 480px) {
	body.post-type-archive-event .masonry.material article.type-event .grav-wrap .text .event-location-line {
		white-space: normal;
	}
}

/* Плашки категорій — всередині білого блоку картки (не між зображенням і контентом). */
.post-type-archive-event .article-content-wrap .event-card-category-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem 0.55rem;
	margin-bottom: clamp(8px, 2vw, 14px);
	margin-top: 0;
	padding-top: 0;
}

.post-type-archive-event .event-category-badge {
	background-color: var(--ecb-bg, #d7f7d9);
	border: 1px solid var(--ecb-border, rgba(0, 0, 0, 0.1));
	border-radius: 999px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
	color: var(--ecb-color, #111);
	display: inline-flex;
	font-size: clamp(11px, 2.4vw, 13px);
	font-weight: 700;
	letter-spacing: 0.01em;
	line-height: 1.25;
	padding: 0.4rem 0.95rem;
}

/* Calendar compact mode + cleaner event cards. */
#calendar .fc .fc-toolbar.fc-header-toolbar {
	margin-bottom: 10px;
}

/* --- FullCalendar controls + grid borders (green) --- */
#calendar button.fc-button.fc-button-primary {
	background-color: #2ab476 !important;
	border-color: #2ab476 !important;
	color: #ffffff !important;
	margin: 3px;
}
#calendar button.fc-button.fc-button-primary :hover {
    color: #000000 !important;
}

#calendar table.fc-scrollgrid {
	border: 1px solid #2ab476 !important;
}

.grav-wrap {
    display: grid;
}

#calendar td.fc-daygrid-day {
	border: 1px solid #2ab476 !important;
}

#calendar .fc-theme-standard td,
#calendar .fc-theme-standard th {
	border: 1px solid #2ab476 !important;
}

/* Requested updates for FullCalendar styling (kept within #calendar scope). */
#calendar .fc-theme-standard td,
#calendar .fc-theme-standard th {
	border: 0px !important;
}

#calendar table.fc-scrollgrid {
	border-radius: 21px !important;
}

#calendar .fc,
#calendar .fc *,
#calendar .fc ::after,
#calendar .fc ::before {
	box-sizing: border-box;
	border-radius: 17px !important;
}

#calendar th.fc-col-header-cell {
	border: 1px solid #2ab476 !important;

}

div#calendar {
	margin: 2% 0% 5% 0%;
}

/* Header day names (white text on green header). */
#calendar a.fc-col-header-cell-cushion {
	color: #ffffff !important;
	font-size: large;
}

/* Use FullCalendar CSS variables so borders apply consistently. */
#calendar .fc {
	--fc-border-color: #2ab476;
	--fc-neutral-border-color: #2ab476;
}

/* Some FullCalendar grid borders are controlled via fc-theme-standard on .fc element. */
#calendar .fc.fc-theme-standard {
	--fc-border-color: #2ab476 !important;
	--fc-neutral-border-color: #2ab476 !important;
}

/* Category colors + compact header tweaks (calendar only). */
#calendar .fc .fc-scrollgrid-section-sticky > * {
	background: #2ab476;
	position: sticky;
	z-index: 3;
}


#calendar .fc-theme-standard td,
#calendar .fc-theme-standard th {
	border: 1px solid #2ab476 !important;
}

#calendar .fc-theme-standard .fc-scrollgrid {
	border: 1px solid #2ab476 !important;
}

/* Force green borders for all grid table lines. */
#calendar .fc .fc-scrollgrid,
#calendar .fc .fc-scrollgrid td,
#calendar .fc .fc-scrollgrid th,
#calendar .fc .fc-scrollgrid-sync-table,
#calendar .fc .fc-daygrid-day,
#calendar .fc .fc-col-header-cell,
#calendar .fc .fc-daygrid-day-frame {
	border: 1px solid #2ab476 !important;
	box-shadow: none !important;
}

/* Extra coverage (synced table cells sometimes keep their own rules). */
#calendar .fc .fc-scrollgrid-sync-table td,
#calendar .fc .fc-scrollgrid-sync-table th,
#calendar .fc .fc-scrollgrid table td,
#calendar .fc .fc-scrollgrid table th,
#calendar .fc .fc-daygrid-day-frame td,
#calendar .fc .fc-daygrid-day-frame th {
	border: 1px solid #2ab476 !important;
	border-color: #2ab476 !important;
}

/* Header day names in green. */
#calendar .fc .fc-col-header-cell-cushion {
	color: #2ab476 !important;
}

/* Green calendar navigation buttons. */
#calendar .fc .fc-button-primary {
	background-color: #2ab476 !important;
	border-color: #2ab476 !important;
	color: #ffffff !important;
}

#calendar .fc .fc-button-primary:hover,
#calendar .fc .fc-button-primary:focus,
#calendar .fc .fc-button-primary:not(:disabled):active,
#calendar .fc .fc-button-primary:not(:disabled).fc-button-active {
	background-color: #239e66 !important;
	border-color: #239e66 !important;
	color: #ffffff !important;
}

/* Space between prev/next buttons. */
#calendar .fc .fc-button-group > .fc-button {
	margin-right: 8px;
}

#calendar .fc .fc-button-group > .fc-button:last-child {
	margin-right: 0;
}

#calendar .fc .fc-toolbar-title {
	font-size: 28px;
	line-height: 1.1;
}

#calendar .fc .fc-col-header-cell-cushion {
	padding: 4px 2px;
	font-size: 12px;
}

#calendar .fc .fc-daygrid-day-top {
	padding: 2px 4px;
}

#calendar .fc .fc-daygrid-day-number {
	font-size: 12px;
}

#calendar .fc .fc-daygrid-day-frame {
	min-height: 82px;
}

#calendar .fc .fc-daygrid-event {
	padding: 2px 4px;
	border-radius: 6px;
	font-size: 11px;
	line-height: 1.25;
}

/* Keep event title color from inline style set in FullCalendar.js. */
#calendar .fc .fc-daygrid-event,
#calendar .fc .fc-daygrid-event .fc-event-main,
#calendar .fc .fc-daygrid-event .fc-event-title {
	color: inherit !important;
}

/* Ensure calendar doesn't add extra spacing under the table. */
#calendar table {
	margin-bottom: 0px;
}

.fc-theme-standard td, .fc-theme-standard th {
    border: 0px !important;
    border: none;
}

/* Event padding-left (kept as working selector). */
#calendar a.fc-event.fc-event-start.fc-event-end.fc-event-past.fc-daygrid-event.fc-daygrid-block-event.fc-h-event {
	padding-left: 6px;
}

/* Custom tooltip for event categories. */
#calendar .fc-event-tooltip,
.fc-event-tooltip {
	position: fixed;
	display: none;
	z-index: 9999;
	background: #000000;
	color: #ffffff;
	padding: 6px 10px;
	border-radius: 6px;
	font-size: 12px;
	line-height: 1.2;
	box-shadow: 0 14px 35px rgba(0,0,0,0.35);
	pointer-events: none;
	max-width: 280px;
	white-space: normal;
	overflow: visible;
}

.fc-event-tooltip-title {
	font-weight: 400;
}

.fc-event-tooltip-cats {
	font-weight: 700;
	display: block;
	margin-top: 6px;
	margin-left: 0;
}

@media screen and (max-width: 992px) {
	#calendar .fc .fc-toolbar-title {
		font-size: 22px;
	}

	#calendar .fc .fc-daygrid-day-frame {
		min-height: 64px;
	}
}

/* --- Calendar refresh (dark mode + mobile compact) --- */
#calendar .fc {
	--fc-page-bg-color: #141414;
	--fc-neutral-bg-color: #1d1d1d;
	--fc-border-color: #2f2f2f;
	--fc-neutral-text-color: #d8d8d8;
	--fc-today-bg-color: #262626;
	--fc-event-text-color: #ffffff;
	background: #141414;
	border: 1px solid #2f2f2f;
	border-radius: 22px !important;
	padding: 18px;
}

#calendar .fc .fc-col-header-cell-cushion,
#calendar .fc .fc-daygrid-day-number,
#calendar .fc .fc-toolbar-title {
	color: #f5f5f5 !important;
}

#calendar .fc .fc-button-primary {
	background: #2a2a2a !important;
	border-color: #3a3a3a !important;
	color: #f5f5f5 !important;
}

#calendar .fc .fc-button-primary:hover,
#calendar .fc .fc-button-primary:focus,
#calendar .fc .fc-button-primary:not(:disabled):active,
#calendar .fc .fc-button-primary:not(:disabled).fc-button-active {
	background: #3a3a3a !important;
	border-color: #555555 !important;
}

#calendar .fc .fc-daygrid-day-frame {
	min-height: 108px;
}

#calendar .fc .fc-daygrid-day-top {
	position: relative;
}

#calendar .fc-day-dots {
	display: none;
	gap: 5px;
	margin-left: 6px;
	margin-top: 6px;
}

#calendar .fc-day-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	display: inline-block;
}

#calendar .fc .is-selected-day .fc-daygrid-day-frame {
	outline: 1px solid #6d39c7;
	outline-offset: -1px;
}

.calendar-mobile-events {
	display: none;
	margin-top: 32px;
	margin-bottom: 65px;
}

.calendar-mobile-events__date {
	color: #ffffff;
	font-size: 28px;
	font-weight: 700;
	line-height: 1.2;
	margin-bottom: 27px;
	text-align: center;
}

.calendar-mobile-events__item {
	border-radius: 14px;
	display: block;
	margin-bottom: 10px;
	padding: 12px 14px;
	text-decoration: none;
}

.calendar-mobile-events__title {
	color: inherit;
	display: block;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.25;
}

.calendar-mobile-events__cats {
	display: block;
	font-size: 14px;
	line-height: 1.4;
	margin-top: 6px;
	opacity: 0.9;
}

.calendar-mobile-events__empty {
	color: #b9b9b9;
	font-size: 16px;
	padding: 8px 0;
	text-align: center;
}

@media screen and (max-width: 991px) {
	#calendar .fc .fc-toolbar {
		align-items: center;
		gap: 8px;
		justify-content: space-between;
	}

	#calendar .fc .fc-toolbar-title {
		font-size: 24px;
	}

	#calendar .fc .fc-daygrid-day-events,
	#calendar .fc .fc-daygrid-day-events .fc-daygrid-event-harness,
	#calendar .fc .fc-daygrid-more-link {
		display: none !important;
	}

	#calendar .fc .fc-daygrid-day-frame {
		min-height: 58px;
		position: relative;
	}

	#calendar .fc-day-dots {
		align-items: center;
		display: flex;
		gap: 10px;
		justify-content: center;
		left: 50%;
		margin: 0;
		position: absolute;
		top: 50%;
		transform: translate(-50%, -40%);
		z-index: 2;
	}

	#calendar .fc-day-dot {
		width: 18px;
		height: 18px;
	}

	.calendar-mobile-events {
		display: block;
	}

	.calendar-mobile-events__item .calendar-mobile-events__cats {
		color: inherit;
		opacity: 0.88;
	}
}
