@charset "UTF-8";
/* CSS Document */

/* ------------------------------------------------------------
   Common 
-------------------------------------------------------------*/

:root {
	--title-size: 5rem;
	--subtitle-size: 3rem;
	--title2-size: 2.5rem;
	--big-text-size: 1.4rem;
	--normal-text-size: 1rem;
	--caption-text-size: 0.8rem;
}

body {
	margin: 0;
	font-family: "DM Sans", serif;
  	font-optical-sizing: auto;
  	font-weight: normal;
  	font-style: normal;
	background-color: var(--light-color);
	scroll-behavior: smooth;
	/*background-image: url("../images/graphics/background.jpg");*/
	background-repeat: no-repeat;
	background-position: top left;
	background-attachment: fixed;
	background-size: 12vw;
}

.anchor-target {
	scroll-margin-top: calc(var(--normal-text-size) * 10);
}

/* Text styles ---------------------------------------------*/

.title {
	font-size: var(--title-size);
	letter-spacing: calc(var(--normal-text-size) * 0.1);
}

.subtitle {
	font-size: var(--subtitle-size);
	letter-spacing: calc(var(--normal-text-size) * 0.1);
}

.big-text {
	font-size: var(--big-text-size);
}

.normal-text {
	font-size: var(--normal-text-size);
}

.caption {
	font-size: var(--caption-text-size);
	text-align: left;
}

h1 {
	height: calc(var(--normal-text-size) * 4.5);
	font-size: var(--subtitle-size);
	color: var(--primary-color);
	font-weight: normal;
	letter-spacing: calc(var(--normal-text-size) * 0.1);
    /* border: 1px solid var(--primary-color); */
    box-sizing: border-box;
    margin-top: 0;
	margin-bottom: calc(var(--normal-text-size) * 3.7);
	line-height: 0.8;
}

h1.no-border {
	border: 0;
	line-height: normal;
	margin-bottom: 0;
}

h1.vertical {
	border: 0;
    margin: var(--normal-text-size);
    padding: calc(var(--normal-text-size) * 0.5);
    background-color: white;
    height: auto;
}

h2 {
	font-size: var(--title2-size);
	color: var(--secondary-color);
	font-weight: normal;
	letter-spacing: calc(var(--normal-text-size) * 0.1);
}

h3 {
	font-size: var(--big-text-size);
	color: var(--primary-color);
	font-weight: normal;
	padding-top: calc(var(--normal-text-size) * 2);
}

a:link, a:visited, a.dark:link, a.dark:visited {
	color: var(--dark-color);
	text-decoration: none;
}

a:hover, a.dark:hover {
	color: var(--dark-gray-color);
	text-decoration: none;
}

a.light:link, a.light:visited {
	color: var(--light-color);
	text-decoration: none;
}

a.light:hover {
	color: var(--gray-color);
	text-decoration: none;
}

a.a-link-list {
	display: inline-block;
    padding-left: 1.1em;
    text-indent: -1.1em;
}

a.a-link-list::before {
	content: "\25B8\20";
}


/* Icons ---------------------------------------------------*/

img.go-back, img.go-forward {
	opacity: 1;
    transition: opacity 0.2s ease-in-out;
	cursor: pointer;
	width: calc(var(--normal-text-size) * 2);
	height: calc(var(--normal-text-size) * 2);
}

img.go-back:hover, img.go-forward:hover {
	opacity: 0.6;
}


/* Top menu ------------------------------------------------*/

#nav-landscape {
	display: flex;
	position: fixed;
	z-index: 1000;
    left: 50%;
    transform: translateX(-50%);
	top: var(--normal-text-size);
	width: fit-content;
	flex-direction: row;
	align-content: center;
	align-items: flex-start;
	justify-content: center;
}

#nav-portrait {
	display: none;
	position: fixed;
	z-index: 1000;
    left: 50%;
    transform: translateX(-50%);
	padding: 5vw;
	width: 90vw;
	top: 0;
}

#nav-portrait-upper {
	width: 100%;
	display: flex;
	flex-direction: row;
	align-content: center;
	align-items: flex-start;
	justify-content: space-between;
}

#nav-portrait-lower {
	width: 100%;
	display: none;
	flex-direction: column;
	align-content: flex-start;
	align-items: flex-start;
	background-color: var(--light-color);
	font-size: var(--normal-text-size);
	border: 1px solid var(--dark-color);
	border-radius: calc(var(--normal-text-size) * 1.5);
	margin-top: 1vw;
	padding: calc(var(--normal-text-size) * 1.5);
	box-sizing: border-box;
}

.div-under-nav {
	width: 100%;
	height: calc(var(--normal-text-size) * 9);
	position: fixed;
	top: 0;
	z-index: 5;
	background: linear-gradient(to bottom, var(--light-color) 93%, rgba(255, 255, 255, 0) 100%);
}

.div-under-nav-primary {
	width: 100%;
	height: calc(var(--normal-text-size) * 9);
	position: fixed;
	top: 0;
	z-index: -5;
	background: linear-gradient(to bottom, var(--primary-color) 80%, rgba(200, 65, 46, 0) 100%);
}

#div-nav {
	position: fixed;
	width: 100%;
	margin-top: calc(var(--normal-text-size) * 5);
	height: calc(var(--normal-text-size) * 4);
	display: flex;
	flex-direction: row;
	align-items: flex-end;
	justify-items: center;
	justify-content: space-between;
	padding: 0 5vw 0 5vw;
	box-sizing: border-box;
	z-index: 10;
}

#div-nav h1 {
	display: contents;
	margin: 0;
	height: calc(var(--normal-text-size) * 4);
    line-height: calc(var(--normal-text-size) * 4);
}

#div-nav h2 {
	display: contents;
	color: var(--primary-color);
}


