@charset "utf-8";
/* CSS Document */

/* body --------------------------------------------------------------------------------------- */

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	color: #28282e;
	font-family: 'Cabin Condensed', sans-serif;
	letter-spacing: 0.1vw;
    line-height: 1.5;
	font-size: max(0.9vw, 14px);
}

/* colors ------------------------------------------------------------------------------------- */

.bkg_color_0 {
	background-color: #406161;
}

div#div_menu.sticky_0 {
	background-color: #406161;
	transition: 0.2s;
}

.bkg_color_1 {
	background-color: #464e63;
}

div#div_menu.sticky_1 {
	background-color: #464e63;
	transition: 0.2s;
}

.bkg_color_2 {
	background-color: #CC0022;
}

div#div_menu.sticky_2 {
	background-color: #CC0022;
	transition: 0.2s;
}

.bkg_color_3 {
	background-color: #926b52;
}

div#div_menu.sticky_3 {
	background-color: #926b52;
	transition: 0.2s;
}

.bkg_color_4 {
	background-color: #324774;
}

div#div_menu.sticky_4 {
	background-color: #324774;
	transition: 0.2s;
}

.bkg_color_5 {
	background-color: #324774;
}

div#div_menu.sticky_5 {
	background-color: #324774;
	transition: 0.2s;
}

.bkg_color_6 {
	background-color: #851702;
}

div#div_menu.sticky_6 {
	background-color: #851702;
	transition: 0.2s;
}

/* divs --------------------------------------------------------------------------------------- */

div#div_background {
	position: fixed;
	top: 0;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	height: 100%;
	width: 100%;
	z-index: -1;
}

div#div_lal {
	position: absolute;
	display: flex;
	flex-direction: column;
	justify-content: space-evenly;
	top: 0;
	width: 100%;
	box-sizing: border-box;
	font-weight: bold;
	cursor: pointer;
	color: white;
	line-height: 1;
}

div#div_menu {
	position: sticky;
	top: -1px;
	padding: 0;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
	color: #28282e;
    background-color: rgba(255,255,255,0.7);
    box-sizing: border-box;
    border: 0;
    border-bottom: 1px solid #28282e;
}

/* https: //stackoverflow.com/questions/16302483/event-to-detect-when-positionsticky-is-triggered */
div#div_menu.ticky {
	background-color: #CC0022;
	transition: 0.2s;
}

div.div_content_out {
	display: flex;
	justify-content: space-evenly;
	color: white;
	background-color: rgba(40,40,46,0.97);
	box-sizing: border-box;
}

div.div_content_alt {
	display: flex;
	justify-content: space-evenly;
	color: white;
	background-color: rgba(56,56,66,0.97);
	box-sizing: border-box;
}

div.div_content {
	width: max(60vw, 400px);
}

div.div_separator {
	border: 0;
	border-top: 1px solid #84849b;
	border-bottom: 1px solid #84849b;
	width: 100%;
	height: 15vw;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

div#div_separator_students {
	background-image: url(../images/separators/01.jpg);
}

/* spans -------------------------------------------------------------------------------------- */

span.menu_item {
	display: block
	margin: 0;
	margin-right: 2vw;
	float: left;
	padding: 0;
	padding-top: 1vh;
	padding-bottom: 1vh;
	cursor: pointer;
	text-transform: uppercase;
	font-weight: bold;
}

span.menu_item_selected {
	color: #84849b;
}

span.menu_item:hover {
	color: #FFFFFF;
	background-color: #28282e;
	transition: 0.2s;
}

span#span_lal_subtitle {
	font-variant: normal;
}

span.sub_h1 {
	color: white;
	text-transform: none;
	font-size: max(0.8vw, 10px);
}

/* lists -------------------------------------------------------------------------------------- */

ul {
	list-style-type: square;
}

ul.graphic_list {
	margin: 0;
	padding: 0;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
	list-style-type: none;
}

ul#research_areas li {
	display: block;
    width: 13.5vw;
	min-width: 95px;
	background-position: top;
	background-repeat: no-repeat;
	background-size: contain;
    padding-top: max(14vw);
}

ul#research_areas li:nth-child(1) {
	background-image: url(../images/research_areas/multilayer.jpg);
}

ul#research_areas li:nth-child(2) {
	background-image: url(../images/research_areas/formal.jpg);
}

ul#research_areas li:nth-child(3) {
	background-image: url(../images/research_areas/education.jpg);
}

ul#research_areas li:nth-child(4) {
	background-image: url(../images/research_areas/heritage.jpg);
}

ul#current_courses li {
    width: 13.5vw;
	min-width: 95px;
	background-position: top;
	background-repeat: no-repeat;
	background-size: contain;
    padding-top: 14vw;
	padding-bottom: 1vw;
}

ul#current_courses li:nth-child(1) {
	background-image: url(../images/courses/labinfomus.jpg);
	padding-bottom: 2vw;
}

ul#current_courses li:nth-child(2) {
	background-image: url(../images/courses/midi.jpg);
	padding-bottom: 2vw;
}

ul#current_courses li:nth-child(3) {
	background-image: url(../images/courses/timbrica.jpg);
	padding-bottom: 2vw;
}

