:root {
	font-size: 13px;
}

html,
body {
	background: white;
	font-family: var(--font-family);
	font-weight: 300;
	letter-spacing: 0;
	padding: 0;
	margin: 0;
	width: 100%;
	color: var(--black);
	overflow-x: hidden;
}
html.lock,
body.lock {
	overflow: hidden;
}

body:not(.index) {
	margin-top: 52px;
}

@media(min-width: 768px) {
	:root {
		font-size: 14px;
	}
	
	body:not(.index) {
		margin-top: 62px;
	}
}

@media(min-width: 992px) {
	:root {
		font-size: 16px;
	}

	body:not(.index) {
		margin-top: 108px;
	}
}


a, a:hover, a:focus,
button, button:hover, button:focus {
	transition: all ease-in-out .2s;
	-moz-transition: all ease-in-out .2s;
	-webkit-transition: all ease-in-out .2s;
	text-decoration: none;
	cursor: pointer;
	color: currentColor;
	outline: none;
	box-shadow: none;
}
*:focus {
	outline: none;
	box-shadow: none;
}
*::placeholder, *::-webkit-placeholder {
	color: currentColor;
}
*:-ms-input-placeholder {
	color: currentColor;
}


.container,
.container-fluid {
	position: relative;
	width: 100%;
	padding: 0 20px;
}
.container.container-full {
	max-width: 1340px; /* Layouts' fullscreen */
}

@media(min-width: 1200px) {
	.container {
		max-width: 1094px; /* 1054 + 40 padding */
	}
	
	.container.container-sm {
		max-width: 930px; /* 890 + 40 padding */
	}
}


/*************************************/
/********** BUTTONS / LINKS **********/
/*************************************/

.button,
.button:hover,
.button:focus {
	display: inline-block;
    padding: 20px 30px;
	font-size: 12px;
	font-weight: bold;
    color: white;
	line-height: 1;
	text-transform: uppercase;
    position: relative;
	margin: 0;
	transition: var(--transition);
}
.button[disabled] {
	opacity: 0.5;
	pointer-events: none;
}

.button::before,
.button::after {
	content: "";
	position: absolute;
	top: 0;bottom: 0;
	left: 0;right: 0;
	transition: inherit;
	pointer-events: none;
}
.button::before {
	background: linear-gradient(to left, var(--purple) 0%, var(--blue) 100%);
}
.button::after {
	background-color: var(--lightpurple);
	opacity: 0;
}
.button:hover::after,
.button:focus::after {
	opacity: 1;
}

.button > span {
	position: relative;
	z-index: 2;
	font-size: inherit !important;
	color: inherit !important;
}


@media(min-width: 768px) {
    .button,
	.button:hover,
	.button:focus {
		padding: 23px 40px;
	}
}

@media(min-width: 992px) {
    .button,
	.button:hover,
	.button:focus {
		padding: 26px 50px;
	}
}


.link,
.link:hover,
.link:focus {
	display: inline-block;
	position: relative;
	font-size: 12px;
	font-weight: bold;
	color: var(--purple);
	text-transform: uppercase;
	padding-right: 40px;
}
.link.link-reverse {
	padding-right: 0;
	padding-left: 35px;
}

.link::after {
	content: "";
	width: 24px;
	height: 13px;
	position: absolute;
	top: 0;bottom: 0;
	right: 0;
	margin: auto;
	background-image: url(/assets/img/arrow-link-purple.svg);
	background-size: cover;
	background-position: 100%;
	transition: var(--transition);
}
.link.link-reverse::after {
	right: auto;
	left: 0;
	transform: rotate(180deg);
}
.link:hover::after,
.link:focus::after {
	background-position: -100%;
}


/****************************/
/********** HEADER **********/
/****************************/

header {
	position: fixed;
	top: 0;left: 0;
	width: 100%;
	font-size: 0;
	display: flex;
	align-items: center;
	z-index: 10;
	padding-right: 20px;
}
header.open {
	z-index: 12;
	transition: none;
}

header span.bg {
	position: absolute;
	top: 0;bottom: 0;
	left: 0;right: 0;
	background: linear-gradient(to right, var(--blue) 0%, var(--purple) 100%);
}
body.index header span.bg {
	opacity: 0;
}
header span.bg ~ * {
	position: relative;
}

header .logo {
	width: 200px;
	padding: 17px 20px;
	z-index: 1;
}

/********** MENU TOGGLE **********/

