/* EventBox Event Loop — design presets */

.eventbox-loop {
	--eventbox-loop-columns: 3;
	--eventbox-loop-gap: var(--eventbox-gap, 1.25rem);
	--eventbox-loop-card-padding: var(--eventbox-gap, 1.25rem);
	--eventbox-loop-card-padding-top: var(--eventbox-loop-card-padding);
	--eventbox-loop-card-padding-right: var(--eventbox-loop-card-padding);
	--eventbox-loop-card-padding-bottom: var(--eventbox-loop-card-padding);
	--eventbox-loop-card-padding-left: var(--eventbox-loop-card-padding);
	--eventbox-loop-thumb-width: 140px;
	--eventbox-loop-accent: var(--eventbox-accent, #2563eb);
}

.eventbox-loop__grid {
	display: grid;
	gap: var(--eventbox-loop-gap);
}

.eventbox-loop--layout-grid .eventbox-loop__grid {
	grid-template-columns: repeat(var(--eventbox-loop-columns, 3), minmax(0, 1fr));
}

.eventbox-loop--layout-list .eventbox-loop__grid {
	grid-template-columns: minmax(0, 1fr);
}

.eventbox-loop__item {
	min-width: 0;
}

.eventbox-loop--equal-height .eventbox-loop__grid {
	align-items: stretch;
}

.eventbox-loop--equal-height .eventbox-loop__item,
.eventbox-loop--equal-height .eventbox-loop__item-content {
	height: 100%;
}

.eventbox-loop--equal-height .eventbox-card {
	height: 100%;
}

.eventbox-loop--equal-height .eventbox-card--has-thumb {
	align-items: stretch;
}

.eventbox-loop--equal-height .eventbox-card--has-thumb:not([class*="eventbox-card--image-pos-"]) {
	align-items: stretch;
}

.eventbox-loop--equal-height .eventbox-card--has-thumb.eventbox-card--grid,
.eventbox-loop--equal-height .eventbox-card--has-thumb[class*="eventbox-card--image-pos-top"] {
	grid-template-rows: auto minmax(0, 1fr);
}

.eventbox-loop--equal-height .eventbox-card__body {
	min-height: 0;
}

.eventbox-loop--equal-height .eventbox-card--has-thumb .eventbox-card__image,
.eventbox-loop--equal-height .eventbox-card--has-thumb .eventbox-card__image--placeholder {
	align-self: stretch;
	height: 100%;
}

.eventbox-loop--equal-height .eventbox-card--has-thumb .eventbox-card__image img {
	height: 100%;
	object-fit: cover;
}

.eventbox-loop--equal-height .eventbox-card--has-thumb .eventbox-card__image--placeholder a {
	min-height: 100%;
}

.eventbox-loop__empty {
	margin: 0;
	padding: 1.5rem;
	text-align: center;
	color: var(--eventbox-text-muted);
	background: var(--eventbox-surface-muted);
	border-radius: var(--eventbox-radius-sm);
}

/* Shared loop card modifier hook */
.eventbox-loop .eventbox-card[class*="eventbox-card--loop-"] {
	padding-top: var(--eventbox-loop-card-padding-top, var(--eventbox-loop-card-padding, var(--eventbox-gap, 1.25rem)));
	padding-right: var(--eventbox-loop-card-padding-right, var(--eventbox-loop-card-padding, var(--eventbox-gap, 1.25rem)));
	padding-bottom: var(--eventbox-loop-card-padding-bottom, var(--eventbox-loop-card-padding, var(--eventbox-gap, 1.25rem)));
	padding-left: var(--eventbox-loop-card-padding-left, var(--eventbox-loop-card-padding, var(--eventbox-gap, 1.25rem)));
}

/* 1 — Classic Grid */
.eventbox-loop--design-grid-classic .eventbox-card--loop-grid-classic {
	grid-template-columns: 1fr;
}

.eventbox-loop--design-grid-classic .eventbox-card--loop-grid-classic.eventbox-card--has-thumb .eventbox-card__image,
.eventbox-loop--design-grid-classic .eventbox-card--loop-grid-classic.eventbox-card--has-thumb .eventbox-card__image--placeholder {
	margin-top: calc(var(--eventbox-loop-card-padding-top, var(--eventbox-loop-card-padding, 0px)) * -1);
	margin-right: calc(var(--eventbox-loop-card-padding-right, var(--eventbox-loop-card-padding, 0px)) * -1);
	margin-bottom: 0;
	margin-left: calc(var(--eventbox-loop-card-padding-left, var(--eventbox-loop-card-padding, 0px)) * -1);
	width: calc(
		100% + var(--eventbox-loop-card-padding-left, var(--eventbox-loop-card-padding, 0px)) + var(--eventbox-loop-card-padding-right, var(--eventbox-loop-card-padding, 0px))
	);
	max-width: none;
	border-radius: var(--eventbox-radius) var(--eventbox-radius) 0 0;
}

.eventbox-loop--design-grid-classic .eventbox-card--loop-grid-classic.eventbox-card--has-thumb .eventbox-card__image img {
	border-radius: var(--eventbox-radius) var(--eventbox-radius) 0 0;
}

/* 2 — Compact Grid */
.eventbox-loop--design-grid-compact {
	--eventbox-loop-columns: 4;
}

.eventbox-loop--design-grid-compact .eventbox-card--loop-grid-compact {
	padding: 0.875rem;
	gap: 0.625rem;
}

.eventbox-loop--design-grid-compact .eventbox-card--loop-grid-compact .eventbox-card__title {
	font-size: 0.9375rem;
	margin-bottom: 0.25rem;
}

.eventbox-loop--design-grid-compact .eventbox-card--loop-grid-compact .eventbox-card__excerpt,
.eventbox-loop--design-grid-compact .eventbox-card--loop-grid-compact .eventbox-card__address {
	font-size: 0.8125rem;
}

/* 3 — Horizontal List */
.eventbox-loop--design-list-horizontal .eventbox-card--loop-list-horizontal.eventbox-card--has-thumb:not([class*="eventbox-card--image-pos-"]) {
	grid-template-columns: var(--eventbox-loop-thumb-width, 140px) minmax(0, 1fr);
	align-items: center;
}

/* 4 — Minimal List */
.eventbox-loop--design-list-minimal .eventbox-card--loop-list-minimal {
	border: none;
	box-shadow: none;
	border-radius: 0;
	padding: 1rem 0;
	background: transparent;
	border-bottom: 1px solid var(--eventbox-border);
}

.eventbox-loop--design-list-minimal .eventbox-card--loop-list-minimal:last-child {
	border-bottom: none;
}

.eventbox-loop--design-list-minimal .eventbox-card--loop-list-minimal:hover {
	box-shadow: none;
	transform: none;
}

.eventbox-loop--design-list-minimal .eventbox-card--loop-list-minimal .eventbox-card__title {
	font-size: 1rem;
}

/* 5 — Image Overlay */
.eventbox-loop--design-grid-overlay .eventbox-card--loop-grid-overlay {
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: minmax(220px, auto);
	padding: 0;
	overflow: hidden;
	border: none;
}

.eventbox-loop--design-grid-overlay .eventbox-card--loop-grid-overlay .eventbox-card__image {
	grid-area: 1 / 1;
	min-height: 220px;
	border-radius: 0;
}

.eventbox-loop--design-grid-overlay .eventbox-card--loop-grid-overlay .eventbox-card__image img {
	width: 100%;
	height: 100%;
	min-height: 220px;
	object-fit: cover;
	border-radius: 0;
	aspect-ratio: auto;
}

.eventbox-loop--design-grid-overlay .eventbox-card--loop-grid-overlay .eventbox-card__body {
	grid-area: 1 / 1;
	align-self: end;
	padding: 1.25rem;
	background: linear-gradient(to top, rgba(15, 23, 42, 0.88) 0%, rgba(15, 23, 42, 0.35) 55%, transparent 100%);
	color: #fff;
}

.eventbox-loop--design-grid-overlay .eventbox-card--loop-grid-overlay .eventbox-card__title a,
.eventbox-loop--design-grid-overlay .eventbox-card--loop-grid-overlay .eventbox-card__date,
.eventbox-loop--design-grid-overlay .eventbox-card--loop-grid-overlay .eventbox-card__address,
.eventbox-loop--design-grid-overlay .eventbox-card--loop-grid-overlay .eventbox-card__taxonomies,
.eventbox-loop--design-grid-overlay .eventbox-card--loop-grid-overlay .eventbox-card__excerpt {
	color: inherit;
}

.eventbox-loop--design-grid-overlay .eventbox-card--loop-grid-overlay .eventbox-card__title a:hover,
.eventbox-loop--design-grid-overlay .eventbox-card--loop-grid-overlay .eventbox-card__title a:focus {
	color: #dbeafe;
}

/* 6 — Bordered Grid */
.eventbox-loop--design-grid-bordered .eventbox-card--loop-grid-bordered {
	box-shadow: none;
	border-width: 2px;
	border-color: var(--eventbox-border-strong);
}

.eventbox-loop--design-grid-bordered .eventbox-card--loop-grid-bordered:hover {
	box-shadow: none;
	border-color: var(--eventbox-loop-accent, var(--eventbox-accent));
}

/* 7 — Timeline */
.eventbox-loop--design-timeline .eventbox-loop__item--timeline {
	display: grid;
	grid-template-columns: 4.5rem minmax(0, 1fr);
	gap: 1rem;
	align-items: start;
}

.eventbox-loop--design-timeline .eventbox-loop__timeline-date {
	text-align: center;
	padding-top: 0.25rem;
}

.eventbox-loop--design-timeline .eventbox-loop__timeline-day {
	display: block;
	font-size: 1.375rem;
	font-weight: 800;
	line-height: 1.1;
	color: var(--eventbox-loop-accent, var(--eventbox-accent));
}

.eventbox-loop--design-timeline .eventbox-loop__timeline-month {
	display: block;
	font-size: 0.6875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--eventbox-text-muted);
}