span.span-red-line {
	height: calc(var(--normal-text-size) * 2);
	border-top: 1px solid var(--primary-color);
	flex-grow: 1;
    margin-left: var(--normal-text-size);
    box-sizing: border-box;
}

span.span-white-line {
	height: calc(var(--normal-text-size) * 2);
	border-top: 1px solid var(--light-color);
	flex-grow: 1;
    margin-left: var(--normal-text-size);
    box-sizing: border-box;
}

div.div-top-filter {
	display: flex;
	flex-direction: row;
	align-items: center;
	align-content: center;
	justify-content: space-between;
	width: calc(var(--normal-text-size) * 10);
	height: calc(var(--normal-text-size) * 4);
	margin-left: var(--normal-text-size);
}

div.back-to-home {
	width: calc(var(--normal-text-size) * 4);
	height: calc(var(--normal-text-size) * 4);
	background-color: var(--dark-gray-color);
	border: 1px solid var(--dark-color);
	border-radius: calc(var(--normal-text-size) * 4);
	margin-right: var(--normal-text-size);
	cursor: pointer;
	transition: background-color 0.2s ease-in-out, transform 0.2s ease-in-out;
	background-image: url("../images/graphics/icon_home.png");
	background-position: center;
	background-size: 50%;
	background-repeat: no-repeat;
}

div.back-to-home:hover {
	background-color: var(--primary-color);
}

div.top-menu {
	width: fit-content;
	display: flex;
    flex-direction: column;
    justify-items: center;
    justify-content: center;
    align-items: center;
	box-sizing: border-box;
	border: 1px solid var(--dark-color);
	padding: calc(var(--normal-text-size) / 2);
	border-radius: calc(var(--normal-text-size) * 2);
	background-color: var(--light-color);
}

div.top-menu-button-container {
	display: flex;
    flex-direction: row;
    justify-items: center;
    justify-content: center;
    align-items: center;
	box-sizing: border-box;
}

div.top-menu-item {
	display: flex;
    flex-direction: row;
    justify-items: center;
    justify-content: center;
    align-items: center;
	font-size: var(--caption-text-size);
	padding: calc(var(--normal-text-size) * 0.5) calc(var(--normal-text-size) * 0.8);
	height: calc(var(--normal-text-size) * 2.8);
	border-radius: calc(var(--normal-text-size) * 1.5);
	background-color: var(--light-color);
	cursor: pointer;
	box-sizing: border-box;
	border: 1px solid var(--gray-color);
	transition: background-color 0.2s ease-in-out, transform 0.2s ease-in-out;
}

div.top-menu-item:not(:first-child) {
	margin-left: calc(var(--normal-text-size) * 0.5);
}

div.top-menu-item:hover {
	background-color: var(--hover-color);
}

div.top-submenu-item {
	display: none;
    flex-direction: row;
    justify-items: center;
    justify-content: flex-start;;
    align-items: center;
	font-size: var(--caption-text-size);
	padding: calc(var(--normal-text-size) * 0.5);
	height: calc(var(--normal-text-size) * 2);
	width: 100%;
	border-radius: calc(var(--normal-text-size) * 1.5);
	background-color: var(--light-color);
	cursor: pointer;
	box-sizing: border-box;
	margin-top: calc(var(--normal-text-size) * 0.5);
	border: 1px solid var(--gray-color);
	transition: background-color 0.2s ease-in-out, transform 0.2s ease-in-out;
}

div.top-submenu-item:hover {
	background-color: var(--hover-color);
}

div.button-search, div.button-login {
	width: calc(var(--normal-text-size) * 3);
	height: calc(var(--normal-text-size) * 3);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 80%;
	border-radius: calc(var(--normal-text-size) * 1.5);
	background-color: var(--light-color);
	cursor: pointer;
	box-sizing: border-box;
	border: 1px solid var(--hover-color);
	margin-left: calc(var(--normal-text-size) * 0.5);
    transition: background-color 0.2s ease-in-out, transform 0.2s ease-in-out;
}

div.button-search {
	background-image: url("../images/graphics/icon_search.svg");
}

div.button-login {
	background-size: 60%;
	background-image: url("../images/graphics/icon_locked.svg");
}

div.button-login-unlocked {
	background-size: 60%;
	background-image: url("../images/graphics/icon_unlocked.svg");
}

div.button-search:hover, div.button-login:hover {
	background-color: var(--hover-color);
}

div#button-menu {
	width: calc(var(--normal-text-size) * 3);
	height: calc(var(--normal-text-size) * 3);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 50%;
	border-radius: calc(var(--normal-text-size) * 1.5);
	cursor: pointer;
	box-sizing: border-box;
	border: 1px solid var(--hover-color);
	background-color: var(--primary-color);
	background-image: url("../images/graphics/icon_menu.png");
    transition: background-color 0.2s ease-in-out, transform 0.2s ease-in-out;
}

div#button-menu:hover {
	background-color: var(--hover-color);
}

div.button-changes {
	display: flex;
    flex-direction: row;
    justify-items: center;
    justify-content: center;
    align-items: center;
	height: calc(var(--normal-text-size) * 3);
	width: calc(var(--normal-text-size) * 7);
	border-radius: calc(var(--normal-text-size) * 1.5);
	background-color: var(--pnrr-color);
	background-image: url("../images/logos/changes.svg");
	background-size: 70%;
	background-repeat: no-repeat;
	background-position: center;
	cursor: pointer;
	box-sizing: border-box;
	border: 1px solid var(--hover-color);
	margin-left: calc(var(--normal-text-size) * 0.5);
	transition: background-color 0.2s ease-in-out, transform 0.2s ease-in-out;
}

div.button-changes:hover {
	opacity: 0.9;
}


/* Footer ---------------------------------------------------*/

