/* ==========================================================================
   Dynamic conferences (shortcodes in inc/conferences.php)
   Same "Academic Proceedings" tokens and Elementor Global Fonts/Colors
   ========================================================================== */

.evo-grid { display: grid; gap: var(--sp-20); }
.evo-grid--1 { grid-template-columns: minmax(0, 1fr); }
.evo-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.evo-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.evo-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) {
	.evo-grid--3, .evo-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.evo-grid--2 { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) { .evo-grid { grid-template-columns: minmax(0, 1fr); } }

/* Conference names are <h3>, so they use the global H3 font */
.evo-title {
	margin: 0;
	font-family: var(--e-global-typography-h3-font-family), sans-serif;
	font-size: var(--e-global-typography-h3-font-size);
	font-weight: var(--e-global-typography-h3-font-weight);
	line-height: var(--e-global-typography-h3-line-height);
	letter-spacing: var(--e-global-typography-h3-letter-spacing);
	color: var(--c-navy);
	text-wrap: balance;
}
.evo-event--compact .evo-title,
.evo-gallery-head .evo-title {
	font-size: var(--e-global-typography-h4-font-size);
	line-height: var(--e-global-typography-h4-line-height);
}

/* Tags in the mono chip font */
.evo-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.evo-chip {
	display: inline-flex; align-items: center;
	background: var(--c-navy-50); color: var(--c-navy);
	box-shadow: inset 0 0 0 1px var(--c-navy-100);
	padding: .3rem .6rem; border-radius: var(--r-xs);
	font-family: var(--e-global-typography-chip-font-family), ui-monospace, monospace;
	font-size: var(--e-global-typography-chip-font-size);
	font-weight: var(--e-global-typography-chip-font-weight);
	letter-spacing: var(--e-global-typography-chip-letter-spacing);
	text-transform: var(--e-global-typography-chip-text-transform);
	line-height: 1.3;
}
.evo-chip--gold { background: var(--c-gold-soft); color: var(--c-gold-text); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c-gold-text) 22%, transparent); }

.evo-meta {
	margin: 0; display: flex; align-items: center; gap: .4rem;
	color: var(--c-muted);
	font-size: var(--e-global-typography-bodysm-font-size);
}
.evo-meta svg { width: 16px; height: 16px; fill: var(--c-blue); flex: none; }
.evo-note { margin: 0; color: var(--c-muted); font-size: var(--e-global-typography-bodysm-font-size); line-height: 1.55; }

.evo-links { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; padding-top: .25rem; }
.evo-link {
	display: inline-flex; align-items: center; gap: .45rem;
	font-family: var(--e-global-typography-accent-font-family), sans-serif;
	font-weight: 700; font-size: .95rem; color: var(--c-navy); text-decoration: none;
	padding-bottom: .25rem;
	background-image: linear-gradient(var(--c-accent), var(--c-accent));
	background-size: 0 2px; background-position: 0 100%; background-repeat: no-repeat;
	transition: background-size .25s;
}
.evo-link svg { width: 15px; height: 15px; fill: currentColor; transition: transform .2s; }
.evo-link:hover { background-size: 100% 2px; color: var(--c-navy); }
.evo-link:hover svg { transform: translateX(4px); }