.eventbox-loop--design-timeline .eventbox-card--loop-timeline .eventbox-card__date {
	display: none;
}

/* 8 — Magazine Grid */
.eventbox-loop--design-grid-magazine .eventbox-loop__item:first-child {
	grid-column: 1 / -1;
}

.eventbox-loop--design-grid-magazine .eventbox-loop__item:first-child .eventbox-card--loop-grid-magazine {
	grid-template-columns: 1fr 1fr;
	align-items: stretch;
}

.eventbox-loop--design-grid-magazine .eventbox-loop__item:first-child .eventbox-card--loop-grid-magazine .eventbox-card__image img {
	min-height: 260px;
	height: 100%;
}

.eventbox-loop--design-grid-magazine .eventbox-loop__item:first-child .eventbox-card--loop-grid-magazine .eventbox-card__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.eventbox-loop--design-grid-magazine .eventbox-loop__item:first-child .eventbox-card--loop-grid-magazine .eventbox-card__title {
	font-size: 1.375rem;
}

/* 9 — Elevated Cards */
.eventbox-loop--design-cards-elevated .eventbox-card--loop-cards-elevated {
	box-shadow: var(--eventbox-shadow);
	border: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.eventbox-loop--design-cards-elevated .eventbox-card--loop-cards-elevated:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 40px rgba(15, 23, 42, 0.12);
}

