@charset "UTF-8";
/* CSS Document */

:root {
	--primary-color: #8D0544;
	--secondary-color: #8D0544;
	--bg-color: #FFF;
	--dark-color: #000;
	--light-color: #FFF;
	--pnrr-color: #09244f;
	--hover-color: #EFEFEF;
	--gray-color: #D9D9D9;
	--dark-gray-color: #888888;
	
	--design-big-text: clamp(40px, 1.55vw, 1.55vw);
	--design-small-text: clamp(24px, 0.94vw, 0.94vw);
}

body {
	scroll-behavior: smooth;
}

h1 {
	font-size: var(--design-big-text);
}

span.home-title, span.home-subtitle, div.home-normal-text {
	background-color: transparent;
}

.design-big-text {
	font-size: var(--design-big-text);
}

.design-small-text, .vertical-text {
	font-size: var(--design-small-text);
}

div.vertical-container {
	width: clamp(100px, 4vw, 4vw);
}

img.vertical-text-icon {
	width: var(--design-small-text);
	height: var(--design-small-text);
}

.chapter-text {
	padding: 0; 
	align-items: flex-start; 
	justify-content: flex-end; 
	background-position: center; 
	background-size: cover; 
	background-repeat: no-repeat; 
	transition: flex-grow 0.5s ease;
}

div#horizontal-stripes {
	display: none;
}

div.back-to-home {
	background-image: url(../images/local/icon_home.png);
	background-size: 70%;
}

div.unique-container-title, div.unique-container-podcast-title {
	position: relative;
    right: 0;
    width: 100%;
    padding: 5vw;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-between;
    box-sizing: border-box;
    top: calc(var(--normal-text-size) * 10);
    z-index: -10;
	border: 0;
	border-bottom: 1px solid var(--dark-color);
	padding-top: 0;
	font-size: var(--design-small-text);
}

div.unique-container, div.podcast-container {
	position: relative;
    right: 0;
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    box-sizing: border-box;
    top: calc(var(--normal-text-size) * 10);
	border: 0;
	margin-top: 0;
}

div.unique-container-left {
    min-width: 25vw;
	border: 0;
	font-size: var(--design-big-text);
	color: var(--dark-gray-color);
	padding: 5vw;
	padding-top: 0;
	box-sizing: border-box;
}

div.unique-container-right {
	font-size: var(--design-small-text);
    flex-grow: 1;
	color: var(--dark-color);
	border-left: 1px solid var(--dark-color);
	padding: 5vw;
	padding-top: 0;
	box-sizing: border-box;
}

div.unique-container-subtitle {
	font-size: var(--design-small-text);
	color: var(--dark-color);
	font-weight: normal;
}

#p-accompanying-text {
	font-size: var(--design-small-text);
}

div.vertical-container {
	background-color: var(--light-color);
	background-image: none !important;
	border: 0;
	border-left: 1px solid var(--dark-color);
	font-size: var(--design-big-text);
}

div.unique-container-podcast-title {
	align-items: center;
	color: var(--dark-gray-color);
	text-align: center;
	font-size: var(--design-big-text);
	padding: 0;
	border: 0;
}

span.keyword {
	display: inline-block;
	margin-right: var(--design-big-text);
	background-color: var(--light-color);
	border: 1px solid var(--light-color);
	box-sizing: border-box;
	font-size: var(--design-big-text);
	padding: 0.25vw;
	cursor: default;
}

span.keyword:hover {
	border: 1px dashed var(--dark-color);
}

.table-podcast {
	margin-top: calc(var(--normal-text-size) * 12);
	border: 0;
	border-collapse: collapse;
	width: 100%;
	font-size: var(--design-small-text);
	text-align: left;
	line-height: 1.5;
	display: grid; 
	grid-template-columns: 1fr 1fr 1fr;
}

div.table-podcast > div {
	padding: 5vw;
	border-top: 1px solid var(--dark-color);
}

div.table-podcast-left {
	border-right: 1px solid var(--dark-color);
	color: var(--dark-gray-color);
}

div.table-podcast-right {
	grid-column: span 2;
}

.h1-podcast {
	color: var(--dark-color);
	font-weight: bold;
	text-align: center;
	font-size: var(--design-big-text);
	padding: 0;
	margin: 0;
	line-height: normal;
}

.podcast-section-title {
	display: block;
	font-size: var(--design-big-text);
	margin-bottom: var(--design-big-text);
}

.podcast-spacer {
	background-size: cover; 
	background-position: center; 
	background-repeat: no-repeat;
	height: 5vw;
	grid-column: span 3;
	padding: 0;
}

div#podcast-lateral-nav {
	display: flex;
    flex-direction: column;
    right: 1vw;
	position: fixed;
  	top: 50%;
	transform: translate(0, -50%);
}

svg.scaled {
	width: 1.5vw;
	height: 1.5vw;
	min-width: 30px;
	min-height: 30px;
	margin-bottom: 0.5vw;
	cursor: pointer;
}

svg.scaled > circle {
	transition: fill 0.3s ease-in-out;
}

svg.scaled:hover > circle {
	fill: var(--gray-color);
}

span.podcast-button-container {
	font-size: var(--design-small-text);
	display: flex; 
	align-content: center; 
	align-items: center; 
	justify-content: space-between; 
	background-color: var(--light-color); 
	border: 1px solid var(--dark-color);
	width: auto; 
	margin: calc(var(--normal-text-size) * 2.5); 
	padding: calc(var(--normal-text-size) * 0.5); 
	min-height: calc(var(--title2-size) * 1.5); 
	border-radius: calc(var(--title2-size) * 2)
}