footer {
	position: fixed;
	bottom: 0;
	display: flex;
	align-content: center;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: var(--normal-text-size);
	color: var(--light-color);
	background-color: var(--pnrr-color);
	font-size: var(--caption-text-size);
	box-sizing: border-box;
	text-align: center;
	z-indez: 1000;
}


/* ------------------------------------------------------------
   Homepage 
-------------------------------------------------------------*/

div.home-background {
	position: fixed;
	display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
	width: 100%;
	height: 90vh;
	background-image: url("../images/home/background.jpg");
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	box-sizing: border-box;
}

svg.home-background {
	width: max(10vh,5vw);
	height: max(10vh,5vw);
}

div.home-title-container {
	display: flex;
    flex-direction: column;
	align-items: center;
	align-content: center;
	justify-content: center;
	height: 90%;
    width: fit-content;
}

div.home-title {
	display: flex;
    flex-direction: column;
    align-items: center;
    color: var(--dark-color);
	text-align: center;
}

span.home-title {
	display: block;
    width: fit-content;
    font-size: var(--title-size);
    background-color: var(--light-color);
    padding-left: calc(var(--normal-text-size) * 2);
    padding-right: calc(var(--normal-text-size) * 2);
    letter-spacing: calc(var(--normal-text-size) * 0.2);
    margin-bottom: calc(var(--normal-text-size) * 0.5);
    line-height: 1.3;
	cursor: pointer;
	text-align: center;
}

.home-title:last-child, .home-title:last-of-type {
	margin-bottom: 5vh;
}

span.home-subtitle {
	background-color: var(--light-color);
	color: var(--dark-color);
	font-size: var(--subtitle-size);
	padding: 0 var(--normal-text-size);
	margin-bottom: calc(var(--normal-text-size) * 0.5);
	letter-spacing: calc(var(--normal-text-size) * 0.1);
	display: block;
	cursor: pointer;
}

div.home-normal-text {
	font-size: var(--normal-text-size);
	color: var(--dark-color);
	background-color: var(--light-color);
	padding: calc(var(--normal-text-size) * 0.2);
	cursor: pointer;
}

div.home-navigation {
    position: fixed;
    width: fit-content;
    left: 50%;
    transform: translateX(-50%);
    bottom: 11.5vh;;
    z-index: 10;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-content: center;
    align-items: center;
}

div.button-archive {
	width: var(--subtitle-size);
	height: var(--subtitle-size);
	background-color: var(--primary-color);
	background-image: url("../images/graphics/icon_circle_arrow_down_light.svg");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 90%;
	cursor: pointer;
	box-sizing: border-box;
	margin-top: var(--normal-text-size);
	margin-bottom: var(--normal-text-size);
	opacity: 1;
    transition: opacity 0.2s ease-in-out;
    border-radius: var(--subtitle-size);
}

div.button-archive:hover {
	opacity: 0.6;
}

div.pnrr-footer-home {
	position: fixed;
    bottom: var(--normal-text-size);
	width: 100%;
	height: 10vh;
	background-color: var(--light-color);
	background-image: url("../images/logos/pnrr.png");
	background-position: center;
	background-repeat: no-repeat;
	background-size: 50%;
	box-sizing: border-box;
	text-align: center;
}


/* ------------------------------------------------------------
   Pages 
-------------------------------------------------------------*/

div.index2 {
	position: absolute;
    text-align: center;
    transform: translate(-50%, -50%);
    top: 50%;
    left: 50%;
	font-size: var(--subtitle-size);
	letter-spacing: calc(var(--normal-text-size) * 0.1);
}


a.index2:link, a.index2:visited {
	text-decoration: underline;
	color: var(--primary-color);
	font-style: italic;
}

a.index2:hover {
	color: var(--gray-color);
}


/* ------------------------------------------------------------
   Pages 
-------------------------------------------------------------*/

div.one-column-page {
	display: flex;
	flex-direction: column;
	padding: 5vw;
	padding-top: max(5vw, calc(var(--normal-text-size) * 7)); /* to avoid the navigation bar */
}

div.two-columns-page {
	display: flex;
	flex-direction: row;
}

div.left-container {
	position: fixed;
	top: 0;
	left: 0;
	display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 30vw;
    height: 100vh;
    padding: 5vw;
	padding-top: max(5vw, calc(var(--normal-text-size) * 7)); /* to avoid the navigation bar */
    box-sizing: border-box;
}

div.left-container-narrow {
    width: 25vw;
    height: calc(100vh - calc(var(--normal-text-size) * 10));
	padding-top: 1vw;
    padding-right: 2.5vw;
	top: calc(var(--normal-text-size) * 10);
}

div.left-top-container, div.left-right-container {
	width: 100%;
	height: fit-content;
}

div.left-right-container {
	display: flex;
	flex-direction: column;
}

div.right-container {
	position: absolute;
    top: 0;
    right: 0;
    width: 65vw;
    height: 100%;
    padding: 5vw;
    padding-top: max(5vw, calc(var(--normal-text-size) * 7));
    margin-bottom: 5vw;
    text-align: right;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: space-between;
    box-sizing: border-box;
}

div.right-container-narrow {
	position: absolute;
    width: 75vw;
    margin-bottom: 1vw;
	padding-top: 1vw;
	padding-left: 2.5vw;
	padding-bottom: calc(var(--normal-text-size) * 2);
	top: calc(var(--normal-text-size) * 10);
	height: auto; 
	z-index:-10;
}

ul.left-bottom-container {
	list-style: none;
	padding: 0; /* Optional: Removes default padding */
	margin: 0;
}

ul.left-bottom-container > li {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	padding-top: calc(var(--normal-text-size) * 1.5);
	padding-bottom: calc(var(--normal-text-size) * 1.5);
	font-size: var(--big-text-size);
	border: 0;
	border-bottom: 1px solid var(--primary-color);
	text-transform: uppercase;
}