/* 10 — Split Cards */
.eventbox-loop--design-grid-split .eventbox-card--loop-grid-split.eventbox-card--has-thumb:not([class*="eventbox-card--image-pos-"]) {
	grid-template-columns: 1fr 1fr;
	align-items: stretch;
	padding: 0;
	overflow: hidden;
}

.eventbox-loop--design-grid-split .eventbox-card--loop-grid-split .eventbox-card__image {
	border-radius: 0;
	height: 100%;
}

.eventbox-loop--design-grid-split .eventbox-card--loop-grid-split .eventbox-card__image img {
	height: 100%;
	min-height: 180px;
	border-radius: 0;
}

.eventbox-loop--design-grid-split .eventbox-card--loop-grid-split .eventbox-card__body {
	padding-top: var(--eventbox-loop-card-padding-top, var(--eventbox-loop-card-padding, var(--eventbox-gap, 1.25rem)));
	padding-right: var(--eventbox-loop-card-padding-right, var(--eventbox-loop-card-padding, var(--eventbox-gap, 1.25rem)));
	padding-bottom: var(--eventbox-loop-card-padding-bottom, var(--eventbox-loop-card-padding, var(--eventbox-gap, 1.25rem)));
	padding-left: var(--eventbox-loop-card-padding-left, var(--eventbox-loop-card-padding, var(--eventbox-gap, 1.25rem)));
	display: flex;
	flex-direction: column;
	justify-content: center;
}

/* 11 — Accent Stack */
.eventbox-loop--design-stack-accent .eventbox-card--loop-stack-accent {
	border-left: 4px solid var(--eventbox-loop-accent, var(--eventbox-accent));
	box-shadow: none;
}

