/***** GLOBAL SETTINGS *****/

@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&family=Parkinsans:wght@300..800&display=swap');

:root {
	--black:#220049;
	--primary:#6F01F5;
	--secondary:#FF0000;
	--snow:#F2F0F4;
	--dark:#131517;
	--gray:#515355;
	--cloud:#c1c3c5;
	--white:#FFFFFF;
	--link:#0055FF;
	--link-active:#0033FF;
	--link-light:#0088FF;
	--link-light-active:#00aaFF;

	--transition:all 0.24s ease-in-out;
	}

* {
	box-sizing:border-box;
}
html,
body {
	font-family: "Parkinsans", Helvetica, Arial, sans-serif; 
	font-optical-sizing: auto;
	font-style: normal;
	font-size:16px;
	font-weight:400;
	margin:0; 
	padding:0; 
	color:var(--gray);
	position:relative;
	scroll-behavior: smooth;
}

/***** COLORS *****/

.black {color:var(--black) !important;}	
.primary {color:var(--primary) !important;}
.secondary {color:var(--secondary) !important;}	

.dark {color:var(--dark) !important;}
.gray {color:var(--gray) !important;}	
.cloud {color:var(--cloud) !important;}
.snow {color:var(--snow) !important;}
.white {color:var(--white) !important;}
.gradient {background: -webkit-linear-gradient(45deg, var(--primary), var(--secondary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent;}

.bg_black {background-color:var(--black) !important;}
.bg_primary {background-color:var(--primary) !important;}
.bg_secondary {background-color:var(--secondary) !important;}
.bg_dark {background-color:var(--dark) !important;}
.bg_gray {background-color:var(--gray) !important;}
.bg_cloud {background-color:var(--cloud) !important;}
.bg_snow {background-color:var(--snow) !important;}
.bg_white {background-color:var(--white) !important;}
.bg_gradient {background-image: -webkit-linear-gradient(45deg, var(--primary), var(--secondary));}

.border_black {border-color:var(--black) !important;}
.border_primary {border-color:var(--primary) !important;}
.border_secondary {border-color:var(--secondary) !important;}
.border_dark {border-color:var(--dark) !important;}
.border_gray {border-color:var(--gray) !important;}
.border_cloud {border-color:var(--cloud) !important;}
.border_snow {border-color:var(--snow) !important;}
.border_white {border-color:var(--white) !important;}
.border_gradient {background: linear-gradient(white, white) padding-box, linear-gradient(45deg, var(--primary), var(--secondary)) border-box; border: 3px solid transparent;}

.bg_white h1, .bg_white h2, .bg_white h3, .bg_white h4, .bg_white h5, .bg_white h6, .bg_white strong, .bg_white .lead, .bg_white p, .bg_white li,
.bg_snow h1, .bg_snow h2, .bg_snow h3, .bg_snow h4, .bg_snow h5, .bg_snow h6, .bg_snow strong, .bg_snow .lead, .bg_snow p, .bg_snow li {
	color:var(--dark)
}
.bg_gradient h1, .bg_gradient h2, .bg_gradient h3, .bg_gradient h4, .bg_gradient h5, .bg_gradient h6, .bg_gradient strong, .bg_gradient .lead, .bg_gradient p, .bg_gradient li, .bg_gradient .uppercase, .bg_gradient table,
.bg_black h1, .bg_black h2, .bg_black h3, .bg_black h4, .bg_black h5, .bg_black h6, .bg_black strong, .bg_black .lead, .bg_black p, .bg_black li, .bg_black .uppercase, .bg_black table,
.bg_dark h1, .bg_dark h2, .bg_dark h3, .bg_dark h4, .bg_dark h5, .bg_dark h6, .bg_dark strong, .bg_dark .lead, .bg_dark p, .bg_dark li, .bg_dark .uppercase, .bg_dark table,
.bg_secondary h1, .bg_secondary h2, .bg_secondary h3, .bg_secondary h4, .bg_secondary h5, .bg_secondary h6, .bg_secondary strong, .bg_secondary .lead, .bg_secondary p, .bg_secondary li, .bg_secondary .uppercase, .bg_secondary table,
.bg_primary h1, .bg_primary h2, .bg_primary h3, .bg_primary h4, .bg_primary h5, .bg_primary h6, .bg_primary strong, .bg_primary .lead, .bg_primary p, .bg_primary li, .bg_primary .uppercase, .bg_primary table {
	color:var(--white)
}

.bg_white a, .bg_snow a {
	color:var(--link)
}
.bg_white a:hover, .bg_snow a:hover {
	color:var(--link-active)
}
.bg_gradient a, .bg_black a, .bg_dark a, .bg_secondary a, .bg_primary a {
	color:var(--link-light)
}
.bg_gradient a:hover, .bg_black a:hover, .bg_dark a:hover, .bg_secondary a:hover, .bg_primary a:hover {
	color:var(--link-light-active)
}
/***** TEXT *****/

h1, h2, h3, h4, h5, h6 {
	font-family: "Bricolage Grotesque", sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-variation-settings: "wdth" 100;
}
h1 {
	font-size:4.5rem;
	line-height:5rem;
	font-weight:500;
	letter-spacing:-0.5px; 
	margin:0 0 1.5rem 0;
	color:var(--black);
}
h2 {
	font-size:3.5rem;
	line-height:4rem;
	font-weight:500;
	letter-spacing:-0.4px; 
	margin:0 0 1.5rem;
	color:var(--black);
}
h3 {
	font-size:2rem;
	line-height:2.375rem;
	font-weight:700;
	letter-spacing:-0.3px; 
	margin:0 0 1rem;
	color:var(--black);
}
h4 {
	font-size:1.625rem;
	line-height:2rem;
	font-weight:700;
	letter-spacing:-0.2px; 
	margin:0 0 0.5rem;
	color:var(--dark);
}
h5 {
	font-size:1.375rem;
	line-height:1.875rem;
	font-weight:700;
	letter-spacing:-0.1px; 
	margin:0 0 0.25rem;
	color:var(--dark);
}
h6 {
	font-size:1.25rem;
	line-height:1.75rem;
	font-weight:700;
	letter-spacing:-0.1px; 
	margin:0 0 0.25rem 0;
	color:var(--dark);
}
.lead {
	font-size:1.25rem;
	line-height:1.875rem;
	margin:0 0 1rem;
	color:var(--dark);
	font-weight:500;
	opacity:1;
	}
.uppercase {
	font-size:1.125rem;
	line-height:1.375rem;
	font-weight:400;
	margin:0 0 0.25rem;
	letter-spacing:1.5px;
	text-transform:uppercase;
	opacity: 0.75;
	}
.caption {
	font-size:1rem;
	line-height:1.375rem;
	font-weight:400;
	margin: 0.5rem 0 0;
}
p {
	font-size:1.0625rem;
	line-height:1.675rem;
	margin:0 0 0.5rem;
	opacity:0.88;
}
strong {
	font-weight:600;
}
ul {
	margin:0;
	padding:0 0 0 1.25rem;
	margin:0.5rem 0;
	}
li {
	font-size:1.0625rem;
	line-height:1.675rem;
	padding:0 0 0.25rem;
	opacity:0.88;
	}
li:last-child {
	padding:0 0 0.25rem;
	}

/***** GRAPHICS & DECORATIONS *****/

img {
	width:100%; 
	height:auto; 
	display: block;
}
.icon {
	width:3rem !important;
	height:3rem !important;
	margin-bottom: 0.75rem;
}
.icon.small {
	width: 2rem !important;
	height: 2rem !important;
}
.border_light {
	border-width: 1px;
	border-style:solid;
}
.border_strong {
	border-width: 3px;
	border-style:solid;
}
hr {
	width: 100%;
	border: none;
	height: 1px;
	background-color: var(--cloud);
	margin:2rem 0;
}
.break {
	height: 1.5rem;
}

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

a {
	font-weight:500;
	text-decoration:none;
	color:var(--link);
	transition:var(--transition);
	position: relative;
}
a:hover	{
	color:var(--link-active);
}
a.arrow::after {
	content:'';
	position: absolute;
	right:-1.25rem;
	top:0.25rem;
	height: 20px;
	width: 12px;
	background-image: url('link_arrow.svg');
	background-size: 20px 12px;
	background-position: center;
	background-repeat: no-repeat;
}
.button {
	font-size:1.125rem; 
	line-height:1.625rem; 
	cursor:pointer; 
	font-weight:700;
	color:var(--white);
	background:var(--link);
	transition:var(--transition);
	padding:0.75rem 1.25rem 0.75rem 1.25rem;
	margin:0.5rem 0 0.5rem;
	border:0;
	border-radius:2rem;
	position: relative;
}
.button:hover {
	color:var(--white);
	background:var(--link-active);
}
.button.arrow {
		padding:0.75rem 2.5rem 0.75rem 1.25rem;
	}
.button.arrow::after {
	content:'';
	position: absolute;
	right:1rem;
	top:0.9375rem;
	height: 20px;
	width: 12px;
	background-image: url('button_arrow.svg');
	background-size: 20px 12px;
	background-position: center;
	background-repeat: no-repeat;
}

/***** PAGE STRUCTURE *****/

.section,
.container,
.content,
.row,
.column {
	width:100%;
	margin:0 auto;
	display:flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	flex-direction: column;
	position:relative;
	min-width:0;
	font-size:1.125rem;
	background-repeat:no-repeat;
}
.section {
	padding:4rem 0rem;
	max-width:1920px;
	gap:3rem;
}
.container {
	padding: 4rem 4rem;
	max-width:1360px;
	gap:4rem;
}
.content {
	padding:0;
	max-width:1280px;
	gap:1rem;
}
.row {
	padding-top: 1rem;
	padding-bottom: 1rem;
	flex-direction: row;
	gap:3rem;
}
.row .row .row {
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}
.column {
	padding:0;
}
	
.equal {align-items: stretch;}
.middle {align-items: center;}
.inline {align-items: center; gap: 1rem}
.inline * {margin-bottom: 0; margin-top: 0;}

.centered {text-align: center; justify-content: center; align-items:center;}
.space {justify-content:space-between}
.start {justify-content:flex-start}
.end {justify-content:flex-end}
.fullpage {height: 100vh;}
.right {text-align: right;}
.left {text-align: left;}

.width_80 {width:80%}
.width_75 {width:75%}
.width_60 {width:60%}
.width_50 {width:50%}
.width_40 {width:40%}

.hide {display:none}
.hide_mobile {display:inherit}
.hide_desktop {display:none;}

.shadow {box-shadow:0 0.75rem 2rem rgba(0,0,0,0.12);}

.rounded {border-radius:2rem;}
.row .rounded {border-radius:1.25rem;}

.padding {padding:3rem 3.5rem 2.5rem;}
.row .padding {padding:2.25rem 2.75rem 1.75rem;}


.bounced {transition:var(--transition);}
.bounced:hover {transform: scale(1.02);}
.bounced.shadow:hover {box-shadow:0 0.75rem 2.5rem rgba(0,0,0,0.08);}

.bg_cover {background-size: cover;}
.bg_contain {background-size: contain;}
.bg_center {background-position: center;}
.bg_top {background-position: top center;}
.bg_bottom {background-position: bottom center;}

/***** TABLES *****/

table {
	width:100%;
	border-collapse: collapse;
	margin-bottom: 1rem;
}
thead tr {
	background: var(--black);
}
thead tr th {
	font-size:1.375rem;
	font-weight: 500;
	padding:1rem 1.5rem;
	text-align: left;
}
tbody tr {
	border-bottom: 1px solid rgba(255,255,255,0.24);
}
tbody tr td {
	padding:1rem 0;
}
tbody tr td:last-child {
	text-align: right;
	padding-left:1rem;
}
tfoot tr {}
tfoot tr td {
	font-size: 0.875rem;
	font-style: italic;
	padding:1rem 0;
}

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

.header {
	padding-top: 1.5rem;
	padding-bottom: 2rem;
	max-width:100%;
	background-color:var(--white);
	}
.header .container,
.header .row {
	padding-top: 0;
	padding-bottom: 0;
	}
.header .logo {
	height:3rem; 
	width:auto;
	}
.header:after {
	content:'';
	position:absolute;
	bottom:0;
	left:0;
	width:100%;
	height:0.5rem; 
	background: linear-gradient(90deg, rgba(111,1,245,1) 0%, rgba(255,0,0,1) 100%); 
	}

.header #navi ul {
	padding: 0;
	margin: 0;
	list-style-type: none;
	}
.header #navi ul li {
	display: inline-block;
	margin: 0;
	padding:8px 12px;
	}
