/**
 * Events listing page — Mint & Seafoam palette
 * body.page-events-listing
 */

/* ── Tokens ─────────────────────────────────────────────────── */
.page-events-listing {
	--evt-teal:       #4ab5a5;
	--evt-teal-dark:  #2d7a8a;
	--evt-teal-light: #e0f5f2;
	--evt-gold:       #f0c870;
	--evt-bg:         #f4fbf9;
	--evt-text:       #1a2e2c;
	--evt-muted:      #6a8a88;
	--evt-border:     #c8e8e2;
	--evt-radius:     12px;
	--evt-white:      #ffffff;
}

/* ── Astra resets ────────────────────────────────────────────── */
.page-events-listing #page,
.page-events-listing #content,
.page-events-listing #primary,
.page-events-listing #main,
.page-events-listing .site-content,
.page-events-listing .content-area,
.page-events-listing .entry-content,
.page-events-listing .ast-container {
	padding: 0 !important;
	margin: 0 !important;
	max-width: 100% !important;
	width: 100% !important;
}

/* ── Transparent header ──────────────────────────────────────── */
body.page-events-listing .elementor-location-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	z-index: 1000;
}
body.page-events-listing .elementor-1479 .elementor-element.elementor-element-136db9e0:not(.elementor-motion-effects-element-type-background),
body.page-events-listing .elementor-1479 .elementor-element.elementor-element-136db9e0 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
}

/* ── Footer white text ───────────────────────────────────────── */
body.page-events-listing .elementor-1429 * {
	color: #ffffff !important;
}

/* ══ PAGE WRAP ══════════════════════════════════════════════════ */
.evt-page-wrap {
	background: var(--evt-bg);
	min-height: 100vh;
}

/* ══ HERO ═══════════════════════════════════════════════════════ */
.evt-hero {
	background: linear-gradient( 135deg, #1e5f6e 0%, #2d7a8a 45%, #4ab5a5 100% );
	padding: 80px 40px 60px;
	text-align: center;
	position: relative;
	overflow: hidden;
}

.evt-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient( ellipse 80% 60% at 60% 120%, rgba(240,200,112,0.12) 0%, transparent 70% );
	pointer-events: none;
}

.evt-hero-inner {
	max-width: 720px;
	margin: 0 auto;
}

.evt-hero-eyebrow {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--evt-gold);
	margin: 0 0 14px;
}

.evt-hero-title {
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 700;
	color: #ffffff;
	margin: 0 0 14px;
	line-height: 1.15;
}

.evt-hero-subtitle {
	font-size: 1.05rem;
	color: rgba(255,255,255,0.72);
	margin: 0;
}

/* ══ CONTROLS ═══════════════════════════════════════════════════ */
.evt-controls-wrap {
	background: var(--evt-white);
	border-bottom: 1px solid var(--evt-border);
	position: sticky;
	top: 0;
	z-index: 100;
}

.evt-controls-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 14px 32px;
	display: flex;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
}

/* View toggle — unified pill style */
.evt-view-toggle {
	display: flex;
	gap: 6px;
	flex-shrink: 0;
}

.view-toggle-btn {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 6px 16px;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--evt-muted);
	background: transparent;
	border: 1.5px solid var(--evt-border);
	border-radius: 100px;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
	white-space: nowrap;
}

.view-toggle-btn svg {
	width: 15px;
	height: 15px;
	fill: currentColor;
	flex-shrink: 0;
}

.view-toggle-btn:hover {
	border-color: var(--evt-teal);
	color: var(--evt-teal);
}

.view-toggle-btn.active {
	background: var(--evt-teal);
	color: #ffffff;
	border-color: var(--evt-teal);
}

/* Category pills */
.evt-cat-pills {
	display: none;
}

.evt-pill {
	padding: 6px 16px;
	font-size: 0.8rem;
	font-weight: 600;
	border-radius: 100px;
	border: 1.5px solid var(--evt-border);
	background: transparent;
	color: var(--evt-muted);
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
	white-space: nowrap;
}

.evt-pill:hover {
	border-color: var(--evt-teal);
	color: var(--evt-teal);
}

.evt-pill.active {
	background: var(--evt-teal);
	color: #ffffff;
	border-color: var(--evt-teal);
}

/* ══ SECTION WRAPPER ════════════════════════════════════════════ */
.evt-section {
	padding: 40px 0 60px;
}