a.left-selector:link, a.left-selector:visited {
	text-decoration: none;
	color: var(--primary-color);
	transition: color 0.2s ease-in-out;
}

a.left-selector:hover {
	color: var(--secondary-color);
}

a.left-selector-selected:link, a.left-selector-selected:visited {
	text-decoration: none;
	font-weight: bold;
	color: var(--dark-color);
}

a.left-selector-selected:hover {
	color: var(--dark-color);
}

div.letter-container {
	display: flex;
	flex-direction: column;
	border: 0;
	align-content: center;
	align-items: flex-end;
	font-size: var(--caption-text-size);
	margin-left: calc(var(--normal-text-size) * 3.7);
	margin-bottom: calc(var(--normal-text-size) * 3);
	color: var(--light-color);
	transition: color 0.2s ease-in-out, transform 0.2s ease-in-out;
}

div.letter-container:hover {
	color: var(--dark-color);
}

div.letter {
	display: flex;
	width: calc(var(--normal-text-size) * 4.5);
	height: calc(var(--normal-text-size) * 4.5);
	border: 1px solid var(--dark-color);
	color: var(--primary-color);
	align-content: center;
	align-items: center;
	justify-content: center;
	font-size: var(--big-text-size);
	text-transform: uppercase;
	margin: 0;
	cursor: pointer;
	transition: background-color 0.2s ease-in-out, transform 0.2s ease-in-out;
}

div.letter:hover {
	color: var(--secondary-color);
	background-color: var(--hover-color);
}

div.small-letter-container {
	display: flex;
	flex-direction: column;
	border: 0;
	align-content: center;
	align-items: flex-end;
	font-size: var(--caption-text-size);
	margin-left: calc(var(--normal-text-size) * 1.5);
	margin-bottom: calc(var(--normal-text-size) * 0.8);
	line-height: calc(var(--normal-text-size) * 0.7);
	color: var(--light-color);
	transition: color 0.2s ease-in-out, transform 0.2s ease-in-out;
}

div.small-letter-container:hover {
	color: var(--dark-color);
}

div.small-letter {
	display: flex;
	width: calc(var(--normal-text-size) * 3);
	height: calc(var(--normal-text-size) * 3);
	border: 1px solid var(--dark-color);
	color: var(--primary-color);
	align-content: center;
	align-items: center;
	justify-content: center;
	font-size: var(--normal-text-size);
	text-transform: uppercase;
	margin: 0;
	cursor: pointer;
	transition: background-color 0.2s ease-in-out, transform 0.2s ease-in-out;
	margin-bottom: 3px;
}

div.small-letter:hover {
	color: var(--secondary-color);
	background-color: var(--hover-color);
}

div.small-letter-no {
	display: flex;
	width: calc(var(--normal-text-size) * 3);
	height: calc(var(--normal-text-size) * 3);
	border: 1px solid var(--dark-color);
	color: var(--dark-color);
	background-color: var(--dark-gray-color);
	align-content: center;
	align-items: center;
	justify-content: center;
	font-size: var(--normal-text-size);
	text-transform: uppercase;
	margin: 0;
	cursor: not-allowed;
	margin-bottom: 3px;
}

div.div-big-square {
	border: 1px solid var(--primary-color);
	width: 12vw;
	min-height: 12vw;
	margin-left: 1vw;
	margin-bottom: 1vw; 
	text-align: left; 
	display: flex; 
	flex-direction: column; 
	justify-content: space-between;
	box-sizing: border-box;
}

div.div-big-square-top {
	padding: 0.5vw; 
	padding-bottom: 0;
}

div.div-big-square-bottom {
	display: flex; 
	flex-direction: row; 
	justify-content: space-between; 
	background-color: var(--gray-color); 
	padding: 0.5vw; 
	align-items: center;
	font-size: var(--caption-text-size);
}

div.div-big-square-bottom > span > a:hover {
	color: var(--dark-gray-color);
}

svg#svg-canvas {
	height: 60vh; 
	/*border-bottom: 1px solid var(--dark-color);*/
	margin-bottom: calc(var(--normal-text-size) * 2);
}

rect.svg-bar {
	fill: transparent;
	stroke: var(--dark-color);
	stroke-width: 0.5;
	cursor: pointer;
}

