/* {{{ Fancy lists */
ol.fancy {
	counter-reset: ol-fancy-counter;
	padding: 0;
	margin: 2em auto;
	display: flex;
	flex-direction: column;
	list-style-type: none;

	font-size: 150%;
}

ol.fancy > li {
	position: relative;
	z-index: 1;

	width: 50%;

	text-align: right;

	min-height: 4em;

	padding: 0.75em 2.5em 0 0;
	box-sizing: border-box;
}

ol.fancy > li:nth-child(2n) {
	border-width: 0 0 0 2px;
	padding: 0.75em 0 0 2.5em;
	align-self: flex-end;
	text-align: left;
}

ol.fancy > li:last-child {
	border-width: 0;
}

ol.fancy > li::before {
	content: '';

	position: absolute;

	top: 0;
	left: auto;
	right: -1px;
	bottom: 0;

	width: 2px;

	background-color: var(--color-grey);
}

ol.fancy > li:nth-child(2n)::before {
	left: -1px;
	right: auto;
}

ol.fancy > li:last-child::before {
	display: none;
}

ol.fancy > li::after {
	content: counter(ol-fancy-counter);
	counter-increment: ol-fancy-counter;

	font-size: 150%;

	position: absolute;
	top: 0;
	right: -0.75em;

	display: block;

	width: 1.5em;
	line-height: 1.5em;
	text-align: center;

	border-radius: 50%;

	cursor: default;

	color: white;
	background-color: var(--color-grey);

	box-sizing: border-box;

	transition: all .3s ease-in-out;
}

ol.fancy > li:first-child::after,
ol.fancy > li:last-child::after {
	background-color: var(--color-bright-green);
}

ol.fancy > li:nth-child(2n)::after {
	left: -0.75em;
	right: auto;
}

ul.fancy li {
	list-style: '\2713\0020';
}

ul.fancy li::marker {
	font-size: 150%;
	font-weight: bold;
	color: var(--color-bright-green);
}
/* }}}
/* {{{ Inline popup */
.popup {
	position: relative;
	display: inline-block;
	cursor: help;
}

.popup > strong {
	color: var(--color-bright-green);
}

.popup > span.popup-content {
	position: absolute;

	top: 100%;
	left: 0;

	margin-top: 2rem;

	pointer-events: none;
	opacity: 0;

	z-index: 1;

	white-space: nowrap;

	color: black;
	background-color: var(--color-pale-green);
	padding: 1em;
	box-shadow: 0 0 0.5rem rgba(0,0,0,0.25);

	transition: all .5s .4s ease-in-out;
}

.popup > span.popup-content::before {
	position: absolute;
	content: '';

	width: 0;
	height: 0;

	border-width: 0.5rem;
	border-style: solid;
	border-top-color: transparent;
	border-left-color: transparent;
	border-right-color: transparent;
	border-bottom-color: var(--color-pale-green);

	bottom: 100%;
	left: 0.5rem;

}

.popup:hover > span.popup-content {
	transition: all .4s ease-in-out;

	margin-top: 0.5rem;
	pointer-events: all;
	opacity: 1;
}
/* }}} */
/* {{{ dropdown menus */

.dropdown-menu .responsivemenu-wrapper ul > li.menu-item--expanded > span::after {
	content: '';
	display: inline-block;
	vertical-align: middle;
	margin: 0.375em 0 0 0.1875em;
	width: 0;
	height: 0;
	border-width: 0.375em;
	border-style: solid;
	border-top-color: inherit;
	border-right-color: transparent;
	border-bottom-color: transparent;
	border-left-color: transparent;

	transition: all .2s ease-in-out;
}

.dropdown-menu .responsivemenu-wrapper ul > li.menu-item--expanded:hover > span::after,
.dropdown-menu .responsivemenu-wrapper ul > li.menu-item--expanded > span.responsivemenu-fold-toggle-active::after {
	transform: rotate(180deg) translateY(0.375em);
}

/* }}} */