span.podcast-duration {
	font-size: var(--design-small-text);
	text-align: center; 
	margin: 0 0.5vw; 
	display: flex; 
	align-content: center; 
	align-items: center; 
	height: calc(var(--normal-text-size) * 3);
	width: calc(var(--normal-text-size) * 3);
	border-radius: calc(var(--normal-text-size) * 1.5);
	border: 1px dashed var(--dark-color); 
	background-color: var(--light-color);
	justify-content: center;
}

span.podcast-button {
	font-size: var(--design-small-text);
	cursor: pointer; 
	text-align: center; 
	margin: 0 0.5vw; 
	display: flex; 
	align-content: center; 
	align-items: center; 
	height: calc(var(--normal-text-size) * 3);
	border-radius: calc(var(--normal-text-size) * 1.5);
	border: 1px dashed var(--dark-color); 
	background-color: var(--primary-color); 
	color: var(--light-color);
	transition: 0.3s ease-in-out;
}

span.podcast-button:hover {
	background-color: var(--gray-color); 
}


/* Carousel ------------------------------------------------ */

.carousel-container-in {
	position: relative;
	width: 75vh;
	height: 40vh;
	perspective: 600vh;
	transform-style: preserve-3d;
}

.carousel-container {
	justify-content: space-between;
}

.carousel {
	position: absolute;
	width: 100%;
	height: 100%;
	transform-style: preserve-3d;
}

.carousel canvas {
	position: absolute;
	object-fit: contain;
	width: 100%;
	height: 100%;
	transition: transform 0.8s ease-in-out, filter 0.8s ease-in-out, opacity 0.8s ease-in-out, z-index 0s 0.4s;
	opacity: 0;
	transform: scale(0.8) translateZ(0);
	will-change: transform, opacity;
	border-radius: 5px;
}

.carousel canvas.active {
	opacity: 1;
}

.carousel-below-title {
	position: relative; 
	top: calc(var(--design-small-text) * -4.8); 
	font-size: var(--design-small-text);
	text-align: center;
	background-color: var(--light-color);
	border-radius: var(--design-small-text);
	padding: 0 var(--design-small-text);
}


/* Map ----------------------------------------------------- */

#map {
	width: 100vw;
    height: 100vh;
    border: none;
    object-fit: cover;
}

div#map-record {
	position: absolute;
	min-width: 20vw; 
	left: 1vw; 
	padding: 1vw; 
	border-radius: 1vw; 
	border: 1px solid var(--dark-color); 
	height: auto;
	max-height: calc(100vh - var(--title2-size) * 2);
	top: 50%; 
	transform: translate(0, -50%);
}

#map-carousel {
	position: absolute;
    bottom: 1vw;
    left: 50%;
    transform: translate(-50%, -50%);
	background-color: unset;
	visibility: collapse;
	pointer-events: none;
}

span#button-back-to-map {
	position: fixed; 
	bottom: 0; 
	margin: 1vw;
}

span#button-go-to-podcast {
	position: fixed; 
	bottom: 0; 
	right: 0; 
	margin: 1vw; 
	visibility: hidden
}

/* Orientation ---------------------------------------------- */

@media (orientation: portrait) {
	
	/* CSS rules for portrait orientation */
	
	:root {
		--design-big-text: 1.3rem;
		--design-small-text: 0.9rem;
	}
	
	.table-podcast {
		margin-top: calc(var(--normal-text-size) * 9);
		display: block;
	}
	
	div.table-podcast-left {
		border: 0;
		padding-bottom: 0;
	}
	
	div.table-podcast > div.table-podcast-right {
		border: 0;
	}
	
	div.podcast-buttons {
		padding: 5vw;
	}
	
	span.podcast-button-container {
		width: fit-content;
	}
	
	div.podcast-buttons {
		display: flex;
		flex-direction: row;
		align-content: center;
		align-items: center;
		justify-content: center;
	}
	
	#map {
		width: 100vw;
		height: 50dvh;
		border: none;
		object-fit: contain;
		transform: translateY(25dvh);
	}
	
	#map-carousel {
		display: none;
    	top: 5vw;
	}
	
	div#map-record {
		left: 50%;
		position: fixed;
		top: auto;
		transform: translate(-50%);
		width: 96vw;
		bottom: 6vh;
	}
	
	div#vertical-stripes {
		display: none;
	}
	
	div#horizontal-stripes {
		display: flex;
		flex-direction: column;
		justify-content: center;
		margin-top: calc(15vw + var(--normal-text-size) * 3);
		height: calc(100dvh - 15vw - var(--normal-text-size) * 3);
	}
	
	div#horizontal-stripes > div {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-content: center;
		padding: 5vw;
		border-top: 1px solid var(--dark-color);
		background-size: cover;
		background-position: center;
		background-repeat: no-repeat;
		flex-grow: 1;
	}
	
	div#horizontal-stripes > div > h1 {
		margin: 0;
		color: var(--light-color);
		height: auto;
		line-height: normal;
		display: inline-block;
	}
	
	span#button-back-to-map {
		margin: 5vw;
	}

	span#button-go-to-podcast {
		margin: 5vw; 
	}
}