.header #navi ul li:before {
	display: none;
	}
.header #navi ul li a {
	color: var(--gray);
	font-size: 1.0625rem;
	font-weight:500;
	}
.header #navi ul li a.active {
	color: var(--dark);
	font-weight:700;
	}
.header #navi ul li a:hover {
	color: var(--black);
	}
.header .hamburger,
.header .close {
	width:2rem;
	height:2rem;
	padding:6px;
	display:none;
	cursor: pointer;
	}
.header .hamburger svg, 
.header .close svg {
	fill:none;
	stroke:var(--black);
	stroke-linecap:round;
	stroke-linejoin:round;
	stroke-width:4px
	}

/***** FOOTER *****/	
	
.footer {
	padding-top: 0;
	padding-bottom: 0;
	background-color:var(--black);
	color:var(--cloud);
	max-width:100%;
	}
.footer:before {
	content:'';
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:0.5rem; 
	background: linear-gradient(90deg, rgba(111,1,245,1) 0%, rgba(255,0,0,1) 100%); 
	}
.footer .row {
	gap:2rem;
	}

/***** HERO *****/
	
.hero {
	padding-top: 4rem;
	padding-bottom: 0;
	}
	
/***** TOC *****/
	
.toc {
	padding-top: 0;
	padding-bottom: 0;
	background-position:center;
	background-size:cover; 
	background-repeat:no-repeat;
	overflow: hidden;
	}