header .menu-toggle {
	width: 32px;
	height: 14px;
	margin-left: auto;
	z-index: 1;
}
header .menu-toggle span {
    position: absolute;
	top: 0;bottom: 0;
	margin: auto;
    width: 100%;
    height: 2px;
    background-color: white;
	transition: var(--transition);
}
header .menu-toggle span:first-child {
    transform: translateY(-6px);
}
header .menu-toggle span:last-child {
    transform: translateY(6px);
}
header.open .menu-toggle span:first-child {
	transform: rotate(45deg);
}
header.open .menu-toggle span:last-child {
	transform: rotate(-45deg);
}


/********** MENU **********/

header ul.menu {
	position: fixed;
	top: 0;left: 0;
	width: 100%;
	height: 100%;
	padding: 0;
	margin: 0;
	background: linear-gradient(to right, var(--blue) 0%, var(--purple) 100%);
	list-style: none;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	font-size: 0;
	transform: translateX(100%);
	transition: var(--transition);
}
header.open ul.menu {
	transform: translateX(0);
}

header ul.menu li {
    display: inline-block;
}
header ul.menu li.sub {
	position: relative;
}

header ul.menu li h2 {
	font-size: 1.85rem;
	font-weight: 400;
	color: white;
	line-height: 1.25;
	margin: 0;
}
header ul.menu li h2 a {
	display: inline-block;
	padding: 20px;
}
header ul.menu li:hover h2 a,
header ul.menu li:focus h2 a {
	background-color: rgba(255, 255, 255, .07);
}

header ul.menu li h3 {
	font-size: 1.1rem;
	font-weight: 400;
	color: #c6c6c6;
	margin: 0;
}
header ul.menu li h3 a {
	display: inline-block;
	padding: 13px 0;
}
header ul.menu li h3 a:hover,
header ul.menu li h3 a:focus {
	color: white;
}

header ul.menu li.sub ul {
	margin: 0;
	padding: 0;
	padding-bottom: 10px;
	text-align: center;
}
header ul.menu li.sub ul li {
	display: block;
}


@media(min-width: 768px) {
	header {
		padding-right: 30px;
	}
	header .logo {
		width: 260px;
		padding: 20px 30px;
	}
}

@media(min-width: 992px) {
	header .logo {
		width: 378px;
		padding: 38px 50px;
	}

	header .menu-toggle {
		display: none;
	}

	header ul.menu {
		background: transparent;
		position: relative;
		transform: none;
		width: auto;
		height: auto;
		display: block;
		margin-left: auto;
	}
	header ul.menu li h2 {
		font-size: 1rem;
	}
	header ul.menu li h2 a {
		padding: 44px 20px;
	}
	header ul.menu li h3 {
		color: #8e8d8d;
		font-size: .875rem;
	}
	header ul.menu li h3 a {
		padding: 10px 0;
	}

	header ul.menu li.sub ul {
		position: absolute;
		top: 100%;
		left: 0;
		min-width: 100%;
		padding: 20px 25px;
		background-color: var(--black);
		opacity: 0;
		pointer-events: none;
		transition: var(--transition);
	}
	header ul.menu li.sub:hover ul,
	header ul.menu li.sub:focus ul {
		opacity: 1;
		pointer-events: auto;
	}
}


/****************************/
/********** FOOTER **********/
/****************************/

footer {
	padding: 65px 0;
	background-color: var(--black);
}

/********** FOOTER UPPER **********/

footer .upper {
	display: flex;
	flex-direction: column-reverse;
	align-items: center;
}

footer .upper p {
	font-size: 1.125rem;
	font-weight: 400;
	color: white;
	line-height: 1;
	margin: 0;
}
footer .upper p + p {
	margin-bottom: 40px;
}
footer .upper p a {
	padding-bottom: 4px;
	border-bottom: 1px solid transparent;
}
footer .upper p a:hover,
footer .upper p a:focus {
	border-bottom: 1px solid var(--lightgrey);
}

/********** FOOTER LOWER **********/

footer .lower {
	margin-top: 25px;
	font-size: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
}

footer .lower a {
	display: inline-block;
	font-size: 13px;
	font-weight: 400;
	color: var(--lightgrey);
	line-height: 1;
}
footer .lower a:hover,
footer .lower a:focus {
	color: white;
}
footer .lower a + a {
	margin-top: 20px;
}


@media(min-width: 768px) {
	footer {
		padding: 75px 0 70px;
	}
}

