@charset "UTF-8";
/* CSS Document */

@font-face {
	font-family: 'icomoon';
	src: url('../_fonts/icomoon.eot');
	src: url('../_fonts/icomoon.eot?#iefix') format('embedded-opentype'),
	url('../_fonts/icomoon.woff2') format('woff2'),
	url('../_fonts/icomoon.woff') format('woff'),
	url('../_fonts/icomoon.ttf') format('truetype'),
	url('../_fonts/icomoon.svg#icomoon') format('svg');
	font-weight: 200;
	font-style: normal;
	text-rendering: optimizeLegibility;
}
body, html { background: #fff; }

body {
	position: relative;
	display: block;
	overflow: hidden;
	margin: 0;
	padding: 0;
	font-size: 100%;
	color: #000;
	font-family: 'Montserrat', sans-serif;
	text-rendering: optimizeLegibility;
	font-weight: 200;
	caret-color: transparent;
}

body.home { background: #000; color: #fff; }

body strong { font-weight: 800; }
body b { font-weight: 800; }

h1, h2, h3 { font-family: 'Montserrat', sans-serif; font-weight: 700; line-height: 1.3em; }
textarea, input:focus, textarea, input:focus, a, a:focus { outline: none; }
h2 { font-size: 180%; }


button { cursor: pointer;}
button:hover, .social:hover { color: #666 !important; }


a.column { background-color: #ccc; }
figure { padding: 0; margin: 0; display: block; overflow: hidden; position: relative; }
figure img { width: 100%; height: auto; padding: 0; margin: 0; display: block; }

/* Header */

header {
	position: fixed;
	overflow: visible;
	display: block;
	left: 50%;
	transform: translateX(-50%);
	box-sizing: border-box;
	background-color: transparent;
	z-index: 100;
	height: 84px;
	top: 0;
	width: auto;
}

#logo {
	display: block;
	overflow: hidden;
	position: absolute;
	margin: 0 !important;
	padding: 0 !important;
	top: 20px;
}
#logo { padding: 0; margin: 0; display: inline-block; position: relative; overflow: hidden; }
#about #logo { left: 50%; transform: translateX(-50%); }
#logo svg {
	display: inline-block;
	overflow: hidden;
	height: 35px;
	width: auto;
	margin: 0;
	padding: 0;
}
#logosvg path { fill: #000 !important; }
#logo a:hover, nav#menu ul li a:hover { opacity: 0.5; }

.homebutton,
.menubutton { font-family: 'icomoon'; top: 15px; left: 20px; }

.homebutton,
.menubutton {
	display: block;
	overflow: hidden;
	position: fixed;
	background: transparent;
	color: #999;
	border: none;
	font-size: 120%;
	z-index: 200;
}

.social {
	display: block;
	overflow: hidden;
	position: fixed;
	font-family: 'icomoon';
	background: transparent;
	color: #999;
	border: none;
	font-size: 140%;
	bottom: 20px;
	z-index: 200;
	font-size: 23px;
}
.social.left { left: 30px; }
.social.right { left: 60px; }


footer {
	position: fixed;
	overflow: hidden;
	display: block;
	width: 100%;
	box-sizing: border-box;
	background-color: transparent;
	z-index: 180;
	height: 84px;	
	bottom: 0;
	left: 0;
}

footer .thumbs {
	display: block;
	overflow: hidden;
	position: absolute;
	bottom: 25px;
	right: 25px;
	wrap: no-wrap;
	font-family: 'icomoon';
	background: transparent;
	color: #999;
	border: none;
	font-size: 32px;
	z-index: 180;
	line-height: 1em;
	height: 24px;
}

footer .pages {
	display: block;
	overflow: hidden;
	position: absolute;
	bottom: 29px;
	right: 66px;
	background: transparent;
	color: #777;
	border: none;
	font-size: 80%;
	text-align: right;
	letter-spacing: 0.1em;
	z-index: 180;
}


/* CONTATTI */
#contatti {
	display: block;
	overflow: hidden;
	position: absolute;
	top: 50%;
	left: 50%;
	text-align: center;
	width: 80%;
	transform: translate(-50%,-50%);
	margin: 0;
	box-sizing: border-box;
}
#contatti p { font-size: 150%; display:block; overflow: hidden; font-weight: 100; color: #000; text-align: center; line-height: 1.4em; padding: 0; margin: 0; }
#contatti a { color: #000; text-decoration: none; } #contatti a:hover { color: #999; }



#slideshow {
    position: absolute;
    top: 84px;
    left: 0;
    width: 100vw;
    height: calc(100dvh - 168px);
    overflow: hidden;
}
.slide {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    aspect-ratio: 5 / 4;
    max-width: 100%;
    max-height: 100%;
    display: none;
    justify-content: center;
    align-items: center;
    gap: 5px;
    flex-wrap: nowrap;
}
.slide:visible { display: flex !important; }
.slide > * {
    flex-shrink: 1;
    flex-grow: 0;
    min-width: 0;
    max-height: 100%;
    max-width: 100%;
    height: auto;
    width: auto;
    object-fit: contain;
}
.slide > *:only-child { height: 100%; }
.slide > *:not(:only-child) { height: 100%; }

