/*
 * Eventin directory: [eventin_directory] listing + "Events by" profile section.
 * Follows the Eventin admin design language; inherits the theme's font.
 * The accent is the site's Eventin primary colour (Eventin purple by default).
 */
.etn-directory,
.etn-person-events {
	--etn-dir-accent: #6b2ee5;
	--etn-dir-accent-deep: color-mix(in srgb, var(--etn-dir-accent) 82%, #000);
	--etn-dir-tint: color-mix(in srgb, var(--etn-dir-accent) 10%, #fff);
	--etn-dir-ink: #020617;
	--etn-dir-text: #41454f;
	--etn-dir-label: #373360;
	--etn-dir-muted: #8a8fa3;
	--etn-dir-line: #d9dde3;
	--etn-dir-line-soft: #edeff3;
	--etn-dir-grey: #f1f2f6;
	--etn-dir-card: #fff;
	--etn-dir-shadow: 0 1px 2px rgba(2, 6, 23, 0.05), 0 6px 18px rgba(2, 6, 23, 0.06);
	color: var(--etn-dir-text);
	font-size: 15px;
	line-height: 1.5;
}

.etn-directory *,
.etn-person-events * {
	box-sizing: border-box;
}

/* Themes underline content links with selectors as specific as ours; two classes win. */
.etn-directory .etn-directory__showing a,
.etn-directory .etn-directory__empty a,
.etn-directory .etn-directory__pages a,
.etn-directory .etn-card__name a,
.etn-person-events .etn-person-events__head a,
.etn-person-events .etn-person-events__card a {
	text-decoration: none;
	box-shadow: none;
}

.etn-directory :focus-visible,
.etn-person-events :focus-visible {
	outline: 2px solid var(--etn-dir-accent);
	outline-offset: 2px;
}

.etn-directory .screen-reader-text,
.etn-person-events .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ---------- filter panel ---------- */
/* Flex, not grid: the category and location selects only exist when there is data. */
.etn-directory__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	margin: 0 0 22px;
	padding: 16px;
	border: 1px solid var(--etn-dir-line);
	border-radius: 10px;
	background: var(--etn-dir-card);
	box-shadow: var(--etn-dir-shadow);
}

.etn-directory__field {
	position: relative;
	display: block;
	flex: 1 1 170px;
	margin: 0;
	min-width: 0;
}

.etn-directory__field--search {
	flex: 1.6 1 240px;
}

.etn-directory__field--search svg {
	position: absolute;
	top: 50%;
	left: 13px;
	margin-top: -9px;
	color: var(--etn-dir-muted);
	pointer-events: none;
}

.etn-directory .etn-directory__field input,
.etn-directory .etn-directory__field select {
	width: 100%;
	height: 44px;
	margin: 0;
	padding: 0 13px;
	border: 1px solid var(--etn-dir-line);
	border-radius: 6px;
	background-color: var(--etn-dir-card);
	box-shadow: none;
	color: var(--etn-dir-label);
	font: inherit;
	font-size: 14px;
	font-weight: 500;
}

.etn-directory .etn-directory__field--search input {
	padding-left: 40px;
	font-weight: 400;
}

.etn-directory .etn-directory__field input::placeholder {
	color: var(--etn-dir-muted);
}

.etn-directory .etn-directory__field input:focus,
.etn-directory .etn-directory__field select:focus {
	border-color: var(--etn-dir-accent);
	outline: none;
	box-shadow: 0 0 0 3px var(--etn-dir-tint);
}

.etn-directory .etn-directory__field select {
	appearance: none;
	padding-right: 34px;
	background: var(--etn-dir-card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5' fill='none' stroke='%238a8fa3' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 13px center;
	cursor: pointer;
}

/* "Upcoming events only" toggle. */
.etn-directory__check {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 44px;
	margin: 0;
	padding: 0 13px;
	border: 1px solid var(--etn-dir-line);
	border-radius: 6px;
	color: var(--etn-dir-label);
	font-size: 14px;
	font-weight: 500;
	white-space: nowrap;
	cursor: pointer;
}

.etn-directory .etn-directory__check input {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--etn-dir-accent);
}

.etn-directory__check:focus-within {
	border-color: var(--etn-dir-accent);
	box-shadow: 0 0 0 3px var(--etn-dir-tint);
}

/* All / Organizers / Speakers segmented switch. */
.etn-directory .etn-directory__switch {
	display: flex;
	height: 44px;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--etn-dir-line);
	border-radius: 6px;
	min-width: 0;
}

.etn-directory__switch label {
	position: relative;
	display: flex;
	margin: 0;
	cursor: pointer;
}

.etn-directory__switch label + label {
	border-left: 1px solid var(--etn-dir-line);
}

.etn-directory__switch input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.etn-directory__switch span {
	display: flex;
	align-items: center;
	padding: 0 16px;
	color: var(--etn-dir-text);
	font-size: 13.5px;
	white-space: nowrap;
}

.etn-directory__switch input:checked + span {
	background: var(--etn-dir-accent);
	color: #fff;
	font-weight: 500;
}

