/* https://mycolor.space/?hex=%23A22346&sub=1 */
@keyframes bounce {
	0% {
		transform: translate3d(-50%, -10px, 0);
	}
	100% {
		transform: translate3d(-50%, 10px, 0);
	}
}

:root {
	--light: #dfdfdf;
	--lightest: #efefef;
	--dark: #333;
	--notsodark: #666;
	--highlight: #9BDEAC;
	--links: #8F6A19;
	--shadow: #33333355;
	--clean: #A76E88;
	--energetic: #00C9B6;

	--negative: #A22346;
	--neutral: #3B3B7D;
	--positive: #4B9B67;

	--meloni: #65799D;
	--schlein: #B98DA0;
	--overlap: #403b56;
	--shade-schlein: #9E5E8E;
	--shade-meloni: #48548F;
}

* {
	box-sizing: border-box;
}

html, body {
	line-height: 1.5;
	min-height: 100%;
	min-width: 100%;
	position: relative;
}

body {
	background: var(--light);
	background-size: cover;	
	color: var(--dark);
	font-family: 'Roboto Condensed', sans-serif;
	font-size: 18px;
	margin: 0;
	padding: 0;
}

a,
a:visited {
	color: var(--links);
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

strong {
	background: var(--highlight);
	box-shadow: 2px 0 0 0 var(--highlight), -2px 0 0 0 var(--highlight);
	display: inline;
	font-weight: 700;
}

strong.positive {
	background: var(--positive);
	box-shadow: 2px 0 0 0 var(--positive), -2px 0 0 0 var(--positive);
	color: var(--light);
}

strong.negative {
	background: var(--negative);
	box-shadow: 2px 0 0 0 var(--negative), -2px 0 0 0 var(--negative);
	color: var(--light);
}

strong.neutral {
	background: var(--neutral);
	box-shadow: 2px 0 0 0 var(--neutral), -2px 0 0 0 var(--neutral);
	color: var(--light);
}

em {
	box-shadow: inset 0 -10px 0 0 var(--highlight);
}

.add-arrow::after {
	animation-name: bounce;
	animation-duration: 1s;
	animation-iteration-count: infinite;
	animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955);
	animation-direction: alternate;
	bottom: 50px;
	content: '⇣';
	display: block;
	height: 20px;
	left: 50%;
	line-height: 20px;
	position: absolute;
	text-align: center;
	transform: translate3d(-50%, 0, 0);
	width: 20px;
	z-index: 9;
}

.error {
	background: transparent url(/img/negative-clean.webp) top center no-repeat;
	background-size: auto 100px;
	color: var(--negative);
	display: block;
	padding-top: 120px;
}

p {
	font-size: 24px;
	text-align: center;
}

@media screen and (min-width:768px) {
	p {
		font-size: 30px;
	}
}

@media screen and (min-width:1280px) {
	p {
		font-size: 36px;
	}
}

.zero {
	filter: grayscale(.75);
	opacity: .75;
}

h3 {
	font-size: 16px;
	font-weight: 900;
	text-align: center;
	text-transform: uppercase;
	white-space: nowrap;
}

h4 {
	margin: 0;
	font-size: 16px;
	font-weight: 100;
	text-align: center;
	text-transform: uppercase;
	white-space: nowrap;
}

@media screen and (min-width: 768px) {
	h3 {
		font-size: 24px;
	}
}


#footer {
	background: var(--dark);
	border: 0;
	color: var(--light);
	display: block;
	margin-top: 80px;
	padding: 80px 0;
	text-align: left;
	width: auto;
}

#footer strong {
	color: var(--dark);
}

#footer p,
#footer h3,
#footer .cols .col p,
#footer .cols .col h3 {
	font-size: 16px;
	text-align: left;
}

#footer a,
#footer a:link,
#footer a:visited,
#footer a:active,
#footer a:hover {
	color: var(--links);
}

#footer * {
	opacity: 1;
	transition: opacity .5s ease-in-out;
}

#footer .loading {
	opacity: 0;
}

#footer .cols,
#footer .sources {
	display: block;
	margin: 0 20px;
	width: auto;
}

@media screen and (min-width:1024px) {
	#footer .footer-wrapper {
		margin: 0 auto;
		max-width: 960px;
	}

	#footer .sources {
		margin: 0;
	}

	#footer .cols {
		display: flex;
		margin: 0 -20px;
	}

	#footer .col.legal {
		flex: 0 0 70%;
		padding: 0 20px;
	} 

	#footer .col.corporate {
		flex: 0 0 30%;
		padding: 0 20px;
	}
}

/* D3 Generated Charts props */

.chart--header {
	font-weight: 900;
	text-transform: uppercase;
}

.points--label,
.grid--annotation,
.axis--label {
	fill: var(--dark);
	font-family: 'Fira Mono', monospace;
	font-size: 10px;
	font-weight: 500;
	stroke: none;
	text-transform: uppercase;
}

/* Selected bullet */

circle.selected {
	fill: var(--energetic) !important;
	opacity: 1 !important;
}

/* Cards */ 

.card .description p {
	font-size: 16px;
	margin: 0;
	text-align: left;
}

@media screen and (min-width:768px) {
	.card .description p {
		font-size: 18px;
	}
}

@media screen and (min-width:1024px) {
	.card .description p {
		font-size: 18px;
	}
}

/* Tooltip */
.tooltip {
	background: var(--energetic);
	border-radius: 3px;
	box-shadow: 0 0 20px 0 var(--light);
	color: var(--lightest);
	display: none;
	font-family: 'Fira Mono', monospace;
	font-size: 11px;
	font-weight: 500;
	height: auto;
	max-width: 200px;
	min-width: 100px;
	padding: 10px;
	position: absolute;
	text-transform: uppercase;
	width: auto;
	z-index: 3;
}

.tooltip strong {
	background: none;
	border-bottom: 1px solid var(--lightest);
	box-shadow: none;
	display: block;
	font-weight: 700;
	margin-bottom: 10px;
	padding-bottom: 10px;
}

.tooltip.right,
.tooltip.left {
	display: block;
}

.tooltip.left {
	transform: translate3d(-100%, 5px, 0);
}

.tooltip.right {
	transform: translate3d(0, 5px, 0);
}

.tooltip::after {
	border-bottom: 5px solid var(--energetic);
	border-left: 5px solid transparent;
	border-right: 5px solid transparent;
	bottom: 100%;
	content: '';
	height: 0;
	left: 0;
	position: absolute;
	width: 0; 
}

.tooltip.left::after {
	left: auto;
	right: 0;
}