@media(min-width: 992px) {
	footer .upper {
		display: flex;
		flex-direction: initial;
		align-items: initial;
	}
	footer .upper p + p {
		margin-bottom: 0;
		margin-left: auto;
	}

	footer .lower {
		display: block;
	}
	footer .lower a + a {
		margin-top: 0;
		margin-left: 20px;
	}	
}


/*****************************************/
/********** CONTENT PAGE BANNER **********/
/*****************************************/

.content {
	position: relative;
	min-height: calc(100vh - 52px - 335px);
}

.content .banner {
	position: relative;
	padding: 70px 0 60px;
	text-align: center;
}
.content .banner::before,
.content.page404::before {
	content: "";
	position: absolute;
	top: 0;bottom: 0;
	left: 0;right: 0;
	background: linear-gradient(to right, var(--blue) 0%, var(--purple) 100%);
	opacity: .15;
}

.content .banner ul {
	margin: 0;
	padding: 0;
	margin-bottom: 10px;
	list-style: none;
	font-family: var(--font-family2);
	font-size: 14px;
	font-weight: 400;
	color: var(--black);
}
.content .banner ul li {
	display: inline-block;
}
.content .banner ul li a.disabled {
	pointer-events: none;
}
.content .banner ul li a:hover,
.content .banner ul li a:focus {
	color: var(--purple);
}

.content .banner h1 {
	font-size: 3.125rem;
	font-weight: bold;
	color: var(--black);
	margin: 0;
}


@media(min-width: 768px) {
	.content .banner {
		padding: 90px 0 80px;
	}
}


/*******************************************/
/********** CONTENT PAGE TEMPLATE **********/
/*******************************************/

.content .template {
	padding: 60px 0 90px;
}

.content .template h2:first-child,
.content .template h3:first-child,
.content .template h4:first-child,
.content .template p:first-child,
.content .template ul:first-child,
.content .template ol:first-child {
	margin-top: 0;
}

.content .template h2:last-child,
.content .template h3:last-child,
.content .template h4:last-child,
.content .template p:last-child,
.content .template ul:last-child,
.content .template ol:last-child {
	margin-bottom: 0;
}

.content .template h2,
.content .template .h2 {
	font-size: 3rem;
	font-weight: 300;
	color: var(--black);
	line-height: 1.25;
	margin: .75em 0;
}
.content .template h3,
.content .template .h3 {
	font-size: 1.875rem;
	font-weight: 400;
	color: var(--black);
	line-height: 1.25;
	margin: 1.25em 0;
}
.content .template h4,
.content .template .h4 {
	font-size: 1.125rem;
	font-weight: 800;
	color: var(--black);
	line-height: 1.5;
	margin: 1em 0;
}

.content .template p,
.content .template ul,
.content .template ol {
	font-size: 1.125rem;
	font-weight: 300;
	color: var(--darkgrey);
	line-height: 1.5;
	margin: 1.5em 0;
}
.content .template p b,
.content .template p strong,
.content .template li b,
.content .template li strong,
.content .template td b,
.content .template td strong {
	font-weight: 600;
	color: var(--black);
}
.content .template p a,
.content .template li a {
	font-weight: 600;
	color: var(--purple);
    border-bottom: 1px solid currentColor;
    display: inline;
}
.content .template p a:hover,
.content .template li a:hover {
	border-bottom: 1px solid transparent;
}
.content .template p small {
	color: var(--darkgrey);
	font-size: .875rem;
	font-weight: 300;
}
.content .template p small b,
.content .template p small strong {
	color: inherit;
}

.content .template p big {
	position: relative;
	display: inline-block;
	font-size: 2.375rem;
	color: var(--black);
	padding: .75em 0 .25em 50px;
}
.content .template p big::before {
	content: "";
	position: absolute;
	top: .5em;
	left: 0;
	width: 7px;
	height: 2em;
	background: linear-gradient(to bottom, var(--blue) 0%, var(--purple) 100%);
}

.content .template blockquote {
	display: block;
	font-size: 1.5rem;
	padding: 1em 0 1em 50px;
	position: relative;
}
.content .template blockquote::before {
	content: "";
	position: absolute;
	left: 0;
	height: 24px;
	width: 30px;
	background-image: url(/assets/img/quotation-marks.svg);
	background-size: contain;
	background-repeat: no-repeat;
}
.content .template blockquote p {
	font-size: 1.875rem;
	font-weight: 600;
	font-style: italic;
	color: var(--black);
}
.content .template blockquote p small {
	display: block;
	font-size: 11px;
	font-style: normal;
	font-weight: 400;
	color: var(--purple);
	letter-spacing: .1em;
	text-transform: uppercase;
	margin-top: 1.25em;
}