rect.svg-bar-approved {
	position: relative;
	fill: url(#diagonalLines);
	stroke: 0;
	pointer-events: none;
}

rect.svg-bar:hover {
	fill: var(--hover-color);
}

.svg-bar-selected {
	stroke: var(--dark-color);
	stroke-width: 1;
	fill: var(--secondary-color);
	cursor: pointer;
}

text.svg-text {
	fill: var(--primary-color);
	pointer-events: none;
}

div.under-svg {
	display: none;
	flex-direction: row;
	align-items: center;
	align-content: center;
	justify-content: space-between;
}

.under-svg > div.small-letter-container:first-of-type {
    margin-left: 0;
}

div.tab-letters {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: flex-start;
	align-content: flex-start;
	justify-content: flex-end;
}

div.tab-barplot {
	flex-direction: column;
    flex-wrap: wrap;
    align-items: flex-end;
    align-content: flex-end;
    justify-content: flex-start;
}

div.div-top-line {
	border-top: 1px solid var(--light-color); 
	width: 100%; 
	text-align: left; 
	padding: 1vw 0
}

div.div-top-line > div:first-child {
	display: flex; 
	flex-direction: row; 
	justify-content: space-between; 
	align-content: center; 
	align-items: center;
	cursor: pointer;
}

div.div-criteria {
	width: 100%;
	display: flex;
	flex-direction: row;
	align-content: center;
	align-items: center;
	justify-content: space-between;
	font-size: var(--big-text-size);
}

div.div-criteria > span {
	text-transform: uppercase;
}

img.img-score-preview {
	height: 3.75vw;
	margin-top: 1vw;
	margin-right: 1vw;
}

div.div-score-preview {
	min-width: 5vw;
	aspect-ratio: 0.75;
	background-color: var(--dark-color);
	background-size: cover;
	background-position: right;
	margin-right: 1vw;
}

div.div-score-missing {
	min-width: 5vw;
	aspect-ratio: 0.75;
	margin-right: 1vw;
	border: 1px dashed var(--dark-color);
}


/* Centered page -------------------------------------------*/

div.centered-page {
	position: relative;
	width: 50vw;
	min-width: 600px;
	margin: auto;
	margin-top: calc(var(--normal-text-size) * 10);
	margin-bottom: 5vw;
}

div.centered-page-title {
    font-size: var(--subtitle-size);
    color: var(--primary-color);
    font-weight: normal;
    letter-spacing: calc(var(--normal-text-size) * 0.1);
    box-sizing: border-box;
    margin-top: 0;
    margin-bottom: var(--subtitle-size);
	text-align: center
}

div.centered-page-link {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	align-content: center;
	border-bottom: 1px solid var(--dark-color);
	padding: 2rem;
	color: var(--primary-color);
	font-size: var(--big-text-size);
}

div.centered-carousel {
	width: 100%;
	aspect-ratio: 4 / 3;
  	background: var(--gray-color);
}

div.rounded-button {
	display: flex;
	align-content: center;
	align-items: center;
	padding: 0 2rem;
	color: var(--dark-color);
	height: 3rem;
	font-size: 1rem;
	border-radius: 1.5rem;
	border: 1px solid var(--dark-color);
	cursor: pointer;
	width: fit-content;
	position: relative;
	margin: auto;
}

div.rounded-button:hover {
	background-color: var(--gray-color);
}


/* ------------------------------------------------------------
   Files main page
-------------------------------------------------------------*/

div#caption {
	font-size: var(--normal-text-size);
	margin-top: var(--normal-text-size);
	display: flex;
	flex-direction: row;
	align-content: center;
	align-items: end;
	justify-content: space-between;
}


/* ------------------------------------------------------------
   Search page 
-------------------------------------------------------------*/

form {
	width: 100%;
}

table.table-search {
	width: 100%;
	border: 0;
	margin: 0;
	padding: 0;
	border-collapse: collapse;
	font-size: var(--normal-text-size);
}

table.table-search td {
	padding: calc(var(--normal-text-size) * 0.8);
}

td.table-search-sec-title {
	text-transform: uppercase;
	color: var(--primary-color);
	text-align: right;
	margin-top: calc(var(--normal-text-size) * 2);
    display: block;
}

td.table-search-label {
	width: 20%;
	min-width: 180px;
	text-align: right;
}

td.table-search-border {
	padding: calc(var(--normal-text-size) * 0.8);
	border: 1px solid var(--primary-color);
	width: 80%;
	text-align: left;
}

table.table-search input, select, option {
	width: 100%;
	border: 0;
	font-family: "DM Sans", serif;
	font-size: var(--normal-text-size);
}

table.table-search select, option {
	border: 1px solid var(--gray-color);
	width: fit-content;
}

table.table-search input[type="date"] {
	width: auto;
}

table.table-search input[type="checkbox"], table.table-search input[type="radio"] {
	width: auto;
	margin-right: calc(var(--normal-text-size) * 0.5);
}

table.table-search input[type="checkbox"]:checked, table.table-search input[type="radio"]:checked {
    accent-color: var(--primary-color);
}

td.table-search-border > label {
	margin-right: calc(var(--normal-text-size) * 2);
}

table.table-search input:focus {
  outline: none;
}

table.table-search input[type="submit"], button[type="reset"] {
	width: auto;
	font-family: "DM Sans", serif;
	font-size: var(--normal-text-size);
	padding: calc(var(--normal-text-size) * 0.5);
	color: var(--light-color);
	background-color: var(--primary-color);
	margin-right: calc(var(--normal-text-size) * -1);
    cursor: pointer;
	transition: background-color 0.2s ease-in-out;
	border: 0;
}

table.table-search input[type="submit"]:hover, button[type="reset"]:hover {
	background-color: var(--secondary-color);
}



/* ------------------------------------------------------------
   Main page 
-------------------------------------------------------------*/

div.right-container-aligned {
	display: flex;
	flex-direction: row;
	align-items: center;
    justify-content: flex-end;
	position: absolute;
	top: 0;
	right: 0;
	width: 65vw;
	height: 100vh;
	padding: 0;
	box-sizing: border-box;
	overflow-y: hidden;
}

div.vertical-container {
	position: relative;
	display: flex;
	flex-direction: row;
	align-items: flex-end;
	justify-content: center;
	width: 8.5vw;
	height: 100%;
	border: 0;
	border-left: 5px solid var(--light-color);
	box-sizing: border-box;
	background-size: 100% 100%;
	background-repeat: no-repeat;
}

div.vertical-container:nth-child(odd) {
	background-image: url("../images/local/column_top.png");
	background-position: top;
}

div.vertical-container:nth-child(even) {
	background-image: url("../images/local/column_bottom.png");
	background-position: bottom;
}

div.vertical-container-shrinked {
	cursor: pointer;
	background-color: var(--light-color);
	border-left: 1px solid var(--dark-color);
	transition: background-color 0.2s ease-in-out, transform 0.2s ease-in-out;
}

div.vertical-container-shrinked > h1 {
	font-size: var(--big-text-size);
}

div.vertical-container-shrinked:hover {
	background-color: var(--primary-color);
}

.vertical-text {
	transform: rotate(270deg) translateX(50%);
	transform-origin: center;
	display: inline-block;
	white-space: nowrap; /* Prevents text from wrapping */
	cursor: pointer;
	font-size: var(--title2-size);
	color: var(--dark-color);
	transition: color 0.2s ease-in-out, transform 0.2s ease-in-out;
}

