/* =========================================================
   Bassworld Eventin Archive
   Scope: Eventin archive / search results (body.bw-etn)
   Card look = the "Event Grid" cards: lime outline, lime title,
   grey text, lime icons, Book Now button.
   ========================================================= */

body.bw-etn {
	--bw-e-accent: #D5FE3C;
	--bw-e-accent-hover: #E3FF6B;
	--bw-e-card: #0d0e10;
	--bw-e-text: #d7d9dd;
	--bw-e-muted: #a3a8b0;
	--bw-e-on-accent: #000000;
	--bw-e-glow: rgba(213, 254, 60, .28);
	--bw-e-pt: 3rem;   /* space above the cards */
	--bw-e-pb: 5rem;   /* space below the cards */
	--bw-e-font: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--bw-e-font-head: 'Unbounded', 'Manrope', system-ui, sans-serif;
}

/* ---------- 1. Make all Eventin text readable (outside the search form) ---------- */
body.bw-etn [class*="etn-"]:not(form):not(form *) {
	color: var(--bw-e-text);
}

/* ---------- 2. Results grid ---------- */
body.bw-etn :is(div, section, ul):has(> :is([class*="etn-col"], li, div) > :is(.etn-event-item, .etn-single-event-item, .etn-event-card, .etn-event-single-item)) {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(280px, 360px));
	justify-content: center;
	gap: 1.75rem;
	align-items: stretch;
	padding: var(--bw-e-pt) 1rem var(--bw-e-pb) !important;
	width: 100%;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}
body.bw-etn [class*="etn-col"]:has(> :is(.etn-event-item, .etn-single-event-item, .etn-event-card, .etn-event-single-item)) {
	float: none !important;
	width: auto !important;
	max-width: none !important;
	flex: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* ---------- 3. Card ---------- */
body.bw-etn :is(.etn-event-item, .etn-single-event-item, .etn-event-card, .etn-event-single-item) {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0 !important;
	padding: 0 !important;
	background: var(--bw-e-card) !important;
	border: 1px solid rgba(213, 254, 60, .55) !important;
	border-radius: 16px !important;
	overflow: hidden;
	box-shadow: 0 0 22px rgba(213, 254, 60, .10);
	box-sizing: border-box;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
body.bw-etn :is(.etn-event-item, .etn-single-event-item, .etn-event-card, .etn-event-single-item):hover {
	transform: translateY(-4px);
	border-color: var(--bw-e-accent) !important;
	box-shadow: 0 0 30px var(--bw-e-glow);
}

/* Nothing inside the card may stretch: the date row and the button follow the text directly */
body.bw-etn :is(.etn-event-item, .etn-single-event-item, .etn-event-card, .etn-event-single-item) > :not(.bw-etn-badges) {
	flex: 0 0 auto !important;
	height: auto !important;
	min-height: 0 !important;
}

/* Any extra row in the card (date / time), whatever its class or markup, sits right under the location */
body.bw-etn :is(.etn-event-item, .etn-single-event-item, .etn-event-card, .etn-event-single-item) > :not(:is(.etn-event-thumb, .etn-event-thumbnail, .etn-event-image, .etn-event-content, .etn-event-details, .bw-etn-badges)) {
	margin: .25rem 0 1.25rem !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	border: 0 !important;
	background: transparent !important;
}
body.bw-etn :is(.etn-event-item, .etn-single-event-item, .etn-event-card, .etn-event-single-item) > :not(:is(.etn-event-thumb, .etn-event-thumbnail, .etn-event-image, .etn-event-content, .etn-event-details, .bw-etn-badges)) > * {
	margin-top: 0 !important;
	padding-top: 0 !important;
}
body.bw-etn :is(.etn-event-item, .etn-single-event-item, .etn-event-card, .etn-event-single-item) {
	justify-content: flex-start !important;
}

/* Image */
body.bw-etn :is(.etn-event-thumb, .etn-event-thumbnail, .etn-event-image) {
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
	overflow: hidden;
}
body.bw-etn :is(.etn-event-thumb, .etn-event-thumbnail, .etn-event-image) img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: 0 !important;
}

/* Content: reorder so it reads  title > text > location > date > button */
body.bw-etn :is(.etn-event-content, .etn-event-details) {
	display: flex;
	flex-direction: column;
	padding: 1.25rem 1.4rem .5rem !important;
	font-family: var(--bw-e-font);
	background: transparent !important;
}
body.bw-etn :is(.etn-event-content, .etn-event-details) > :is(.etn-title, .etn-event-title) { order: 1; }
body.bw-etn :is(.etn-event-content, .etn-event-details) > p                                  { order: 2; }
body.bw-etn :is(.etn-event-content, .etn-event-details) > .etn-event-location                { order: 3; }
body.bw-etn :is(.etn-event-content, .etn-event-details) > :is(.etn-event-footer, .etn-event-meta) { order: 4; }

/* Title: lime, Unbounded. The title link is stretched so the whole card is clickable. */
body.bw-etn :is(.etn-title, .etn-event-title) {
	margin: 0 0 .75rem !important;
	font-family: var(--bw-e-font-head) !important;
	font-size: 1.05rem !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	text-transform: uppercase;
	color: var(--bw-e-accent) !important;
}
body.bw-etn :is(.etn-title, .etn-event-title) a {
	color: var(--bw-e-accent) !important;
	font-family: inherit !important;
	text-decoration: none !important;
	transition: color .2s ease;
}
body.bw-etn :is(.etn-title, .etn-event-title) a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
body.bw-etn :is(.etn-title, .etn-event-title) a:hover {
	color: var(--bw-e-accent-hover) !important;
}

/* Excerpt */
body.bw-etn :is(.etn-event-content, .etn-event-details) > p {
	margin: 0 0 1rem !important;
	color: var(--bw-e-muted) !important;
	font-size: .95rem;
	line-height: 1.6;
}

/* Location (was neon pink and unreadable) */
body.bw-etn .etn-event-location {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin: 0 0 .5rem !important;
	color: var(--bw-e-text) !important;
	font-size: .95rem;
}
body.bw-etn .etn-event-location a {
	color: var(--bw-e-text) !important;
	text-decoration: none;
}

/* Date / time / footer */
body.bw-etn :is(.etn-event-footer, .etn-event-meta) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem 1rem;
	margin: .25rem 0 1.25rem !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--bw-e-text) !important;
	font-size: .95rem;
	font-weight: 400;
}
body.bw-etn :is(.etn-event-footer, .etn-event-meta) * {
	color: var(--bw-e-text) !important;
	background: transparent;
	font-weight: 400;
}