.eventbox-loop--design-stack-accent .eventbox-card--loop-stack-accent .eventbox-card__date {
	color: var(--eventbox-loop-accent, var(--eventbox-accent));
	font-weight: 600;
}

/* 12 — Soft Panels */
.eventbox-loop--design-grid-soft .eventbox-card--loop-grid-soft {
	background: var(--eventbox-surface-muted);
	border-color: transparent;
	box-shadow: none;
}

.eventbox-loop--design-grid-soft .eventbox-card--loop-grid-soft .eventbox-card__image {
	border-radius: calc(var(--eventbox-radius-sm) + 2px);
}

@media (max-width: 1024px) {
	.eventbox-loop--layout-grid .eventbox-loop__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.eventbox-loop--design-grid-magazine .eventbox-loop__item:first-child .eventbox-card--loop-grid-magazine {
		grid-template-columns: 1fr;
	}

	.eventbox-loop--design-grid-split .eventbox-card--loop-grid-split.eventbox-card--has-thumb:not([class*="eventbox-card--image-pos-"]) {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.eventbox-loop--layout-grid .eventbox-loop__grid,
	.eventbox-loop--design-grid-compact .eventbox-loop__grid {
		grid-template-columns: 1fr;
	}

	.eventbox-loop--design-list-horizontal .eventbox-card--loop-list-horizontal.eventbox-card--has-thumb:not([class*="eventbox-card--image-pos-"]),
	.eventbox-loop--design-timeline .eventbox-loop__item--timeline {
		grid-template-columns: 1fr;
	}

	.eventbox-loop--design-timeline .eventbox-loop__timeline-date {
		text-align: left;
		display: flex;
		gap: 0.5rem;
		align-items: baseline;
	}
}

/*
 * Explicit image position (Elementor / shortcode) — must beat design presets.
 */
.eventbox-loop[class*="eventbox-loop--design-"] .eventbox-card[class*="eventbox-card--loop-"].eventbox-card--has-thumb.eventbox-card--image-pos-top {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: auto minmax(0, 1fr);
	align-items: stretch;
	padding-top: var(--eventbox-loop-card-padding-top, var(--eventbox-loop-card-padding, var(--eventbox-gap, 1.25rem)));
	padding-right: var(--eventbox-loop-card-padding-right, var(--eventbox-loop-card-padding, var(--eventbox-gap, 1.25rem)));
	padding-bottom: var(--eventbox-loop-card-padding-bottom, var(--eventbox-loop-card-padding, var(--eventbox-gap, 1.25rem)));
	padding-left: var(--eventbox-loop-card-padding-left, var(--eventbox-loop-card-padding, var(--eventbox-gap, 1.25rem)));
	overflow: visible;
}

.eventbox-loop[class*="eventbox-loop--design-"] .eventbox-card[class*="eventbox-card--loop-"].eventbox-card--has-thumb.eventbox-card--image-pos-top .eventbox-card__image,
.eventbox-loop[class*="eventbox-loop--design-"] .eventbox-card[class*="eventbox-card--loop-"].eventbox-card--has-thumb.eventbox-card--image-pos-top .eventbox-card__body {
	order: unset;
}

.eventbox-loop[class*="eventbox-loop--design-"] .eventbox-card[class*="eventbox-card--loop-"].eventbox-card--has-thumb.eventbox-card--image-pos-top .eventbox-card__image {
	margin: 0;
	width: 100%;
	max-width: none;
	height: auto;
	border-radius: var(--eventbox-radius-sm);
}

.eventbox-loop[class*="eventbox-loop--design-"] .eventbox-card[class*="eventbox-card--loop-"].eventbox-card--has-thumb.eventbox-card--image-pos-top .eventbox-card__image img {
	width: 100%;
	height: auto;
	min-height: 0;
	border-radius: var(--eventbox-radius-sm);
}

.eventbox-loop[class*="eventbox-loop--design-"] .eventbox-card[class*="eventbox-card--loop-"].eventbox-card--has-thumb.eventbox-card--image-pos-left {
	display: grid;
	grid-template-columns: var(--eventbox-card-image-side-width, var(--eventbox-loop-thumb-width, 140px)) minmax(0, 1fr);
	grid-template-rows: none;
	align-items: center;
}

.eventbox-loop[class*="eventbox-loop--design-"] .eventbox-card[class*="eventbox-card--loop-"].eventbox-card--has-thumb.eventbox-card--image-pos-right {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--eventbox-card-image-side-width, var(--eventbox-loop-thumb-width, 140px));
	grid-template-rows: none;
	align-items: center;
}