.etn-directory__switch input:focus-visible + span {
	outline: 2px solid var(--etn-dir-accent);
	outline-offset: -4px;
}

.etn-directory .etn-directory__submit {
	height: 44px;
	margin: 0;
	padding: 0 22px;
	border: 0;
	border-radius: 6px;
	background: var(--etn-dir-accent);
	color: #fff;
	font: inherit;
	font-size: 14px;
	font-weight: 500;
	line-height: 44px;
	cursor: pointer;
}

.etn-directory .etn-directory__submit:hover {
	background: var(--etn-dir-accent-deep);
}

/* ---------- result line ---------- */
.etn-directory__result {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 6px 16px;
	margin: 0 0 14px;
}

.etn-directory__count {
	margin: 0;
	color: var(--etn-dir-label);
	font-size: 15px;
	font-weight: 600;
}

.etn-directory__showing {
	margin: 0;
	color: var(--etn-dir-muted);
	font-size: 13px;
}

.etn-directory .etn-directory__showing a {
	margin-left: 10px;
	color: var(--etn-dir-accent);
	font-weight: 600;
}

/* ---------- empty ---------- */
.etn-directory__empty,
.etn-person-events__empty {
	margin: 0;
	padding: 48px 24px;
	border: 1px dashed var(--etn-dir-line);
	border-radius: 10px;
	background: #fafafc;
	color: var(--etn-dir-muted);
	text-align: center;
}

.etn-directory__empty p {
	margin: 0 0 8px;
	color: var(--etn-dir-label);
	font-weight: 500;
}

.etn-directory .etn-directory__empty a {
	color: var(--etn-dir-accent);
	font-weight: 600;
}

/* ---------- cards ---------- */
.etn-directory ul.etn-directory__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* columns="N" on the shortcode or block; phones and tablets keep the automatic grid. */
.etn-directory ul.etn-directory__grid--cols {
	grid-template-columns: repeat(var(--etn-dir-cols), minmax(0, 1fr));
}

