/* Event Agenda — override the variables in Elementor (Advanced → Custom CSS) or your theme. */
.ea-agenda {
	--ea-bg: #091B14;
	--ea-bg-hover: #0e1f18;
	--ea-border: #17352a;
	--ea-accent: #3ddc84;
	--ea-text: #ffffff;
	--ea-muted: #a9b8b1;
	--ea-meta: #4fbf7a;
	--ea-radius: 16px;
	--ea-time-col: 130px;

	background: var(--ea-bg);
	border: 1px solid var(--ea-border);
	border-radius: var(--ea-radius);
	overflow: hidden;
	color: var(--ea-text);
	font-family: inherit;
}

.ea-item { position: relative; }
.ea-item + .ea-item { border-top: 1px solid var(--ea-border); }
/* timeline line spans the whole item, so it runs through an open panel too */
.ea-item::before {
	content: "";
	position: absolute;
	left: calc(24px + var(--ea-time-col) + 16px + 14px);
	top: 28px;
	bottom: 0;
	width: 2px;
	transform: translateX(-50%);
	background: var(--ea-accent);
	opacity: .55;
	pointer-events: none;
}

.ea-head {
	all: unset;
	box-sizing: border-box;
	display: grid;
	grid-template-columns: var(--ea-time-col) 28px 1fr 32px;
	grid-template-areas: "time rail main chev";
	column-gap: 16px;
	width: 100%;
	padding: 22px 24px 22px 24px;
	cursor: pointer;
	transition: background .2s;
}
.ea-item:not(.is-open) .ea-head:hover { background: var(--ea-bg-hover); }
.ea-head:focus-visible { outline: 2px solid var(--ea-accent); outline-offset: -2px; }

.ea-time {
	grid-area: time;
	color: var(--ea-accent);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.4;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

/* timeline dot + line */
.ea-rail { grid-area: rail; position: relative; }
.ea-rail::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 3px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	transform: translateX(-50%);
	background: var(--ea-accent);
}

.ea-main { grid-area: main; display: flex; flex-direction: column; gap: 4px; min-width: 0; }

.ea-type {
	color: var(--ea-accent);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.ea-title {
	color: var(--ea-text);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.3;
}
.ea-excerpt {
	color: var(--ea-muted);
	font-size: 14px;
	line-height: 1.55;
	margin-top: 4px;
	/* closed: exactly one line, ending with … */
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
	line-clamp: 1;
	overflow: hidden;
}
/* open: hide the preview when full content exists, otherwise show it in full */
.ea-item.is-open .ea-excerpt--swap { display: none; }
.ea-item.is-open .ea-excerpt { -webkit-line-clamp: unset; line-clamp: none; }

.ea-chev {
	grid-area: chev;
	color: var(--ea-accent);
	display: flex;
	justify-content: flex-end;
	padding-top: 2px;
}
.ea-chev svg { transition: transform .25s ease; }
.ea-item.is-open .ea-chev svg { transform: rotate(180deg); }

/* animated panel */
.ea-panel {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows .3s ease;
}
.ea-item.is-open .ea-panel { grid-template-rows: 1fr; }
.ea-panel-inner {
	overflow: hidden;
	min-height: 0;
	/* align with the title column */
	padding: 0 72px 0 calc(24px + var(--ea-time-col) + 16px + 28px + 16px);
	visibility: hidden;
	transition: visibility 0s linear .3s;
}
.ea-item.is-open .ea-panel-inner {
	visibility: visible;
	transition-delay: 0s;
	padding-bottom: 24px;
}

.ea-desc { color: var(--ea-muted); font-size: 14px; line-height: 1.6; }
.ea-desc p { margin: 0 0 12px; }
.ea-speakers, .ea-mod { margin: 0 0 4px; font-size: 14px; color: var(--ea-meta); line-height: 1.5; }
.ea-item.is-open .ea-panel-inner > :first-child { margin-top: -6px; }

/* mobile: time moves above the type label */
@media (max-width: 767px) {
	.ea-agenda { --ea-time-col: 0px; }
	.ea-head {
		grid-template-columns: 20px 1fr 28px;
		grid-template-areas:
			"rail time chev"
			"rail main chev";
		column-gap: 12px;
		row-gap: 6px;
		padding: 18px 16px;
	}
	.ea-time { font-size: 14px; }
	.ea-item::before { left: calc(16px + 10px); top: 24px; }
	.ea-title { font-size: 17px; }
	.ea-panel-inner { padding-left: calc(16px + 20px + 12px); padding-right: 16px; }
	.ea-item.is-open .ea-panel-inner { padding-bottom: 18px; }
}

@media (prefers-reduced-motion: reduce) {
	.ea-panel, .ea-chev svg { transition: none; }
}

/* -------------------------------------------------------------------------
 * Site overrides
 * ---------------------------------------------------------------------- */
.ea-agenda { border-radius: 16px; }
.ea-head { background: #091B14 !important; border-radius: 0 !important; }
.ea-item:nth-of-type(odd) .ea-panel-inner,
.ea-item:nth-of-type(odd) .ea-head { background: rgba(63, 171, 99, 0.05) !important; }
.ea-item.is-open .ea-panel-inner { padding-top: 10px; }
.ea-speakers { margin-top: 12px !important; }
.ea-panel-inner > .ea-speakers:first-child { margin-top: 0 !important; } /* no description above */

/* Elementor Nested Tabs wrapper (section with CSS class "program") */
.program .e-n-tabs-heading { padding: 10px; background: rgba(27, 31, 34, 0.6) !important; }