.slide iframe {
    aspect-ratio: 16 / 9;
    width: 100% !important; /* Forza la larghezza nel contenitore */
    max-width: 100%;
    height: auto !important;
    border: none;
}

.slide.double iframe.vertical-video {
  flex: 0.5625;
    aspect-ratio: 9 / 16;
}

.slide.double img {
	flex: 0.8;
  aspect-ratio: 4 / 5;
}



.slide.active { display: flex; }

.prev, .next {
    position: absolute;
    top: 0;
    color: white;
    font-weight: bold;
    font-size: 24px;
    height: 100%;
	z-index: 185;
    background: transparent;
    text-decoration: none;
    width: 45%;
    cursor: none !important;
}
html body .next, html body .next,
html body .next *, html body .next * { cursor: none !important; }
.next { right: 0; border-radius: 3px 0 0 3px; }
.prev { left: 0; border-radius: 0 3px 3px 0; }

#next, #prev {
    width: 40px;
    height: 4px;
    position: fixed;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 140;
    display: none;
    transform: translate(-50%, -50%);
    transition: transform 0.1s ease-out;
}

#about,
.overlay,
.overtitle {
	width: 100%;
	display: none;
	padding: 0;
	margin: 0;
	top: 0;
	left: 0;
	box-sizing: border-box;
	cursor: default;
	position: fixed;
}

.overlay { background: rgba(0,0,0,.8); z-index: 190; position: fixed; height: 100dvh; }
#about { height: 100dvh !important; width: 100% !important; background: #fff; z-index: 191; }
.overtitle { background: rgba(255,255,255,1); z-index: 189; position: absolute; height: calc(100vh - 165px); }
.overtitle h2 { width: 100%; text-align: center; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); color: #000; font-size: 140%; font-weight: 200; }

.readmore {
	display: block;
	overflow: hidden;
	position: fixed;
	text-align: center;
	bottom: 30px;
	left: 50%;
	font-weight: 200;
	transform: translateX(-50%);
	width: auto;
	background: transparent;
	border: none;
	color: #999;
	z-index: 190;
	font-size: 80%;
}
#menu,
#thumbs {
    position: fixed;
    top: 0;
    height: 100vh;
    background-color: #ffffff;
    z-index: 195;    
    overflow: hidden;
    overflow-y: auto;
	background-color: #fff;	
	width: 100%; max-width: 100%;
	box-sizing: border-box !important;
	display: flex;
}
#menu { left: -100%; padding: 84px 40px 40px 60px; }
#menu.active { left: 0%; ,,,}
#thumbs { right: -100%; padding: 84px 60px 40px 40px; display: flex; flex-wrap: wrap; align-content: flex-start; gap: 20px; }


#contatti > small { font-size: 60% !important; }