.toc .container {
	padding-top: 1rem;
	padding-bottom: 1rem;
	}
.toc .row {
	gap:1.75rem;
	flex-direction: row;
	white-space: nowrap;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	-ms-overflow-style: -ms-autohiding-scrollbar;
	}
.toc .row::-webkit-scrollbar {
	display: none;
	}

/***** DOCUMENT *****/	

.document {
	gap:1.5rem;
	margin-bottom:2rem;
}
.document .column:first-child {
	width: 12rem;
}
.document.small .column:first-child {
	width: 6rem;
}
.document img {
	box-shadow: 0 0.25rem 1rem rgba(0,0,0,0.16);
	border-radius: 0.25rem;
}
.document p {
	font-size: 1rem;
	line-height: 1.5rem;
	overflow: hidden;
	font-weight: 400;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
}
.document li {
	padding:0 0 0.25rem;
}
/***** PEOPLE *****/

.person {
	display:flex; 
	flex-direction:column;
	gap:1rem;
	}
.person > div {
	display: flex; 
	flex-direction: row;
	align-items: center;
	gap: 1rem;
	}
.person img {
	width:8rem;
	height:8rem;
	border-radius:4rem;
	}
.person .icon {
	display: inline-block;
	margin: 0.25rem 0.375rem 0 0;
	}