div.vertical-container-shrinked .vertical-text:hover {
	color: var(--dark-color);
}

.vertical-text:hover {
	color: var(--gray-color);
}

img.vertical-text-icon {
    width: calc(var(--normal-text-size) * 2);
	height: calc(var(--normal-text-size) * 2);
	margin-right: calc(var(--normal-text-size) * 2);
	opacity: 1;
    transition: opacity 0.2s ease-in-out;
	cursor: pointer;
}

img.vertical-text-icon:hover {
	opacity: 0.3;
}

img.small-icon {
    width: calc(var(--normal-text-size) * 1.5);
	height: calc(var(--normal-text-size) * 1.5);
	margin-left: calc(var(--normal-text-size) * 0.5);
	opacity: 1;
    transition: opacity 0.2s ease-in-out;
	cursor: pointer;
}

img.small-icon:hover {
	opacity: 0.6;
}

img.tiny-icon {
    width: var(--normal-text-size);
	height: var(--normal-text-size);
	opacity: 1;
    transition: opacity 0.2s ease-in-out;
	cursor: pointer;
}

img.tiny-icon:hover {
	opacity: 0.6;
}

img.go-icon {
    width: calc(var(--normal-text-size) * 2.5);
	height: calc(var(--normal-text-size) * 2.5);
	opacity: 1;
    transition: opacity 0.2s ease-in-out;
	cursor: pointer;
}

img.go-icon:hover {
	opacity: 0.6;
}

.chapter-text {
	display: none;
	flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    height: 100%;
    width: 20vw;
	padding: 5vw 2vw;
	border: 0;
	border-left: 1px solid var(--gray-color);
	overflow-y: hidden;
	text-align: end;
}

div.chapter-navigation {
	position: absolute;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	bottom: var(--normal-text-size);
	width: 20vw;
	height: calc(var(--normal-text-size) * 6);
	cursor: pointer;
}



/* ------------------------------------------------------------
   Team page
-------------------------------------------------------------*/

div.div-institutions-container {
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;
	align-content: center;
}

a.a-institution {
	width: 15vw;
    text-align: center;
}

img.img-partner {
	width: 10vw;
    margin: 0;
    transition: filter 0.2s ease-in-out;
    border: 1px solid var(--light-color);
    padding: 10px;
}

img.img-partner:hover {
	border: 1px solid var(--gray-color);
}

div.div-team-container {
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;
	align-content: center;
	flex-wrap: wrap;
}

div.div-team-people {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	align-content: center;
	width: 15vw;
	font-size: var(--normal-text-size);
	padding-top: calc(var(--normal-text-size));
}

div.img-team-people {
	height: calc(var(--normal-text-size) * 8);
	width: calc(var(--normal-text-size) * 8);
	border-radius: calc(var(--normal-text-size) * 8);
	cursor: pointer;
	background-size: 100%;
	background-position: center;
	background-repeat: no-repeat;
	border: 1px solid var(--gray-color);
	filter: grayscale(1);
	transition: background-size 0.2s ease-in-out, transform 0.2s ease-in-out;
}

div.img-team-people:hover {
	background-size: 110%;
}


/* ------------------------------------------------------------
   List pages 
-------------------------------------------------------------*/

div.pagination {
	display: flex;
	flex-direction: row; 
	align-content: center; 
	align-items: center;
	justify-content: space-between;
}

div.pagination > span {
	flex-grow: 1; 
	text-align: center; 
	color: var(--dark-color); 
	font-size: var(--big-text-size);
}

div.pagination > img {
	width: var(--big-text-size); 
	height: var(--big-text-size);
}

div.below-pagination {
	 margin-top: 2vw;
}

p.below-pagination-title {
	color: var(--dark-color); 
	font-size: var(--big-text-size);
	text-transform: uppercase;
	line-height: 1;
}

p.below-pagination-title > span {
	font-size: var(--normal-text-size);
	text-transform: none;
}

table.list-item-container {
	width: 100%;
	height: auto;
	border-collapse: collapse;
	margin-bottom: 5px;
	font-size: var(--normal-text-size);
}

table.list-item-container:last-of-type {
    border-bottom: 1px solid var(--dark-color);
}

table.list-item-container > tbody > tr.small-height > td.small {
	width: calc(var(--normal-text-size) * 2);
}
			
table.list-item-container > tbody > tr.small-height {
	height: calc(var(--normal-text-size) * 2);
}
			
table.list-item-container > tbody > tr.small-height > td.large {
	width: auto;
	height: auto;
	border: 0;
}

table.list-item-container > tbody > tr.small-height > td.large-top {
	border-top: 1px solid var(--dark-color);
}

table.list-item-container > tbody > tr.small-height > td.large-bottom {
	border-bottom: 0 solid var(--dark-color);
}

table.list-item-container > tbody > tr.small-height > td.top-left, 
table.list-item-container > tbody > tr.small-height > td.top-right {
	border-top: 1px solid var(--dark-color);
}