button:focus { color: #000; }


@media (min-width: 868px) {
    #menu { width: 40%; max-width: 720px; }
    #thumbs { width: 60%; max-width: 980px; }
}
@media (max-width: 867px) {
    #menu { width: 100%; max-width: 100%;}
    #thumbs { width: 100%; max-width: 100%; gap: 10px !important; padding: 84px 56px 40px 56px; }
	.thumb { flex: 0 0 calc(50% - (20px / 2)) !important; }
	button.close-thumbs { left: 50px !important; top: 15px !important; font-size: 140% !important; position: fixed !important; }
	.menubutton { top: 30px; }
	#contatti { font-size: .63rem !important; }
	#contatti small { font-size: 12px !important; }
	.slide {
		aspect-ratio: auto;
		height: 100%;
	};
	
	
}

#menu.active { opacity: 1; }
#thumbs.active { right: 0 !important; }



.thumb {
	display: flex;
	flex: 0 0 calc(33.33% - (40px / 3));
	cursor: pointer !important;
    margin: auto;

    aspect-ratio: 5 / 4;
    justify-content: center;
    align-items: center;
    gap: 1px;
    flex-wrap: nowrap;
}



/* Immagini e Video */
.thumb > * {
    flex-shrink: 1;    /* Permette di rimpicciolirsi */
    flex-grow: 0;      /* Non si allungano a caso */
    min-width: 0;      /* Cruciale per permettere il rimpicciolimento */
    max-height: 100%;
    max-width: 100%;
    height: auto;
    width: auto;
    object-fit: contain;
}

/* Forza l'altezza al 100% se è un'immagine singola per tenerla grande nel 5:4 */
.thumb > *:only-child {
    height: 100%;
}

/* Se ci sono due elementi, ognuno può essere alto fino al 100% 
   ma la larghezza si deve adattare */
.thumb > *:not(:only-child) {
    height: 100%;
}

/* VIDEO YOUTUBE - Risoluzione sparizione */
.thumb iframe {
    aspect-ratio: 16 / 9;
    width: 100% !important; /* Forza la larghezza nel contenitore */
    max-width: 100%;
    height: auto !important;
    border: none;
}

.thumb.double > iframe.vertical-video {
  flex: 0.5625;
    aspect-ratio: 9 / 16;
}

.thumb.double > img {
	flex: 0.8;
  aspect-ratio: 4 / 5;
}

#thumbs:hover .thumb { opacity: 0.3; }
#thumbs .thumb:hover { opacity: 1; }

/* ANIMATIONS & MEDIA QUERIES */

#thumbs {
	transition: all 0.7s;
	-webkit-transition: all 0.7s;
	-moz-transition: all 0.7s;
	-ms-transition: all 0.7s;
	-o-transition: all 0.7s;
}

button,
#thumbs .thumb,
.social {
	transition: all 0.3s;
	-webkit-transition: all 0.3s;
	-moz-transition: all 0.3s;
	-ms-transition: all 0.3s;
	-o-transition: all 0.3s;
}

button.close-thumbs,
button.close-menu,
#menu, #thumbs, #menu ul li {
	transition: all 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}


button.close-thumbs,
button.close-menu {
	transform: rotate(45deg);
	position: absolute;
	top: 30px;
	z-index: 200;
	opacity: 0;
	font-family: 'icomoon';
	border: none;
	background-color: transparent;
	font-size: 130%;
}
button.close-menu { right: 36px; }
button.close-thumbs { left: 36px; }

#menu.active button.close-menu,
#thumbs.active button.close-thumbs { opacity: .5; }

#menu ul {
	width: 100%;
	display: block;
	position: relative;
	text-align: right;
	padding: 0;
	margin: 0;
	list-style: none;
}

#menu ul li {
	width: 100%;
	display: block;
	position: relative;
	text-align: right;
	padding: 0 0 20px 0;
	margin: 50px 0 0 0;
	list-style: none;
	opacity: 0;
	transition-delay: 0.2s;
	transition-duration: .6s;
}

#menu.active ul li { margin-top: 0px; opacity: 1; }

#menu ul li a {
	color: #000;
	font-size: 150%;
	text-decoration: none;
}


.video-hero {
	display: flex;
	justify-content: center;
	align-items: center;
	height: calc(100vh - 228px);  
	width: 100%;
	box-sizing: border-box;
	aspect-ratio: 5 / 4; 
	max-width: calc(calc(100vh - 228px) * (5 / 4));
	max-height: calc(100vw * (5 / 4));
	margin: auto;
	pointer-events: none;
}

.video-container {
  width: 100%;
  height: 100%;
	aspect-ratio: 5 / 4; 
	max-width: calc(calc(100vh - 228px) * (5 / 4));
	max-height: calc(100vw * (5 / 4));
  display: flex;
  justify-content: center;
  align-items: center;
  margin: auto;
}

.video-container iframe {
  width: 100%;
  height: 100%;
  border: none;
  pointer-events: none;
  background: #000;
}