/* Icons: lime */
body.bw-etn :is(.etn-event-content, .etn-event-details, .etn-event-footer) :is(i, svg) {
	color: var(--bw-e-accent) !important;
	fill: currentColor;
}
body.bw-etn :is(.etn-event-content, .etn-event-details, .etn-event-footer) :is(i, svg) * {
	color: var(--bw-e-accent) !important;
}

/* Anything inside the card that is not the image / content (e.g. the date row) gets the same side padding,
   so the date lines up with the text and the icon is no longer cut off */
body.bw-etn :is(.etn-event-item, .etn-single-event-item, .etn-event-card, .etn-event-single-item) > :not(:is(.etn-event-thumb, .etn-event-thumbnail, .etn-event-image, .etn-event-content, .etn-event-details, .bw-etn-badges)) {
	padding-left: 1.4rem !important;
	padding-right: 1.4rem !important;
	box-sizing: border-box;
}

/* "Book now" button: last item of the card (below the date). Decorative: the whole card is the link. */
body.bw-etn :is(.etn-event-item, .etn-single-event-item, .etn-event-card, .etn-event-single-item)::after {
	content: "Book now";
	display: block;
	margin: auto 1.4rem 1.5rem;
	padding: .85rem 1rem;
	text-align: center;
	text-transform: uppercase;
	font-family: var(--bw-e-font);
	font-weight: 800;
	font-size: .85rem;
	letter-spacing: .02em;
	background: var(--bw-e-accent);
	color: var(--bw-e-on-accent);
	border-radius: 10px;
	transition: background-color .2s ease;
}
body.bw-etn :is(.etn-event-item, .etn-single-event-item, .etn-event-card, .etn-event-single-item):hover::after {
	background: var(--bw-e-accent-hover);
}

/* Keyboard focus */
body.bw-etn :is(.etn-title, .etn-event-title) a:focus-visible {
	outline: 2px solid var(--bw-e-accent);
	outline-offset: 4px;
}

/* ---------- 3b. Category chip + price badge on the image ---------- */
body.bw-etn .bw-etn-badges {
	position: absolute;
	top: .75rem;
	left: .75rem;
	right: .75rem;
	z-index: 2;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: .5rem;
	margin: 0 !important;
	padding: 0 !important;
	pointer-events: none; /* clicks go through to the card link */
}
body.bw-etn .bw-etn-chip {
	max-width: 60%;
	padding: .3rem .6rem;
	background: #0b0c0e;
	color: #fff !important;
	border-radius: 4px;
	font-family: var(--bw-e-font);
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .04em;
	line-height: 1.2;
	text-transform: uppercase;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
body.bw-etn .bw-etn-price {
	margin-left: auto;
	padding: .25rem .6rem;
	background: var(--bw-e-accent);
	color: var(--bw-e-on-accent) !important;
	border-radius: 4px;
	font-family: var(--bw-e-font-head);
	font-size: .95rem;
	font-weight: 700;
	line-height: 1.3;
	white-space: nowrap;
}

/* ---------- 4. Search bar is not needed on the archive page ---------- */
body.bw-etn form:has([name="etn_event_location"]):not(:has(.etn-event-item)),
body.bw-etn form:has([name="etn_categorys"]):not(:has(.etn-event-item)),
body.bw-etn .elementor-widget:has([name="etn_event_location"]):not(:has(.etn-event-item)),
body.bw-etn .elementor-widget:has([name="etn_categorys"]):not(:has(.etn-event-item)) {
	display: none !important;
}

/* ---------- 5. Empty results / pagination ---------- */
body.bw-etn .etn-pagination a,
body.bw-etn .page-numbers {
	color: var(--bw-e-text) !important;
}
body.bw-etn .page-numbers.current {
	background: var(--bw-e-accent);
	color: var(--bw-e-on-accent) !important;
	border-radius: 999px;
}

@media (prefers-reduced-motion: reduce) {
	body.bw-etn * {
		transition: none !important;
	}
	body.bw-etn :is(.etn-event-item, .etn-single-event-item, .etn-event-card, .etn-event-single-item):hover {
		transform: none;
	}
}
