:root {
	--lmn-black: #000000;
	--lmn-cream: #fcf4ea;
	--lmn-cream-light: #fcfbfa;
	--lmn-gold: #e59738;
	--lmn-light-gray: #bfccde;
	--lmn-gray: #555b63;
	--lmn-pale: #e6bf91;
	--lmn-navy: #3c4c63;
	--lmn-navy-active: #0c6cf2;
	--lmn-red: #ef3b28;
	--lmn-white: #ffffff;

	/* TODO: Legacy colors - discard. */
	--lmn-background: #fcfcfc;
	--lmn-bg-gray: #f5f5f5;

	--lmn-size-static-line: 2px;
	--lmn-size-static-thick-line: 3px;
	--lmn-size-thin-line: 0.0625em;
	--lmn-size-line: 0.125em;
	--lmn-size-thick-line: 0.1875em;
	--lmn-size-xs: 0.25em;
	--lmn-size-s: 0.5em;
	--lmn-size-label: 0.8875em;
	--lmn-size-m: 1em;
	--lmn-size-l: 1.5em;
	--lmn-size-xl: 2em;
}

button.lmn-button {
	background: none;
	color: inherit;
	border: none;
	font: inherit;
	cursor: pointer;
	width: 100%;
	text-align: inherit;
}

button.lmn-button:focus {
	outline: var(--lmn-size-thick-line) solid var(--lmn-navy-active);
	background-color: var(--lmn-white);
	z-index: 10;
}

.lmn-container {
	background-color: var(--lmn-background);
	padding: var(--lmn-size-m) 0;
}

/* Headers */
.lmn-header {
	color: var(--lmn-navy);
}

.lmn-header h3 {
	font-size: var(--lmn-size-m);
	font-weight: bold;
	margin: 0;
}

/* Collaspible controls */
button.lmn-filter-active {
	background-color: var(--lmn-gold);
	color: var(--lmn-white);
	font-weight: bold;
}

button.lmn-filter:focus {
	/* background-color: var(--lmn-pale); */
	z-index: 0;
}

button.lmn-filter-active:focus {
	background-color: var(--lmn-gold);
	z-index: 0;
}

button.lmn-filter-inactive {
	background-color: var(--lmn-light-gray);
}

.lmn-flipped {
	-webkit-transform: rotate(180deg);
	-moz-transform: rotate(180deg);
	transform: rotate(180deg);
}

.lmn-collapsible-indicator-container {
	display: flex;
	align-items: center;
}

.lmn-collapsible-indicator > img {
	max-width: 2em;
}

.lmn-collapsible {
	cursor: pointer;
	user-select: none;
}

.lmn-card-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.lmn-filter-box-card-container {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
}

.lmn-filter-box-card {
	font-size: var(--lmn-size-label);
	width: 100%;
	margin: var(--lmn-size-s);
}

.lmn-filter-box {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.lmn-filter-box-container {
	border: var(--lmn-size-line) solid var(--lmn-navy);
}

.lmn-filter-box-card button {
	border: none;
	outline: var(--lmn-size-static-line) solid var(--lmn-black);
	padding: var(--lmn-size-s);
	width: 100%;
}

.lmn-filter-box-card button:focus {
	outline: var(--lmn-size-static-thick-line) solid var(--lmn-navy-active);
}

.lmn-event-divider-header {
	background-color: var(--lmn-navy);
	padding: var(--lmn-size-s);
	padding-left: var(--lmn-size-m);
}

.lmn-event-divider-header h3 {
	font-weight: bold;
	color: var(--lmn-white);
	margin: 0;
}

.lmn-event-card {
	background-color: var(--lmn-background);
	border-bottom: var(--lmn-size-line) solid var(--lmn-navy);
	border-left: var(--lmn-size-line) solid var(--lmn-navy);
	border-right: var(--lmn-size-line) solid var(--lmn-navy);
}

.lmn-event-label-list {
	display: flex;
	flex-direction: column;
	font-size: var(--lmn-size-label);
	padding: 0;
	margin: 0;
}

.lmn-container .lmn-event-label-list li {
	list-style-type: none;
	padding-right: var(--lmn-size-xs);
	margin: 0;
}

/* :P https://stackoverflow.com/a/49305511 */
img.lmn-event-thumbnail {
	object-fit: cover;
	border-radius: 50%;
	height: 6em;
	width: 6em;
	min-width: 6em;
	outline: var(--lmn-size-line) solid var(--lmn-navy);
	margin-bottom: var(--lmn-size-m);
}

.lmn-event-card-content {
	display: flex;
	align-items: center;
	flex-direction: column;
	margin: 0;
}

@media (min-width: 600px) {
	img.lmn-event-thumbnail {
		margin-left: var(--lmn-size-s);
		margin-bottom: 0;
	}

	.lmn-event-card-content {
		flex-direction: row;
	}

	.lmn-filter-box-card {
		max-width: 11em;
	}

	.lmn-event-label-list {
		flex-direction: row;
	}

	.lmn-event-label-list li:not(:first-child) {
		border-left: var(--lmn-size-thin-line) solid var(--lmn-navy);
		padding-left: var(--lmn-size-xs);
	}
}

.lmn-event-card-container {
	display: flex;
	flex-direction: column;
	background-color: var(--lmn-bg-gray);
}

.lmn-collapsible-content {
	border-top: var(--lmn-size-line) dashed var(--lmn-navy);
}

.lmn-event-card-sessions-title {
	margin: 0;
	font-weight: bold;
}

.lmn-event-card-sessions-list {
	margin: 0;
}

.lmn-event-ticket-classes {
	font-weight: bold;
}

.lmn-event-ticket-classes span:not(:first-child) {
	border-left: var(--lmn-size-thin-line) solid var(--lmn-navy);
	padding-left: var(--lmn-size-xs);
	margin-left: var(--lmn-size-xs);
}

/* Spacing utilities */
.lmn-space-below-s {
	margin-bottom: var(--lmn-size-s);
}

.lmn-space-below-m {
	margin-bottom: var(--lmn-size-m);
}

.lmn-space-below-l {
	margin-bottom: var(--lmn-size-l);
}

.lmn-space-above-s {
	margin-top: var(--lmn-size-s);
}

.lmn-space-above-m {
	margin-top: var(--lmn-size-m);
}

.lmn-space-right-m {
	margin-right: var(--lmn-size-m);
}

.lmn-padding-around-m {
	padding: var(--lmn-size-m);
}

.lmn-warning-label {
	color: var(--lmn-red);
	white-space: pre;
}

.lmn-strikethrough {
	text-decoration: line-through;
}

.hidden {
	display: none;
}