.etn-card {
	position: relative;
	display: flex;
	flex-direction: column;
	margin: 0;
	overflow: hidden;
	border: 1px solid var(--etn-dir-line);
	border-radius: 10px;
	background: var(--etn-dir-card);
	transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.etn-card:hover,
.etn-card:focus-within {
	border-color: color-mix(in srgb, var(--etn-dir-accent) 35%, #fff);
	box-shadow: var(--etn-dir-shadow);
}

.etn-card__cover {
	display: block;
	height: 76px;
	background: linear-gradient(120deg, var(--etn-card-from), var(--etn-card-to));
}

/* Six cover colours, stable per person, matching the Eventin palette. */
.etn-card--tone-0 { --etn-card-from: #6b2ee5; --etn-card-to: #a46bff; --etn-card-solid: #5700d1; }
.etn-card--tone-1 { --etn-card-from: #0ea5a4; --etn-card-to: #5ee0c8; --etn-card-solid: #0e8f8e; }
.etn-card--tone-2 { --etn-card-from: #f79009; --etn-card-to: #ffc46b; --etn-card-solid: #b54708; }
.etn-card--tone-3 { --etn-card-from: #dc2678; --etn-card-to: #ff87b6; --etn-card-solid: #a3155a; }
.etn-card--tone-4 { --etn-card-from: #2563eb; --etn-card-to: #7ba6ff; --etn-card-solid: #1d4ed8; }
.etn-card--tone-5 { --etn-card-from: #0f766e; --etn-card-to: #48c6bb; --etn-card-solid: #0b554f; }

.etn-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	margin-top: -30px;
	padding: 0 18px 18px;
}

.etn-card__avatar {
	position: relative;
	display: block;
	width: 60px;
	height: 60px;
	border: 3px solid var(--etn-dir-card);
	border-radius: 14px;
	background: var(--etn-dir-card);
	box-shadow: var(--etn-dir-shadow);
	object-fit: cover;
}

.etn-card__avatar--initials {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--etn-card-solid);
	color: #fff;
	font-size: 20px;
	font-weight: 700;
	line-height: 1;
}

.etn-directory .etn-card__name {
	margin: 12px 0 3px;
	color: var(--etn-dir-ink);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.3;
}

.etn-directory .etn-card__name a {
	color: var(--etn-dir-ink);
}

/* The name link covers the whole card, so any click opens the profile. */
.etn-directory .etn-card__name a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.etn-card:hover .etn-card__name a {
	color: var(--etn-dir-accent);
}

.etn-card__tagline {
	min-height: 1.5em;
	margin: 0 0 11px;
	color: #6b7080;
	font-size: 13px;
	line-height: 1.5;
}

.etn-card__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin: 0 0 13px;
}

.etn-card__chip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 11px;
	border-radius: 99px;
	background: var(--etn-dir-tint);
	color: var(--etn-dir-accent-deep);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
}

.etn-card__chip--grey {
	background: var(--etn-dir-grey);
	color: #5c6274;
}

/* Links inside the card sit above the whole-card profile link. */
.etn-card__next,
.etn-card__social {
	position: relative;
	z-index: 2;
}

.etn-card__next {
	display: flex;
	gap: 8px;
	align-items: baseline;
	margin: 0 0 12px;
	font-size: 13px;
	line-height: 1.45;
}

.etn-card__next > span {
	flex: none;
	color: var(--etn-dir-muted);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.etn-directory .etn-card__next a {
	min-width: 0;
	overflow: hidden;
	color: var(--etn-dir-text);
	font-weight: 500;
	text-decoration: none;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.etn-card__next time {
	margin-right: 4px;
	color: var(--etn-dir-accent);
	font-weight: 600;
}

.etn-directory .etn-card__next a:hover {
	color: var(--etn-dir-accent);
}

.etn-card__social {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 12px;
}

.etn-directory .etn-card__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--etn-dir-grey);
	color: #5c6274;
	text-decoration: none;
	box-shadow: none;
}

.etn-directory .etn-card__social a:hover,
.etn-directory .etn-card__social a:focus-visible {
	background: var(--etn-dir-tint);
	color: var(--etn-dir-accent);
}

.etn-card__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin: auto 0 0;
	padding-top: 12px;
	border-top: 1px solid var(--etn-dir-line-soft);
	color: var(--etn-dir-text);
	font-size: 13px;
	font-weight: 500;
}

.etn-card__foot b {
	color: var(--etn-dir-accent-deep);
	font-weight: 700;
}

.etn-card__view {
	color: var(--etn-dir-accent);
	font-weight: 600;
}

/* ---------- pagination ---------- */
.etn-directory__pages {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 28px 0 0;
}

.etn-directory .etn-directory__pages .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 10px;
	border: 1px solid var(--etn-dir-line);
	border-radius: 6px;
	background: var(--etn-dir-card);
	color: var(--etn-dir-label);
	font-size: 14px;
	font-weight: 500;
}

.etn-directory .etn-directory__pages a.page-numbers:hover {
	border-color: var(--etn-dir-accent);
	color: var(--etn-dir-accent);
}

.etn-directory .etn-directory__pages .page-numbers.current {
	border-color: var(--etn-dir-accent);
	background: var(--etn-dir-accent);
	color: #fff;
}

.etn-directory .etn-directory__pages .page-numbers.dots {
	min-width: 0;
	padding: 0 4px;
	border-color: transparent;
	background: none;
}

/* ---------- profile "Events by" ---------- */
.etn-person-events {
	clear: both;
	padding: 48px 0;
}

.etn-person-events__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

.etn-person-events__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 4px;
}

.etn-person-events .etn-person-events__head h2 {
	margin: 0;
	color: var(--etn-dir-ink);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.3;
}

.etn-person-events .etn-person-events__head a {
	color: var(--etn-dir-accent);
	font-size: 14px;
	font-weight: 600;
}

.etn-person-events .etn-person-events__label {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 22px 0 12px;
	color: var(--etn-dir-label);
	font-size: 15px;
	font-weight: 600;
}

.etn-person-events__num {
	padding: 0 8px;
	border-radius: 99px;
	background: var(--etn-dir-tint);
	color: var(--etn-dir-accent-deep);
	font-size: 12px;
	font-weight: 600;
	line-height: 22px;
}

.etn-person-events ul.etn-person-events__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.etn-person-events__card {
	margin: 0;
}

.etn-person-events .etn-person-events__card a {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--etn-dir-line);
	border-radius: 10px;
	background: var(--etn-dir-card);
	color: var(--etn-dir-ink);
	transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.etn-person-events .etn-person-events__card a:hover {
	border-color: color-mix(in srgb, var(--etn-dir-accent) 35%, #fff);
	box-shadow: var(--etn-dir-shadow);
}

.etn-person-events__media {
	display: block;
	aspect-ratio: 16 / 9;
	background: linear-gradient(135deg, #ede4ff, #d9c7ff);
}

.etn-person-events__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.etn-person-events__body {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 13px 14px 15px;
}

.etn-person-events__date {
	color: var(--etn-dir-accent);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.etn-person-events__title {
	color: var(--etn-dir-ink);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.35;
}

.etn-person-events .etn-person-events__card a:hover .etn-person-events__title {
	color: var(--etn-dir-accent);
}

.etn-person-events__place {
	color: var(--etn-dir-muted);
	font-size: 13px;
}

.etn-person-events__grid--past .etn-person-events__media {
	filter: grayscale(0.6);
}

/* ---------- smaller screens ---------- */
@media (max-width: 1024px) {
	.etn-directory ul.etn-directory__grid--cols {
		grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	}

	.etn-directory__field--search,
	.etn-directory .etn-directory__switch {
		flex-basis: 100%;
	}

	.etn-directory__switch label {
		flex: 1 1 0;
	}

	.etn-directory__switch span {
		justify-content: center;
		width: 100%;
	}
}

@media (max-width: 600px) {
	.etn-directory__field,
	.etn-directory__check,
	.etn-directory .etn-directory__submit {
		flex-basis: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.etn-card,
	.etn-person-events .etn-person-events__card a {
		transition: none;
	}
}