table.list-item-container > tbody > tr.small-height > td.top-right, 
table.list-item-container > tbody > tr.small-height > td.bottom-left {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

table.list-item-container > tbody > tr.small-height > td.top-left, 
table.list-item-container > tbody > tr.small-height > td.bottom-right {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

section.list-item-container {
	width: 100%;
	text-align: left;
}

.list-item-container-content {
	display: none;
}

.list-item-container-title {
	display: flex;
	flex-direction: row;
	align-content: center;
    align-items: center;
	justify-content: space-between;
}

.list-item-container-title > h2 {
	font-size: var(--big-text-size);
	color: var(--dark-color);
	cursor: pointer;
	transition: color 0.2s ease-in-out, transform 0.2s ease-in-out;
}

.list-item-container-title > h2:hover {
	color: var(--secondary-color);
}

.list-item-metadata {
	margin-top: calc(var(--normal-text-size) * 0.5);
	border-top: 1px solid var(--primary-color);
}

.list-item-metadata > p:not(.list-item-keywords) > a {
	cursor: pointer;
}

.list-item-metadata > p:not(.list-item-keywords) > a:hover {
	color: var(--primary-color);
	cursor: pointer;
}

.list-item-keywords {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-content: flex-start;
	align-items: flex-start;
	font-size: var(--normal-text-size);
}

a.keyword:link, a.keyword:visited {
	text-decoration: none;
	height: calc(var(--normal-text-size) * 2);
	display: inline-block;
	border-radius: var(--normal-text-size);
	padding: calc(var(--normal-text-size) * 0.5);
	margin: calc(var(--normal-text-size) * 0.5) calc(var(--normal-text-size) * 0.5) 0 0;
	cursor: pointer;
	box-sizing: border-box;
	line-height: var(--normal-text-size);
	transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out;
}

a.keyword:hover {
	border: 1px solid var(--dark-color);
	opacity: 0.8;
}

a.keyword-1 {
	color: var(--light-color);
	background-color: var(--primary-color);
	border: 1px solid var(--primary-color);
}

a.keyword-2 {
	color: var(--light-color);
	background-color: var(--secondary-color);
	border: 1px solid var(--secondary-color);
}

a.keyword-3 {
	color: var(--dark-color);
	background-color: var(--gray-color);
	border: 1px solid var(--gray-color);
}

a.keyword-unselected {
	color: var(--dark-color);
	border: 1px solid var(--gray-color);
}

div.filter-container {
	display: flex;
	flex-direction: row;
	align-content: center;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--normal-text-size);
}

select.filters {
	border: 1px solid var(--dark-color);
	height: calc(var(--normal-text-size) * 3);
	border-radius: calc(var(--normal-text-size) * 1.5);
	padding: calc(var(--normal-text-size) * 0.5);
	box-sizing: border-box;
	width: 85%;
}


/* ------------------------------------------------------------
   Detail page
-------------------------------------------------------------*/

h1.h1-detail {
	color: var(--light-color); 
	font-size: var(--title2-size);
}

div.div-over-thumb {
	width:100%; 
	display: flex; 
	flex-direction: row; 
	align-content: center; 
	align-items: center; 
	justify-content: space-between; 
	border: 1px solid var(--light-color);
	padding: calc(var(--normal-text-size) * 0.5);
	box-sizing: border-box;
}

span.span-preview-prev-next {
	display: flex; 
	flex-direction: row; 
	flex-grow: 1;
	align-content: center; 
	align-items: center;
	justify-content: center;
}

table.table-detail {
	width: 100%;
	border-collapse: collapse; 
	border: 1px solid var(--light-color);
	text-align: start;
}

.table-detail tr td {
    color: var(--light-color);
	border: 1px solid var(--light-color);
	padding: var(--normal-text-size);
	height: auto; 
	vertical-align: top;
}

.table-detail tr.chapter td:nth-child(1) {
	font-size: 2.4rem;
    color: var(--bg-color);
    font-weight: bold;
	padding-right: 0;
}

table.table-detail a:link, table.table-detail a:visited {
	color: var(--light-color);
}

table.table-detail a:hover {
	color: var(--gray-color);
}

table.table-detail td.table-detail-title {
	font-size: var(--big-text-size);
	color: var(--dark-color);
	background-color: var(--light-color);
}

table.table-detail a.link-director:link, table.table-detail a.link-director:visited {
	color: var(--light-color);
}

table.table-detail a.link-director:hover {
	color: var(--gray-color);
}

table.table-detail a.keyword:link, table.table-detail a.keyword:visited {
	color: var(--primary-color);
}

table.table-detail a.keyword:hover {
	color: var(--light-color);
	border: 1px solid var(--light-color);
	opacity: 1;
}

#pdf-thumbnail, #img-thumbnail {
	background-color: var(--primary-color);
	width:100%;
	cursor: zoom-in;
}

div.div-img-thumbnail-container {
	display: flex;
	align-content: center;
	align-items: center;
	border: 1px solid white;
	border-top: 0;
	box-sizing: border-box;
	aspect-ratio: 0.75;
	background-color: var(--dark-color);
}

div.example_container {
	margin: 1rem 0;
	box-sizing: border-box;
	background-color: #f8f8f8;
	padding: 1rem;
	color: var(--dark-color);
	font-size: var(--normal-text-size);
	font-weight: normal;
}

div.example_container > hr {
	display: none;
}

div.dial {
    margin-top: 0.5rem;
}

div.glossa {
    font-style: italic;
}

div.bulletList {
	color: var(--primary-color);
	font-weight: bold;
}

a.hover-light:hover {
	color: var(--light-color);
}

div.div-address {
	display: flex; 
	flex-direction: row; 
	align-items: center;
}

div.div-address > img {
	margin: 5px; 
	margin-left: 0; 
	filter: invert(1);
}

/* ------------------------------------------------------------
   Carousel page
-------------------------------------------------------------*/

div.carousel-page {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 5vw;
    padding-top: max(5vw, calc(var(--normal-text-size) * 7));
	padding-bottom: 0;
    box-sizing: border-box;
}

div.carousel-container {
	display: flex;
	flex-direction: row;
	width: 100%;
	height: calc(90vh - max(5vw, calc(var(--normal-text-size) * 7)));
	align-items: center;
}

div#carousel-left, div#carousel-right {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-content: center;
	align-items: center;
}

canvas.carousel-box {
	position: absolute;
	bottom: 50%;
	transform: translateY(50%);
	aspect-ratio: 3 / 4;
	transition: 0.3s;
	box-shadow: 0 10px 15px rgba(0, 0, 0, 0.3);
}

