/* IMPRESSIONI 0.2 — single front-end */
.impressioni-single{
	--impressioni-shell:1240px;
	--impressioni-text:820px;
	--impressioni-gap:clamp(3.5rem,7vw,7.5rem);
	width:100%;
	overflow:hidden;
}
.impressioni-shell{
	width:min(calc(100% - 48px),var(--impressioni-shell));
	margin-inline:auto;
}
.impressioni-shell--text{max-width:var(--impressioni-text);}
.impressioni-shell--wide-text{max-width:1040px;}
.impressioni-section{padding-block:var(--impressioni-gap);}
.impressioni-section + .impressioni-section{border-top:1px solid rgba(0,0,0,.12);}
.impressioni-section__label,
.impressioni-hero__eyebrow{
	font-size:.76rem;
	font-weight:600;
	line-height:1.2;
	letter-spacing:.16em;
	text-transform:uppercase;
}
.impressioni-section__label{margin-bottom:1.5rem;opacity:.58;}
.impressioni-section__head{margin-bottom:clamp(2rem,4vw,3.5rem);}
.impressioni-section__head h2{
	margin:0;
	font:inherit;
	font-size:clamp(2rem,4vw,4.25rem);
	font-weight:500;
	line-height:1.02;
	letter-spacing:-.035em;
}

/* Hero */
.impressioni-hero{
	position:relative;
	isolation:isolate;
	display:flex;
	align-items:flex-end;
	min-height:clamp(560px,78vh,880px);
	background-position:center;
	background-size:cover;
	background-repeat:no-repeat;
	color:#fff;
}
.impressioni-hero--no-image{background:#111;}
.impressioni-hero__gradient{
	position:absolute;
	inset:0;
	background:
		linear-gradient(180deg,rgba(0,0,0,.04) 0%,rgba(0,0,0,.12) 38%,rgba(0,0,0,.88) 100%),
		linear-gradient(90deg,rgba(0,0,0,.34) 0%,rgba(0,0,0,.08) 58%,rgba(0,0,0,0) 100%);
	pointer-events:none;
}
.impressioni-hero__content{
	position:relative;
	z-index:1;
	padding-bottom:clamp(3rem,7vw,6.5rem);
}
.impressioni-hero__eyebrow{
	display:flex;
	gap:1rem;
	align-items:center;
	margin-bottom:1.25rem;
	opacity:.86;
}
.impressioni-hero__eyebrow span + span:before{
	content:"/";
	margin-right:1rem;
	opacity:.55;
}
.impressioni-hero__title{
	max-width:1050px;
	margin:0;
	color:inherit;
	font:inherit;
	font-size:clamp(2.7rem,7vw,7.2rem);
	font-weight:500;
	line-height:.94;
	letter-spacing:-.055em;
	text-wrap:balance;
}

.impressioni-hero__wordmarks{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:clamp(1.25rem,2.5vw,2.5rem);
	margin-top:clamp(1.6rem,3vw,2.6rem);
}
.impressioni-hero__wordmark{
	display:flex;
	align-items:center;
	max-width:min(360px,72vw);
}
.impressioni-hero__wordmark img{
	display:block;
	max-width:100%;
	max-height:88px;
	width:auto;
	height:auto;
	object-fit:contain;
	filter:drop-shadow(0 3px 14px rgba(0,0,0,.32));
}

.impressioni-hero__claim{
	max-width:760px;
	margin-top:clamp(1.15rem,2vw,1.8rem);
	font-size:clamp(1.15rem,2.2vw,2rem);
	font-weight:400;
	line-height:1.3;
	letter-spacing:-.015em;
	text-wrap:balance;
}

/* Arti */
.impressioni-categories{
	display:flex;
	flex-wrap:wrap;
	gap:clamp(2rem,4vw,4rem);
	align-items:center;
}
.impressioni-category{min-width:150px;}
.impressioni-category__logo img{
	display:block;
	max-width:min(260px,100%);
	max-height:92px;
	width:auto;
	height:auto;
	object-fit:contain;
}
.impressioni-category__name{
	margin-top:.75rem;
	font-size:.9rem;
	line-height:1.3;
	opacity:.66;
}

/* Testo */
.impressioni-prose{
	font-size:clamp(1.08rem,1.45vw,1.32rem);
	line-height:1.72;
}
.impressioni-prose > *:first-child{margin-top:0;}
.impressioni-prose > *:last-child{margin-bottom:0;}
.impressioni-prose p{margin:0 0 1.35em;}

/* Gallery editoriale */
.impressioni-gallery{
	columns:3 290px;
	column-gap:clamp(.7rem,1.3vw,1.1rem);
}
.impressioni-gallery__item{
	display:block;
	break-inside:avoid;
	margin:0 0 clamp(.7rem,1.3vw,1.1rem);
	cursor:zoom-in;
	overflow:hidden;
	background:#eee;
}
.impressioni-gallery__item img{
	display:block;
	width:100%;
	height:auto;
	transition:transform .45s ease,opacity .3s ease;
}
@media (hover:hover){
	.impressioni-gallery__item:hover img{transform:scale(1.015);opacity:.93;}
}

/* Video */
.impressioni-video{
	margin:0;
	width:100%;
}
.impressioni-video__frame{
	position:relative;
	width:100%;
	aspect-ratio:16/9;
	overflow:hidden;
	background:#111;
}
.impressioni-video__frame iframe,
.impressioni-video__frame video{
	display:block;
	width:100% !important;
	height:100% !important;
	border:0;
}
.impressioni-video__fallback{
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	height:100%;
	min-height:320px;
	color:#fff;
	text-decoration:none;
}
.impressioni-video__caption{
	margin-top:.85rem;
	font-size:.88rem;
	line-height:1.45;
	opacity:.62;
}

/* Riconoscimenti */
.impressioni-recognitions__group{margin:0 0 clamp(4rem,7vw,7rem);}
.impressioni-recognitions__group:last-child{margin-bottom:0;}
.impressioni-recognitions__group-head{
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap:2rem;
	margin:0 0 clamp(2rem,4vw,3.5rem);
	padding-bottom:1.1rem;
	border-bottom:1px solid rgba(0,0,0,.2);
}
.impressioni-recognitions__group-head h3{
	margin:0;
	font:inherit;
	font-size:clamp(1.45rem,2.2vw,2.25rem);
	font-weight:500;
}
.impressioni-recognitions__category-logo{
	display:block;
	max-width:260px;
	max-height:82px;
	width:auto;
	height:auto;
	object-fit:contain;
}
.impressioni-recognitions__grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:clamp(2.6rem,5vw,5.5rem) clamp(2rem,5vw,5rem);
}
.impressioni-recognition{
	padding-top:1rem;
	border-top:1px solid rgba(0,0,0,.4);
}
.impressioni-recognition__title{
	margin-bottom:1.25rem;
	font-size:.76rem;
	font-weight:650;
	line-height:1.25;
	letter-spacing:.14em;
	text-transform:uppercase;
}
.impressioni-recognition__artist{
	margin:0 0 .35rem;
	font:inherit;
	font-size:clamp(1.55rem,2.8vw,2.75rem);
	font-weight:500;
	line-height:1.05;
	letter-spacing:-.035em;
}
.impressioni-recognition__artist a{color:inherit;text-decoration:none;}
.impressioni-recognition__artist a:hover{text-decoration:underline;text-underline-offset:.15em;}
.impressioni-recognition__work{
	margin-bottom:1.35rem;
	font-size:.96rem;
	font-style:italic;
	opacity:.68;
}
.impressioni-recognition__motivation{
	max-width:56ch;
	font-size:1rem;
	line-height:1.65;
}
.impressioni-recognition__motivation p:last-child{margin-bottom:0;}

