
body {
	font-family: "Inter", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	color: #000000;
    background: #fff;
	font-size: 1.6rem;
	line-height: 2.0rem;
}
a {
	color: #26777E;
}
a:hover {
	color: #000;
}
a:focus,
button:focus,
input:focus {
    outline: 0px !important;
}
strong, .strong, b {
	font-weight: 700;
}
@media (prefers-reduced-motion: no-preference) {
	:focus {
		outline-offset: 0px;
		background-color: inherit;
		border-radius: 0;
	}
}



h1 {
	font-family: "Atkinson Hyperlegible", sans-serif;
	font-size: 3.6rem;
	line-height: 4.4rem;
	margin: 0;
}
h1 + h2 {
	font-size: 1.8rem;
	line-height: 2.2rem;
	margin: 0;
	color: #000;
	font-weight: 400;
}
h2 {
	font-family: "Atkinson Hyperlegible", sans-serif;
	font-size: 3.8rem;
	line-height: 3.8rem;
	margin: 0;
	color: #26777E;
}
h3 {
	font-family: "Atkinson Hyperlegible", sans-serif;
	font-size: 2.0rem;
	line-height: 2.3rem;
}



.btn {
	padding: 15px 30px;
	background: #26777E;
	text-transform: none;
	border-radius: 999px;
	min-width: 260px;
}
.btn:hover {
	background: #000;
}
.btn:focus {
	border-radius: 999px;
}




#masthead {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 98px;
    color: #fff;
	z-index: 999;
}
#masthead .column12-12 {
	margin-top: 12px;
	margin-bottom: 8px;
}
#masthead .header-container {
	background: #fff;
	border-bottom-right-radius: 35px;
	border-bottom-left-radius: 35px;
	box-sizing: border-box;
	max-width: 1340px;
	margin: 0 auto;
}

#masthead .header-content {
    display: flex;
    align-items: center;
	gap: 24px;
}
#logo {
    display: flex;
	text-decoration: none;
    justify-content: flex-end;
	flex-direction: column;
}

#navigation {
    margin-left: auto;
	display: flex;
	align-items: center;
}

#navigation ul {
	display: flex;
	align-items: center;
	gap: 30px;
	margin: 0;
	padding: 0;
	font-weight: 700;
	font-size: 1.6rem;
}
#navigation ul li {
    display: block;
	margin: 0;
}
#navigation ul li a {
    text-decoration: none;
    margin: 0 0;
	color: #000;
}
#navigation ul li a:hover {
	color: #26777E;
}




#page {
	padding: 90px 0 0;
}




.section-container {
	background: #F7F7F7;
	border-radius: 35px;
	box-sizing: border-box;
	max-width: 1340px;
	margin: 0 auto;
	overflow: hidden;
}


#home .section-container {
	background: #F7F7F7 url('../images/alberto-momoli.jpg') no-repeat center right / contain;
	min-height: 525px;
	display: flex;
	align-items: center;
	position: relative;
}
#home .section-container::before {
	content: "";
	position: absolute;
	z-index: 0;
	background: linear-gradient(
	  to right,
	  rgba(247, 247, 247, 1) 0%,
	  rgba(247, 247, 247, 1) 50%,
	  rgba(247, 247, 247, 0) 100%
	);
	width: 80%;
	height: 100%;
	top: 0;
	left: 0;
}
#home .contentInside {
	position: relative;
}

#home .btn {
	margin-top: 20px;
}

.scaricaCV {
	width: 260px;
	text-align: center;
	display: block;
	color: #000;
}
.scaricaCV:hover {
	color: #26777E;
}




#chisono .chisonoContainer {
	display: grid;
	grid-template-columns: 1.20fr 1.15fr;
	align-items: stretch;
	column-gap: 40px;
	position: relative;
}
#chisono .chisonoImg {
	position: relative;
	overflow: hidden;
	margin: -50px 0;
}
#chisono .chisonoImg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
#chisono .chisonoContent {
	background: #F7F7F7;
	border-radius: 35px;
	padding: 40px 60px;
	position: relative;
	z-index: 2;
	margin-left: -100px;
}

/* ====== Responsive ====== */
@media (max-width: 1024px) {
	#chisono .chisonoContainer {
		grid-template-columns: 1fr;
		row-gap: 24px;
	}

	#chisono .chisonoContent {
		margin-left: 0;
	}

	#chisono .chisonoImg {
		height: 52vw;
		max-height: 520px;
	}
	#chisono .chisonoImg img {
		height: 100%;
	}
}



iframe {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	display: block;
	border: 0;
	border-radius: 35px;
}








.cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 30px;
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: center;
}
.cards li {
	background: #F7F7F7;
	border-radius: 35px;
}
.cards li img {
	display: block;
	margin: 0 auto 15px;
	border-top-right-radius: 35px;
	border-top-left-radius: 35px;
}
.cards li h3 {
	margin: 40px 30px 20px;
}
.cards li p {
	margin: 20px 30px 50px;
}