/***** DOCUMENTS *****/	

.document {
	gap:1.5rem;
	margin-bottom:2rem;
}
.document .column:first-child {
	width: 12rem;
}
.document p {
	font-size: 1rem;
	line-height: 1.5rem;
	overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
}

/***** RESPONSIVENESS *****/

@media screen and (max-width:1024px) {
.row {
	padding-top: 0.75rem;
	padding-bottom: 0.75rem;
	flex-direction: column;
	gap:3rem;
}
.row .row {
	gap:1.5rem;
}
.fullpage {
	height: auto;
}
.header {
	padding-top: 1.25rem;
	padding-bottom: 1.5rem;
}
.header .row {
	flex-direction: row;
}
.header:after {
	height:0.25rem;
}
.header .logo {
	height:2.25rem;
	width:auto;
}
img {
	max-width:80%;
}
.hide_mobile {
	display:none;
}
.hide_desktop {
	display:inherit;
}
.header #navi {
	padding: 20px 2rem 20px 2rem;
	position:fixed;
	top:0;
	right:-75%;
	transition: all ease 0.3s;
	background-color: var(--white);
	box-shadow: 0 0 32px rgba(0,0,0,.08);
	width:75%;
	height:100vh;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap:6rem;
	align-items: flex-end;
	z-index:1;
}
.header #navi.opened {
	right:0;
}
.header #navi ul {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1rem;
	width: 100%;
}
.header .hamburger,
.header .close {
		display: block;
}
.document {
	flex-direction: row;
}
.document .column:first-child {
	width: 10rem;
}
.mobile-reverse > *:last-child {order:1}
.mobile-reverse > *:first-child {order:2}
}

@media screen and (max-width:768px) {
	
h1 {
	font-size:3rem;
	line-height:3.25rem;
	margin:0 0 1.25rem 0;
	}
h2 {
	font-size:2.25rem;
	line-height:2.5rem;
	margin:0 0 1rem;
	}
h3 {
	font-size:1.75rem;
	line-height:2.125rem;
	margin:0 0 0.75rem;
	color:var(--black);
	}
h4 {
	font-size:1.5rem;
	line-height:2rem;
	font-weight:700;
	margin:0 0 0.5rem;
	}
h5 {
	font-size:1.25rem;
	line-height:1.625rem;
	margin:0 0 0.25rem;
	}
.container {
	padding: 3rem 1.5rem;
	gap:4rem;
	}

.rounded {border-radius:0.5rem;}
.row .rounded {border-radius:0.75rem;}

.padding,
.row .padding {padding:1.5rem 2rem 1rem;}

.person > div {flex-direction: column;align-items: flex-start;}
}

@media screen and (max-width:480px) {
	
img {
	max-width:100%;
	}
.width_80, .width_75 {width:100%}
.width_60, .width_50 {width:75%}

}