.eventbox-loop[class*="eventbox-loop--design-"] .eventbox-card[class*="eventbox-card--loop-"].eventbox-card--has-thumb.eventbox-card--image-pos-right .eventbox-card__image {
	order: 2;
}

.eventbox-loop[class*="eventbox-loop--design-"] .eventbox-card[class*="eventbox-card--loop-"].eventbox-card--has-thumb.eventbox-card--image-pos-right .eventbox-card__body {
	order: 1;
}

.eventbox-loop[class*="eventbox-loop--design-"] .eventbox-card[class*="eventbox-card--loop-"].eventbox-card--has-thumb.eventbox-card--image-pos-left .eventbox-card__image,
.eventbox-loop[class*="eventbox-loop--design-"] .eventbox-card[class*="eventbox-card--loop-"].eventbox-card--has-thumb.eventbox-card--image-pos-right .eventbox-card__image {
	margin: 0;
	width: auto;
	max-width: 100%;
	height: auto;
}

.eventbox-loop[class*="eventbox-loop--design-"] .eventbox-card[class*="eventbox-card--loop-"].eventbox-card--has-thumb.eventbox-card--image-pos-left .eventbox-card__image img,
.eventbox-loop[class*="eventbox-loop--design-"] .eventbox-card[class*="eventbox-card--loop-"].eventbox-card--has-thumb.eventbox-card--image-pos-right .eventbox-card__image img {
	width: 100%;
	height: auto;
	min-height: 0;
}

.eventbox-loop--design-grid-magazine .eventbox-loop__item:first-child .eventbox-card--loop-grid-magazine.eventbox-card--has-thumb.eventbox-card--image-pos-top,
.eventbox-loop--design-grid-magazine .eventbox-loop__item:first-child .eventbox-card--loop-grid-magazine.eventbox-card--has-thumb.eventbox-card--image-pos-left,
.eventbox-loop--design-grid-magazine .eventbox-loop__item:first-child .eventbox-card--loop-grid-magazine.eventbox-card--has-thumb.eventbox-card--image-pos-right {
	grid-column: auto;
}

/* Loop-level image position overrides (inline-style fallback support). */
.eventbox-loop--image-pos-top .eventbox-card--has-thumb,
.eventbox-card--has-thumb[data-eventbox-image-pos="top"] {
	grid-template-columns: minmax(0, 1fr) !important;
	grid-template-rows: auto minmax(0, 1fr) !important;
	align-items: stretch !important;
}

.eventbox-loop--image-pos-top .eventbox-card--has-thumb .eventbox-card__image,
.eventbox-card--has-thumb[data-eventbox-image-pos="top"] .eventbox-card__image {
	order: 0 !important;
	margin: 0 !important;
	width: 100% !important;
	max-width: none !important;
}

.eventbox-loop--image-pos-top .eventbox-card--has-thumb .eventbox-card__body,
.eventbox-card--has-thumb[data-eventbox-image-pos="top"] .eventbox-card__body {
	order: 0 !important;
}

.eventbox-loop--image-pos-left .eventbox-card--has-thumb,
.eventbox-card--has-thumb[data-eventbox-image-pos="left"] {
	grid-template-columns: var(--eventbox-card-image-side-width, var(--eventbox-loop-thumb-width, 140px)) minmax(0, 1fr) !important;
	grid-template-rows: none !important;
	align-items: center !important;
}

.eventbox-loop--image-pos-right .eventbox-card--has-thumb,
.eventbox-card--has-thumb[data-eventbox-image-pos="right"] {
	grid-template-columns: minmax(0, 1fr) var(--eventbox-card-image-side-width, var(--eventbox-loop-thumb-width, 140px)) !important;
	grid-template-rows: none !important;
	align-items: center !important;
}

.eventbox-loop--image-pos-right .eventbox-card--has-thumb .eventbox-card__image,
.eventbox-card--has-thumb[data-eventbox-image-pos="right"] .eventbox-card__image {
	order: 2 !important;
}

.eventbox-loop--image-pos-right .eventbox-card--has-thumb .eventbox-card__body,
.eventbox-card--has-thumb[data-eventbox-image-pos="right"] .eventbox-card__body {
	order: 1 !important;
}