/* Lightbox */
.impressioni-no-scroll{overflow:hidden;}
.impressioni-lightbox{
	position:fixed;
	z-index:999999;
	inset:0;
	display:none;
	align-items:center;
	justify-content:center;
	padding:clamp(1rem,4vw,4rem);
	background:rgba(0,0,0,.94);
	color:#fff;
}
.impressioni-lightbox.is-open{display:flex;}
.impressioni-lightbox__figure{
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	max-width:min(1500px,90vw);
	max-height:88vh;
	margin:0;
}
.impressioni-lightbox__image{
	display:block;
	max-width:100%;
	max-height:80vh;
	width:auto;
	height:auto;
	object-fit:contain;
}
.impressioni-lightbox__caption{
	max-width:900px;
	margin-top:.9rem;
	font-size:.86rem;
	line-height:1.4;
	text-align:center;
	opacity:.72;
}
.impressioni-lightbox__close,
.impressioni-lightbox__nav{
	position:absolute;
	border:0;
	background:transparent;
	color:#fff;
	cursor:pointer;
	font-family:Arial,sans-serif;
	font-weight:300;
}
.impressioni-lightbox__close{
	top:18px;
	right:24px;
	font-size:2.4rem;
	line-height:1;
}
.impressioni-lightbox__nav{
	top:50%;
	transform:translateY(-50%);
	padding:1rem;
	font-size:3.2rem;
	line-height:1;
}
.impressioni-lightbox__prev{left:14px;}
.impressioni-lightbox__next{right:14px;}

@media (max-width:767px){
	.impressioni-shell{width:min(calc(100% - 32px),var(--impressioni-shell));}
	.impressioni-hero{min-height:68vh;}
	.impressioni-hero__content{padding-bottom:2.75rem;}
	.impressioni-hero__title{font-size:clamp(2.45rem,13vw,4.8rem);}
	.impressioni-hero__wordmarks{gap:1rem;margin-top:1.6rem;}
	.impressioni-hero__wordmark{max-width:min(280px,80vw);}
	.impressioni-hero__wordmark img{max-height:70px;}
	.impressioni-categories{gap:2.25rem;}
	.impressioni-category{width:calc(50% - 1.25rem);min-width:0;}
	.impressioni-gallery{columns:2 150px;}
	.impressioni-recognitions__group-head{align-items:flex-start;flex-direction:column;}
	.impressioni-recognitions__grid{grid-template-columns:1fr;}
	.impressioni-lightbox__nav{font-size:2.6rem;padding:.4rem;}
	.impressioni-lightbox__prev{left:2px;}
	.impressioni-lightbox__next{right:2px;}
}

@media (max-width:480px){
	.impressioni-gallery{columns:1;}
}