.bookCards {
	grid-template-columns: repeat(auto-fit, 366px);
	gap: 30px;
	justify-content: center;
	margin: 0 auto;
	padding: 0;
	list-style: none;
	text-align: center;
}
.bookCards li p {
	margin: 20px 30px 20px;
}
.bookCards li p strong {
	font-size: 2.4rem;
	line-height: 2.9rem;
	color: #26777E;
}
.bookCards li ul {
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
	text-align: center;
}
.bookCards li ul li {
	display: inline-block;
}
.bookCards li ul li a {
	display: block;
	padding: 10px;
}
.bookCards li ul li a:hover {
	opacity: .5;
}




#colophon {
	background: #26777E;
	color: #fff;
	padding: 30px 0 50px;
}
#colophon a {
	color: #fff;
}
#colophon .column12-12 p:first-child {
	font-size: 2.2rem;
	line-height: 3rem;
}







/*
animazioni
*/

.digit {
	opacity: 0;
    transition: all 1s ease-out;
}

.digit.visible {
	opacity: 1;
}


.fltr.digit {
	transform: translateX(-50px);
}
.fltr.visible {
    transform: none;
}


.fbtt.digit {
	transform: translateY(50px);
}
.fbtt.visible {
    transform: none;
}

.fftf.visible {
    transform: none;
	transition-delay: 0.3s;
}



.cards li.digit {
	transform: translateX(-30px);
}
.cards li.visible {
    transform: none;
}
.cards li:nth-child(2) {
	transition-delay: 0.3s;
}
.cards li:nth-child(3) {
	transition-delay: 0.6s;
}
.cards li:nth-child(4) {
	transition-delay: 0.9s;
}




/* ----- GALLERY BASE ----- */
.gallery {
	--ratio: 4 / 3;
	--gap: 16px;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--gap);
	margin: 0;
	padding: 0;
	list-style: none;
}
.gallery li {
	position: relative;
	aspect-ratio: var(--ratio);
	overflow: hidden;
	border-radius: 35px;
}
.gallery img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
/* ----- RESPONSIVE ----- */
@media (max-width: 1024px) {
  .gallery {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 768px) {
  .gallery {
    grid-template-columns: repeat(2, 1fr);
    --gap: 12px;
  }
}
/* ----- HOVER ----- */
.gallery li:hover img {
  transform: scale(1.03);
  transition: transform 220ms ease;
}
/* ----- FALLBACK per browser senza aspect-ratio ----- */
@supports not (aspect-ratio: 1 / 1) {
  .gallery li {
    position: relative;
  }
  .gallery li::before {
    content: "";
    display: block;
    padding-bottom: calc(100% / (var(--ratio))); /* es. 75% per 4/3 */
  }
  .gallery img {
    position: absolute;
  }
}

/* ----- Varianti rapide (se ti servono) ----- */
/* .gallery--square { --ratio: 1 / 1; } */
/* .gallery--widescreen { --ratio: 16 / 9; } */






@media screen and (max-width: 790px) {
    
    #logo {
        position: absolute;
        left: 20px;
        top: 20px;
        width: calc(100vw - 130px);
    }
	h1 {
    	font-size: 2.0rem;
		line-height: 2.2rem;
	}
	h1 + h2 {
    	font-size: 1.5rem;
		line-height: 1.6rem;
	}
    
	#burger {
		width: 30px;
		height: 30px;
		margin: 0;
		position: absolute;
		top: 32px;
		right: 20px;
	}
	#burger .close {
		display: none;
	}
	#burger.active .close {
		display: block;
	}
	#burger.active .open {
		display: none;
	}
	#navigation {
		display: none;
		background: rgba(0, 0, 0, 0.8);
        margin: 0;
        width: 100%;
        position: absolute;
        right: 0;
        top: 90px;
        padding: 0 35px 20px;
        box-sizing: border-box;
        font-size: 3rem;
        height: calc(100vh - 90px);
	}
	#navigation ul {
        font-size: 3rem;
        text-align: center;
        margin: 0;
        display: flex;
        flex-direction: column;
        justify-content: space-evenly;
        height: 100%;
        gap: 0;
		padding: 15vh 0;
        box-sizing: border-box;
	}
	#navigation ul li {
		display: block;
		margin: 0;
	}
	#navigation ul li a {
        padding: 4vh 0;
		color: #fff;
	}
	#navigation ul li a img {
		filter: brightness(0) invert(1); /* nero -> bianco */
		margin-right: 15px;
	}
	#navigation ul li a:focus,
	#navigation ul li a:hover {
		color: #fff;
	}
	
	
	.header-container {
		height: 90px;
	}
	
	
	#home {
		margin: 20px 20px;
	}
	
	#home .section-container {
		background-position: top right;
		background-size: 150%;
		padding-top: 180px;
	}
	#home .section-container::before {
		background: linear-gradient( to top, rgb(247, 247, 247) 0%, rgb(247, 247, 247) 50%, rgba(247, 247, 247, 0) 100% );
		width: 100%;
		height: 100%;
	}
	
	h2 {
		font-size: 3rem;
		line-height: 3.0rem;
	}
	
	#chisono .chisonoContainer {
		display: block;
	}
	#chisono .chisonoContent {
		padding: 30px 30px;
	}
	
	.whiteSpace.doubleSpace + .whiteSpace.doubleSpace {
		display: none;
	}
	
	.cards li {
		transition-delay: 0.s !important;
	}
	.bookCards {
		grid-template-columns: repeat(auto-fit, 100%);
	}
	
	
}