.evt-section-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 32px;
}

/* ══ TEC EVENTS LOOP WIDGET ════════════════════════════════════ */

/* Remove TEC's own navigation / header chrome */
.page-events-listing .tribe-events__view-selector,
.page-events-listing .tribe-events-header,
.page-events-listing .tribe-events-header__top-bar,
.page-events-listing .tribe-events-pro-photo__nav {
	display: none !important;
}

/* Event list item */
.page-events-listing .tribe-events-calendar-list__event-article,
.page-events-listing .tribe-events-pro-summary__event-article {
	border-bottom: 1px solid var(--evt-border) !important;
	padding: 20px 0 !important;
}

/* Date badge */
.page-events-listing .tribe-events-calendar-list__event-datetime-wrapper,
.page-events-listing .tribe-event-date-start {
	color: var(--evt-teal) !important;
	font-weight: 700 !important;
	font-size: 0.85rem !important;
}

/* Event title */
.page-events-listing .tribe-events-calendar-list__event-title a,
.page-events-listing .tribe-events-pro-summary__event-title a {
	color: var(--evt-text) !important;
	text-decoration: none !important;
	font-size: 1.1rem !important;
	font-weight: 700 !important;
}

.page-events-listing .tribe-events-calendar-list__event-title a:hover,
.page-events-listing .tribe-events-pro-summary__event-title a:hover {
	color: var(--evt-teal) !important;
}

/* Category tags */
.page-events-listing .tribe-events-calendar-list__event-categories a,
.page-events-listing .tribe-event__categories a {
	font-size: 0.72rem !important;
	font-weight: 600 !important;
	padding: 3px 10px !important;
	border-radius: 100px !important;
	text-decoration: none !important;
	display: inline-block !important;
	background: var(--evt-teal-light) !important;
	color: var(--evt-teal-dark) !important;
	border: 1px solid #b8e0d0 !important;
	margin-right: 4px !important;
}

/* CTA button */
.page-events-listing .tribe-events-calendar-list__event-website-link,
.page-events-listing .tribe-events__buy-tickets {
	display: inline-block !important;
	padding: 7px 16px !important;
	background: var(--evt-teal) !important;
	color: #ffffff !important;
	border-radius: 6px !important;
	font-size: 0.8rem !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	border: none !important;
}

.page-events-listing .tribe-events-calendar-list__event-website-link:hover {
	background: var(--evt-teal-dark) !important;
	color: #ffffff !important;
}

/* ══ TEC FULLCALENDAR WIDGET ════════════════════════════════════ */

/* Prevent FullCalendar from collapsing when initialized hidden */
.page-events-listing #evt-calendar-section .tribe-events,
.page-events-listing #evt-calendar-section .fc-view-harness {
	min-height: 560px !important;
}

/* Outer wrapper — white card lifted from page background */
.page-events-listing #evt-calendar-section .tribe-events {
	background: #ffffff !important;
	border-radius: var(--evt-radius) !important;
	overflow: hidden !important;
	box-shadow: 0 8px 40px rgba(42,122,138,0.14) !important;
	border: none !important;
}

/* ── Toolbar ───────────────────────────────────────────────── */
.page-events-listing .fc .fc-toolbar.fc-header-toolbar {
	background: var(--evt-teal) !important;
	padding: 16px 20px !important;
	margin-bottom: 0 !important;
}

.page-events-listing .fc .fc-toolbar-title {
	color: #ffffff !important;
	font-size: 1.15rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.02em !important;
}

/* Prev / Next / Today buttons */
.page-events-listing .fc .fc-button,
.page-events-listing .fc .fc-button-primary {
	background: rgba(255,255,255,0.12) !important;
	border: 1px solid rgba(255,255,255,0.25) !important;
	color: #ffffff !important;
	font-size: 0.78rem !important;
	font-weight: 600 !important;
	border-radius: 6px !important;
	padding: 5px 12px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.05em !important;
	transition: background 0.2s, border-color 0.2s !important;
	box-shadow: none !important;
}

.page-events-listing .fc .fc-button:hover,
.page-events-listing .fc .fc-button-primary:not(:disabled):hover {
	background: rgba(255,255,255,0.22) !important;
	border-color: rgba(255,255,255,0.5) !important;
}