canvas#carousel-box1 {
	height: 55vh;
	left: 15%;
	z-index: 1;
	filter: brightness(30%);
}

canvas#carousel-box2 {
	height: 60vh;
	left: 25%;
	z-index: 2;
	filter: brightness(60%);
}

canvas#carousel-box3 {
	height: 70vh;
	left: 50%;
	transform: translate(-50%, 50%);
	z-index: 3;
	filter: brightness(100%);
}

canvas#carousel-box4 {
	height: 60vh;
	right: 25%;
	z-index: 2;
	filter: brightness(60%);
}

canvas#carousel-box5 {
	height: 55vh;
	right: 15%;
	z-index: 1;
	filter: brightness(30%);
}

div.carousel-below {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-content: center;
	align-items: center;
	width: fit-content;
	height: calc(var(--normal-text-size) * 2);
    font-size: var(--normal-text-size);
    border-radius: var(--normal-text-size);
    padding: 0 var(--normal-text-size);
	z-index: 100;
	background-color: var(--light-color);
}


/* ------------------------------------------------------------
   Flipping page
-------------------------------------------------------------*/

div.flip-page {
	width: 100%;
	display: flex;
	flex-direction: column;
	padding: 1vw;
    padding-top: calc(var(--normal-text-size) * 6);
	padding-bottom: 0;
    box-sizing: border-box;
	align-content: center;
	align-items: center;
	justify-content: center;
}

iframe#iframe-flip-page {
	width: 95vw; 
	height: 78vh;
	border: 0;
}

div.flip-below {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-content: center;
	align-items: center;
	width: 95vw;
	height: calc(20vh - calc(var(--normal-text-size) * 6));
	font-size: var(--normal-text-size);
}

a.flip-below-link {
	border: 1px solid var(--dark-color);
	background-color: var(--light-color);
	height: calc(var(--normal-text-size) * 1.5);
	line-height: calc(var(--normal-text-size) * 1.5);
	border-radius: calc(var(--normal-text-size) * 0.75);
	padding: 0 calc(var(--normal-text-size) * 0.5);
	transition: background-color 0.2s ease-in-out, transform 0.2s ease-in-out;
}

a.flip-below-link-selected {
	background-color: var(--primary-color);
	color: var(--light-color);
	border-color: var(--light-color);
}

a.flip-below-link:hover {
	background-color: var(--gray-color);
	color: var(--dark-color);
}

div.flip-below-spacer {
	flex-grow: 1; 
	border-top: 1px solid var(--light-color);
}


/* ------------------------------------------------------------
   Serendipity page
-------------------------------------------------------------*/
 
div.div-serendipity-columns {
              column-count: 5;
              column-gap: 1vw;
              position: absolute;
              padding: 0 5vw 0 5vw;
              margin-bottom: 1vw;
              padding-top: 1vw;
              padding-bottom: calc(var(--normal-text-size) * 2);
              top: calc(var(--normal-text-size) * 10);
              height: auto; z-index: -10;
}
 
img.img-serendipity {
              width: 16.9vw;
              margin-bottom: 1vw;
              display: flex;
              flex-direction: column;
              justify-content: space-between;
              border: 1px solid var(--dark-color);
              cursor: zoom-in;
              transition: filter 0.2s ease-in-out
}
 
img.img-serendipity:hover {
              filter: brightness(1.2);
}


/* ------------------------------------------------------------
   Project page
-------------------------------------------------------------*/

div.project-background {
	position: fixed; 
	top: 0; 
	left: 0; 
	width: 100vw; 
	height: 100%; 
	background-image: url("../images/home/background.jpg"); 
	background-repeat: no-repeat; 
	background-size: cover; 
	z-index: -10;
}

div.project-title {
	display: inline-block;
	margin-top: 25vh;
	padding: 5vw;
	padding-top: 2.5vw;
	background-color: #efefef; 
	box-sizing: border-box; 
	padding-bottom: 0; 
	margin-bottom: 0; 
	width: 50%;
	color: var(--primary-color);
	font-size: var(--subtitle-size);
	letter-spacing: calc(var(--normal-text-size) * 0.1);
}

div.project-text {
	padding: 5vw;
	background-color: #efefef;
	box-sizing: border-box;
	margin-top: 0;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
}

div.project-text > div {
	width: 47%;
}

div.project-button {
	display: flex; 
	flex-direction: row; 
	align-content: center; 
	align-items: center; 
	justify-content: space-between; 
	width: 100%;
	height: 5vw;
    background-color: var(--primary-color);
	cursor: pointer;
}

div.project-button > img {
	height: 5vw;
}


/* ------------------------------------------------------------
   Map page
-------------------------------------------------------------*/

#map {
	width: 100vw;
	height: calc(100vh - var(--normal-text-size));
	overflow: hidden;
}

.leaflet-tile {
	filter: grayscale(100%) contrast(0.5);
}

div#map-record {
	position: fixed;
    top: calc(var(--normal-text-size) * 12);
	left: 5vw;
	z-index: 999; 
	visibility: hidden; 
	background-color: var(--light-color); 
	min-width: 300px;
}

div#map-record.div-big-square {
    border: 0;
    margin: 0;
}

/* ------------------------------------------------------------
   For smaller displays 
-------------------------------------------------------------*/

@media (max-width: 1499px) {
	:root {
		--title-size: 4rem;
		--subtitle-size: 2.5rem;
		--title2-size: 2rem;
		--big-text-size: 1.2rem;
		--normal-text-size: 0.9rem;
		--caption-text-size: 0.7rem;
	}
}

@media (max-width: 1250px) {
	:root {
		--title-size: 3.5rem;
		--subtitle-size: 2rem;
		--title2-size: 1.8rem;
		--big-text-size: 1.1rem;
		--normal-text-size: 0.85rem;
		--caption-text-size: 0.65rem;
	}
}