/* Upcoming event card */
.evo-event {
	position: relative; display: flex; align-items: stretch; gap: 0; overflow: hidden;
	background: var(--c-white); border: 1px solid var(--c-navy-100); border-radius: var(--r-lg);
	transition: border-color .25s, transform .25s, box-shadow .25s;
}
.evo-event::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
	background: var(--c-accent); transform: scaleX(0); transform-origin: left; transition: transform .3s;
}
.evo-event:hover { border-color: var(--c-navy-200); transform: translateY(-2px); box-shadow: var(--shadow-soft); }
.evo-event:hover::after { transform: scaleX(1); }
.evo-date {
	flex: none; min-width: 112px; display: flex; flex-direction: column; justify-content: center; text-align: center;
	background: var(--c-navy); color: var(--c-white);
	padding: var(--sp-20) var(--sp-16);
}
.evo-date b {
	display: block;
	font-family: var(--e-global-typography-statnum-font-family), sans-serif;
	font-size: var(--e-global-typography-statnum-font-size);
	font-weight: var(--e-global-typography-statnum-font-weight);
	line-height: 1; white-space: nowrap;
}
.evo-date span {
	display: block; margin-top: .5rem;
	font-family: var(--e-global-typography-label-font-family), ui-monospace, monospace;
	font-size: var(--e-global-typography-label-font-size);
	font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
	color: var(--c-accent-soft);
}
.evo-event-body { display: grid; gap: .6rem; min-width: 0; padding: var(--sp-24); align-content: start; }
@media (max-width: 480px) {
	.evo-event { flex-direction: column; }
	.evo-date { flex-direction: row; align-items: baseline; justify-content: flex-start; gap: .75rem; min-width: 0; text-align: left; }
	.evo-date span { margin: 0; }
}

/* Compact list (popup, sidebars) */
.evo-compact { display: grid; gap: var(--sp-12); }
.evo-event--compact .evo-date { min-width: 92px; padding: var(--sp-12); }
.evo-event--compact .evo-date b { font-size: var(--e-global-typography-h4-font-size); }
.evo-event--compact .evo-event-body { padding: var(--sp-16); }

/* Past conference card */
.evo-conf {
	position: relative; display: flex; flex-direction: column; overflow: hidden;
	background: var(--c-white); border: 1px solid var(--c-navy-100); border-radius: var(--r-lg);
	transition: border-color .25s, transform .25s, box-shadow .25s;
}
.evo-conf::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
	background: var(--c-accent); transform: scaleX(0); transform-origin: left; transition: transform .3s;
}
.evo-conf:hover { border-color: var(--c-navy-200); transform: translateY(-2px); box-shadow: var(--shadow-soft); }
.evo-conf:hover::after { transform: scaleX(1); }
.evo-conf-img { aspect-ratio: 3 / 2; overflow: hidden; background: var(--c-navy-50); border-bottom: 1px solid var(--c-navy-100); }
.evo-conf-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.evo-conf:hover .evo-conf-img img { transform: scale(1.03); }
.evo-conf-body { display: grid; gap: .55rem; padding: var(--sp-24); }

/* Galleries */
.evo-galleries { display: grid; gap: var(--sp-48); }
.evo-gallery-block { border-top: 2px solid var(--c-navy); padding-top: var(--sp-16); }
.evo-gallery-head { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem .8rem; margin-bottom: var(--sp-16); }
.evo-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
@media (max-width: 1024px) { .evo-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .evo-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.evo-gallery a { position: relative; display: block; overflow: hidden; border-radius: var(--r-xs); aspect-ratio: 3 / 2; background: var(--c-navy-50); }
.evo-gallery a[hidden] { display: none; }
.evo-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.evo-gallery a:hover img { transform: scale(1.04); }
.evo-more {
	position: absolute; inset: 0; display: grid; place-items: center;
	background: color-mix(in srgb, var(--c-navy-900) 70%, transparent);
	color: var(--c-white);
	font-family: var(--e-global-typography-label-font-family), ui-monospace, monospace;
	font-weight: 600; font-size: .95rem; letter-spacing: .04em;
}

/* Empty state */
.evo-empty {
	padding: var(--sp-24); text-align: center; color: var(--c-muted);
	border: 1px dashed var(--c-navy-200); border-radius: var(--r-xs); background: var(--c-white);
}

@media (prefers-reduced-motion: reduce) {
	.evo-event, .evo-conf, .evo-conf-img img, .evo-gallery img, .evo-link, .evo-link svg, .evo-event::after, .evo-conf::after { transition: none; }
}