/* Active view button (Month / Week / Day / List) */
.page-events-listing .fc .fc-button-primary:not(:disabled).fc-button-active {
	background: var(--evt-gold) !important;
	border-color: var(--evt-gold) !important;
	color: var(--evt-teal-dark) !important;
}

/* ── Day-of-week header row ────────────────────────────────── */
.page-events-listing .fc .fc-col-header,
.page-events-listing .fc .fc-col-header tbody,
.page-events-listing .fc .fc-col-header tr,
.page-events-listing .fc .fc-col-header-cell {
	background-color: var(--evt-teal-dark) !important;
}

.page-events-listing .fc .fc-col-header-cell {
	padding: 0 !important;
	border-color: var(--evt-teal-dark) !important;
	height: 44px !important;
}

.page-events-listing .fc .fc-col-header-cell-cushion {
	color: #ffffff !important;
	font-size: 0.78rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	padding: 12px 4px !important;
	display: block !important;
	line-height: 1 !important;
}

/* ── Day cells ─────────────────────────────────────────────── */
.page-events-listing .fc .fc-daygrid-day {
	background: #ffffff !important;
	transition: background 0.15s !important;
}

.page-events-listing .fc .fc-daygrid-day:hover {
	background: var(--evt-teal-light) !important;
}

/* Days from other months — greyed out */
.page-events-listing .fc .fc-day-other {
	background: #f8fafa !important;
}

.page-events-listing .fc .fc-day-other .fc-daygrid-day-number {
	color: #c0ccc8 !important;
}

.page-events-listing .fc .fc-daygrid-day-number {
	color: var(--evt-text) !important;
	font-size: 0.82rem !important;
	font-weight: 500 !important;
	padding: 6px 8px !important;
	text-decoration: none !important;
}

/* Today highlight */
.page-events-listing .fc .fc-day-today {
	background: var(--evt-teal-light) !important;
}

.page-events-listing .fc .fc-day-today .fc-daygrid-day-number {
	background: var(--evt-teal) !important;
	color: #ffffff !important;
	border-radius: 50% !important;
	width: 26px !important;
	height: 26px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-weight: 700 !important;
}

/* Grid borders */
.page-events-listing .fc .fc-scrollgrid {
	border-color: var(--evt-border) !important;
}

.page-events-listing .fc td,
.page-events-listing .fc th {
	border-color: var(--evt-border) !important;
}

/* ── Events ────────────────────────────────────────────────── */
.page-events-listing .fc .fc-event {
	background: var(--evt-teal) !important;
	border: none !important;
	border-radius: 6px !important;
	padding: 3px 7px !important;
	cursor: pointer !important;
	transition: background 0.15s, transform 0.15s !important;
	box-shadow: 0 2px 6px rgba(42,122,138,0.25) !important;
}

.page-events-listing .fc .fc-event:hover {
	background: var(--evt-teal-dark) !important;
	transform: translateY(-1px) !important;
}

.page-events-listing .fc .fc-event-title,
.page-events-listing .fc .fc-event-time {
	color: #ffffff !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
}

/* List view */
.page-events-listing .fc .fc-list-event:hover td {
	background: var(--evt-teal-light) !important;
}

.page-events-listing .fc .fc-list-event-dot {
	border-color: var(--evt-teal) !important;
}

.page-events-listing .fc .fc-list-event-title a {
	color: var(--evt-text) !important;
	text-decoration: none !important;
	font-weight: 600 !important;
}

.page-events-listing .fc .fc-list-day-cushion {
	background: var(--evt-teal-light) !important;
}

.page-events-listing .fc .fc-list-day-text,
.page-events-listing .fc .fc-list-day-side-text {
	color: var(--evt-teal-dark) !important;
	font-weight: 700 !important;
	text-decoration: none !important;
}

/* ══ ECT SHORTCODE — GRID OVERRIDES ════════════════════════════ */

/* Remove ECT's own filter bar — we use our own pills */
.page-events-listing .ect-filter-bar,
.page-events-listing .ect_catfilter_heading {
	display: none !important;
}