.content .template ul,
.content .template ol {
	padding: 0;
	list-style: none;
	margin: 1.5em 0;
}
.content .template ul li,
.content .template ol li {
	padding-left: 2em;
	position: relative;
}
.content .template ul li p,
.content .template ol li p {
	margin: 0;
}
.content .template ul li::before {
	content: "";
	position: absolute;
	top: calc(.7em - 2px);
	left: 0;
	height: 4px;
	width: 4px;
	background-color: #454e63;
	border-radius: 100%;
}

.content .template ol {
	counter-reset: item;
}
.content .template ol li {
	counter-increment: item;
}
.content .template ol li::before {
	content: counter(item) ".";
	position: absolute;
	top: .125rem;
	left: 0;
	font-size: 1rem;
	font-weight: 800;
	color: var(--purple);
}

.content .template table {
	font-size: 1rem;
	border-spacing: 0;
}
.content .template table {
	font-size: 1rem;
}
.content .template table td,
.content .template table th {
	padding: 5px 10px;
	border: 1px solid var(--black);
	font-weight: 300;
}
.content .template table th {
	color: white;
	font-weight: bold;
	background-color: var(--blue);
}


@media(min-width: 768px) {
	.content {
		min-height: calc(100vh - 62px - 352px);
	}

	.content .template {
		padding: 80px 0 120px;
	}

	.content .template p big {
		font-size: 2.375rem;
		padding-left: 80px;
	}
	.content .template p big::before {
		left: 50px;
	}

	.content .template blockquote {
		padding-left: 80px;
	}
	.content .template blockquote::before {
		left: 16px;
		height: 32px;
		width: 40px;
	}

	.content .template table td,
	.content .template table th {
		padding: 5px 20px;
	}
}

@media(min-width: 992px) {
	.content {
		min-height: calc(100vh - 108px - 201px);
	}
}



/******************************************/
/********** NEWS PAGE HIGHLIGHTS **********/
/******************************************/

.content .highlights,
.content .highlights .slide {
	position: relative;
}
.content .highlights .slide::before {
    content: "";
    position: absolute;
    background-image: linear-gradient(56deg, #090712 12%, transparent 76%, transparent 100%);
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    pointer-events: none;
}

.content .highlights .slide .image {
	display: block;
}
.content .highlights .slide .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.content .highlights .tns-nav {
	position: absolute;
	bottom: 35px;
	left: 20px;
	font-size: 0;
	z-index: 1;
}

.content .highlights .tns-nav button {
	border: none;
	padding: 0;
	width: 8px;
	height: 8px;
	opacity: 0.4;
	background-color: #ffffff;
	border-radius: 100%;
}
.content .highlights .tns-nav button + button {
	margin-left: 15px;
}
.content .highlights .tns-nav button.tns-nav-active {
	opacity: 1;
}

.content .highlights .slide > div {
	position: absolute;
	left: 77px;
	bottom: 110px;
}
.content .highlights .slide > div p {
	font-size: 3.125rem;
	font-weight: 300;
	line-height: 1.2;
	letter-spacing: normal;
	color: #ffffff;
	margin: .5em 0;
}
.content .highlights .slide > div .details a {
	color: white;
}
.content .highlights .slide > div .details span.author {
	color: var(--white);
}


@media(max-width: 767px) {
	.content .highlights {
		margin: -60px -20px 0;
	}

	.content .highlights .slide > div {
		position: relative;
		left: 0;
		bottom: 0;
		background-color: var(--black);
		padding: 30px 20px 70px;
	}
}

@media(min-width: 768px) {
	.content .highlights .tns-nav {
		bottom: 70px;
		left: 75px;
	}
}


/**************************************/
/********** CONTENT 404 PAGE **********/
/**************************************/

.content.page404 {
	display: flex;
	flex-direction: column-reverse;
	justify-content: center;
}

.content.page404 .template .container {
	text-align: center;
}

.content.page404 .template h1 {
	font-size: 3.125rem;
	color: var(--black);
	font-weight: bold;
	line-height: 1;
	margin: 0;
}
.content.page404 .template h2 {
	font-size: 1.875rem;
	margin: .75em 0 1.5em;
}