ul#current_courses li:nth-child(4) {
	background-image: url(../images/courses/web2.jpg);
	padding-bottom: 2vw;
}

ul#current_courses li:nth-child(5) {
	background-image: url(../images/courses/testuali.jpg);
}

ul#current_courses li:nth-child(6) {
	background-image: url(../images/courses/web1.jpg);
}

ul#simulator li {
	width: 13.5vw;
	min-width: 95px;
	background-position: top;
	background-repeat: no-repeat;
	background-size: contain;
    padding-top: 14vw;
	padding-bottom: 1vw;
	background-image: none;
}

ul#simulator li:nth-child(1) {
	background-image: url(../images/courses/midi.jpg);
	padding-bottom: 2vw;
}

ul#simulator li:nth-child(2) {
	background-image: url(../images/courses/timbrica.jpg);
	padding-bottom: 2vw;
}

/* links -------------------------------------------------------------------------------------- */

a:link, a:visited {
	color: #28282e;
	text-decoration: none;
}

a:hover {
	color: #84849b;
	text-decoration: none;
}

a.anchor {
    display: block;
    position: relative;
    top: -6vh;
    visibility: hidden;
}

.div_content a:link, .div_content a:visited {
	color: white;
	transition: 0.2s;
}

.div_content a:hover {
	color: #84849b;
	transition: 0.2s;
}

.div_content a::before {
  content: '▸';
  margin-left: -3px;
  margin-right: -3px;
}

a.top::before, a.graphic_list::before {
	content: '';
	margin: 0;
}

/* other -------------------------------------------------------------------------------------- */

.only_accepted {
	color: #84849b;
}

h1, h2, h3 {
	font-weight: normal;
	color:#84849b;
}

h1 {
	text-align: center;
	text-transform: uppercase;
	line-height: 0.7;
}

h2 {
	text-align: center;
	padding-top: 20px;
}

h3 {
	display: inline;
}

small {
	font-size: max(0.6vw, 9px);
}

small.top {
	padding-left: 0.6vw;
}

.top {
	padding-left: 0.6vw;
	vertical-align: super;
	font-size: 50%;
}

table {
	border: 0;
}

td {
	vertical-align: text-top;
}

td.publication_left {
	width: 3vw;
	text-align: left;
}

.publication_icon {
	margin-top: 5px;
	margin-bottom: 5px;
	margin-right: 10px;
}

/* media queries ------------------------------------------------------------------------------ */

@media (orientation: landscape) {
	
	div#div_lal {
		height: max(10vh, 35px);
		font-size: max(5vh, 25px);
		letter-spacing: 0.15vw;
		padding: max(2vh, 5px);
	}
	
	span#span_lal_subtitle {
		font-size: max(2vh, 16px);
	}
	
	div#div_menu {
		margin-top: max(10vh, 35px);
		padding-left: 2vh;
		padding-right: 2vh;
		font-size: max(2vh, 16px);
	}
	
	div.div_content {
		padding: 3vh;
	}
	
	h1 {
		font-size: max(3vh, 24px);
	}
	
	h2 {
		font-size: max(2.5vh, 20px);
	}
	
	h3 {
		font-size: max(2vh, 16px);
	}
}

@media (orientation: portrait) {
	
	div#div_lal {
		height: max(10vw, 35px);
		font-size: max(5vw, 25px);
		letter-spacing: 0.15vh;
		padding: max(2vw, 5px);
	}
	
	span#span_lal_subtitle {
		font-size: max(2vw, 16px);
	}
	
	div#div_menu {
		margin-top: max(10vw, 35px);
		padding-left: 2vw;
		padding-right: 2vw;
		font-size: max(2vw, 16px);
	}
	
	div.div_content {
		padding: 3vw;
	}
	
	h1 {
		font-size: max(3vw, 24px);
	}
	
	h2 {
		font-size: max(2.5vw, 20px);
	}
	
	h3 {
		font-size: max(2vw, 16px);
	}
}

/* animations --------------------------------------------------------------------------------- */

.fade-in {
	animation: fadeIn ease 0.5s;
	-webkit-animation: fadeIn ease 0.5s;
	-moz-animation: fadeIn ease 0.5s;
	-o-animation: fadeIn ease 0.5s;
	-ms-animation: fadeIn ease 0.5s;
}

@keyframes fadeIn {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

@-moz-keyframes fadeIn {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

@-webkit-keyframes fadeIn {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

@-o-keyframes fadeIn {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

@-ms-keyframes fadeIn {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

.fade-out {
	animation: fadeOut ease 0.5s;
	-webkit-animation: fadeOut ease 0.5s;
	-moz-animation: fadeOut ease 0.5s;
	-o-animation: fadeOut ease 0.5s;
	-ms-animation: fadeOut ease 0.5s;
}

@keyframes fadeOut {
	0% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}

@-moz-keyframes fadeOut {
	0% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}

@-webkit-keyframes fadeOut {
	0% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}

@-o-keyframes fadeOut {
	0% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}

@-ms-keyframes fadeOut {
	0% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}