/* Override Bootstrap .row inside ECT grid wrapper → CSS Grid */
.page-events-listing #ect-grid-wrapper .row,
.page-events-listing .tect-grid-wrapper .row {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 24px !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Reset Bootstrap col styles on each card */
.page-events-listing .ect-grid-event {
	flex: none !important;
	max-width: none !important;
	width: auto !important;
	padding: 0 !important;
	background: var(--evt-white) !important;
	border-radius: var(--evt-radius) !important;
	overflow: hidden !important;
	box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
	transition: box-shadow 0.2s ease, transform 0.2s ease !important;
	border: 1px solid var(--evt-border) !important;
	margin: 0 !important;
}

.page-events-listing .ect-grid-event:hover {
	box-shadow: 0 8px 28px rgba(15,110,86,0.12) !important;
	transform: translateY(-3px) !important;
}

/* Thumbnail */
.page-events-listing .ect-grid-image {
	overflow: hidden !important;
	height: 200px !important;
}

.page-events-listing .ect-grid-image img {
	width: 100% !important;
	height: 200px !important;
	object-fit: cover !important;
	display: block !important;
	transition: transform 0.3s ease !important;
}

.page-events-listing .ect-grid-event:hover .ect-grid-image img {
	transform: scale(1.04) !important;
}

/* Card content area */
.page-events-listing .ect-grid-content {
	padding: 16px 18px 20px !important;
}

/* Date badge */
.page-events-listing .ect-grid-date {
	margin-bottom: 10px !important;
}

.page-events-listing .ect-date-area {
	display: inline-flex !important;
	align-items: center !important;
	gap: 4px !important;
	background: var(--evt-teal) !important;
	color: #ffffff !important;
	border-radius: 6px !important;
	padding: 4px 10px !important;
	font-weight: 700 !important;
	font-size: 0.78rem !important;
	line-height: 1.3 !important;
}

.page-events-listing .ect-date-area .ev-day,
.page-events-listing .ect-date-area .ev-mo,
.page-events-listing .ect-date-area .ev-yr {
	color: #ffffff !important;
	font-weight: 700 !important;
}

/* Event title */
.page-events-listing .ect-grid-title {
	margin: 0 0 8px !important;
}

.page-events-listing .ect-grid-title h4 {
	font-size: 1rem !important;
	font-weight: 700 !important;
	line-height: 1.35 !important;
	margin: 0 !important;
}

.page-events-listing .ect-grid-title .ect-event-url,
.page-events-listing .ect-grid-title h4 a {
	color: var(--evt-text) !important;
	text-decoration: none !important;
}

.page-events-listing .ect-grid-title .ect-event-url:hover,
.page-events-listing .ect-grid-title h4 a:hover {
	color: var(--evt-teal) !important;
}

/* Venue */
.page-events-listing .ect-grid-venue,
.page-events-listing .grid-view-venue {
	font-size: 0.8rem !important;
	color: var(--evt-muted) !important;
	margin-bottom: 8px !important;
}

.page-events-listing .ect-grid-venue a,
.page-events-listing .tribe-events-gmap {
	color: var(--evt-muted) !important;
	text-decoration: none !important;
	font-size: 0.78rem !important;
}

/* Read more button */
.page-events-listing .ect-grid-readmore a {
	display: inline-block !important;
	margin-top: 10px !important;
	padding: 8px 18px !important;
	background: var(--evt-teal) !important;
	color: #ffffff !important;
	font-size: 0.78rem !important;
	font-weight: 600 !important;
	border-radius: 6px !important;
	text-decoration: none !important;
	transition: background 0.2s ease !important;
}

.page-events-listing .ect-grid-readmore a:hover {
	background: var(--evt-teal-dark) !important;
	color: #ffffff !important;
}

/* ══ LOAD MORE ══════════════════════════════════════════════════ */
.page-events-listing .ect-load-more-wrap {
	text-align: center !important;
	margin-top: 40px !important;
}

.page-events-listing .ect-load-more {
	display: inline-block !important;
	padding: 11px 28px !important;
	background: transparent !important;
	color: var(--evt-teal) !important;
	border: 2px solid var(--evt-teal) !important;
	border-radius: 8px !important;
	font-weight: 600 !important;
	font-size: 0.88rem !important;
	text-decoration: none !important;
	transition: background 0.2s ease, color 0.2s ease !important;
}

.page-events-listing .ect-load-more:hover {
	background: var(--evt-teal) !important;
	color: #ffffff !important;
}

/* ══ ECT FULLCALENDAR OVERRIDES ═════════════════════════════════ */

/* Wrapper */
.page-events-listing .ect-custom-calendar {
	background: var(--evt-white) !important;
	border-radius: var(--evt-radius) !important;
	overflow: hidden !important;
	box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
}

/* Ensure FullCalendar table cells have proper height */
.page-events-listing .ect-custom-calendar table,
.page-events-listing .ect-custom-calendar td,
.page-events-listing .ect-custom-calendar th,
.page-events-listing .ect-custom-calendar tr {
	height: auto !important;
	min-height: 0 !important;
}

.page-events-listing .ect-custom-calendar .fc-daygrid-day {
	min-height: 80px !important;
}

/* FullCalendar toolbar */
.page-events-listing .ect-custom-calendar .fc-toolbar {
	padding: 14px 18px !important;
	background: var(--evt-teal-dark) !important;
	margin-bottom: 0 !important;
}

.page-events-listing .ect-custom-calendar .fc-toolbar-title {
	color: #ffffff !important;
	font-size: 1.1rem !important;
}

.page-events-listing .ect-custom-calendar .fc-button {
	background: var(--evt-teal) !important;
	border-color: var(--evt-teal) !important;
	color: #ffffff !important;
}

.page-events-listing .ect-custom-calendar .fc-button:hover,
.page-events-listing .ect-custom-calendar .fc-button-active {
	background: var(--evt-teal-light) !important;
	color: var(--evt-teal-dark) !important;
	border-color: var(--evt-teal) !important;
}

/* Day cells */
.page-events-listing .ect-custom-calendar .fc-daygrid-day-number {
	color: var(--evt-text) !important;
	font-size: 0.85rem !important;
}

.page-events-listing .ect-custom-calendar .fc-day-today {
	background: var(--evt-teal-light) !important;
}

/* Events inside calendar */
.page-events-listing .ect-custom-calendar .fc-event {
	background: var(--evt-teal) !important;
	border-color: var(--evt-teal) !important;
	color: #ffffff !important;
	font-size: 0.75rem !important;
	border-radius: 4px !important;
}

/* ══ CALENDAR VIEW OVERRIDES ════════════════════════════════════ */
.page-events-listing .tribe-events-calendar,
.page-events-listing .tribe-events-calendar table {
	width: 100% !important;
	border-collapse: collapse !important;
	background: var(--evt-white) !important;
	border-radius: var(--evt-radius) !important;
	overflow: hidden !important;
	box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
}

.page-events-listing .tribe-events-calendar th {
	background: var(--evt-teal-dark) !important;
	color: #ffffff !important;
	padding: 10px !important;
	font-size: 0.8rem !important;
	font-weight: 600 !important;
	text-align: center !important;
}

.page-events-listing .tribe-events-calendar td {
	border: 1px solid var(--evt-border) !important;
	padding: 6px !important;
	vertical-align: top !important;
	font-size: 0.78rem !important;
}

.page-events-listing .tribe-events-calendar td.tribe-events-present > * {
	background: var(--evt-teal-light) !important;
}

.page-events-listing .tribe-events-calendar td .tribe-event-url {
	color: var(--evt-teal) !important;
	font-size: 0.72rem !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	display: block !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
}

/* ══ RESPONSIVE ═════════════════════════════════════════════════ */
@media (max-width: 1024px) {
	.page-events-listing #ect-grid-wrapper .row,
	.page-events-listing .tect-grid-wrapper .row {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 700px) {
	.evt-hero { padding: 60px 20px 40px; }
	.evt-controls-inner { padding: 12px 16px; gap: 12px; }
	.evt-section-inner { padding: 0 16px; }

	.page-events-listing #ect-grid-wrapper .row,
	.page-events-listing .tect-grid-wrapper .row {
		grid-template-columns: 1fr !important;
	}
}


/* ── Footer — dark background + white text (matches homepage) ── */
.page-events-listing .elementor-location-footer > .e-con:first-child:not(.elementor-motion-effects-element-type-background),
.page-events-listing .elementor-location-footer > .e-con:first-child > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background-color: #1a202c !important;
	background-image: none !important;
}
.page-events-listing .elementor-location-footer,
.page-events-listing .elementor-location-footer p,
.page-events-listing .elementor-location-footer a,
.page-events-listing .elementor-location-footer span,
.page-events-listing .elementor-location-footer li,
.page-events-listing .elementor-location-footer .elementor-heading-title,
.page-events-listing .elementor-location-footer .elementor-widget-text-editor {
	color: #ffffff !important;
}
