.asca-media-gallery {
	--asca-media-gallery-columns: 3;
	--asca-media-gallery-columns-tablet: 2;
	--asca-media-gallery-columns-mobile: 1;
	--asca-media-gallery-gap: 12px;
	--asca-media-gallery-ratio: 4 / 3;
	margin-block: var(--wp--preset--spacing--50, 2rem);
}

.asca-media-gallery__grid {
	display: grid;
	grid-template-columns: repeat(var(--asca-media-gallery-columns), minmax(0, 1fr));
	gap: var(--asca-media-gallery-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.asca-media-gallery__item {
	min-width: 0;
	margin: 0;
}

.asca-media-gallery--progressive .asca-media-gallery__item {
	box-sizing: border-box;
	opacity: 1;
	transform: translateZ(0);
	transition: opacity .4s linear;
	will-change: opacity;
}

.asca-media-gallery--progressive .asca-media-gallery__item.loading {
	opacity: 0 !important;
}

.aw-conditional-featured-image--progressive {
	box-sizing: border-box;
	opacity: 1;
	transform: translateZ(0);
	transition: opacity .4s linear;
	will-change: opacity;
}

.aw-conditional-featured-image--progressive.loading {
	opacity: 0 !important;
}

.asca-media-gallery__link,
.asca-media-gallery__frame,
.asca-media-gallery__editor-frame {
	position: relative;
	display: block;
	overflow: hidden;
	width: 100%;
	aspect-ratio: var(--asca-media-gallery-ratio);
	background: var(--wp--preset--color--light-2, #f3f4f6);
	color: inherit;
	text-decoration: none;
}

.asca-media-gallery__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, .4);
	color: #fff;
	font-size: clamp(1.35rem, 2vw, 2rem);
	opacity: 0;
	pointer-events: none;
	transition: opacity 180ms ease;
}

.asca-media-gallery__link:is(:hover, :focus-visible) .asca-media-gallery__overlay {
	opacity: 1;
}

/* L'icona della lightbox non deve ereditare la sottolineatura del link. */
.asca-media-gallery__link:is(:hover, :focus-visible) .asca-media-gallery__overlay,
.asca-media-gallery__link:is(:hover, :focus-visible) .asca-media-gallery__overlay :is(i, svg),
.asca-media-gallery__overlay :is(i, svg) {
	text-decoration: none !important;
}

.asca-media-gallery__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.asca-media-gallery[style*="--asca-media-gallery-ratio:auto"] .asca-media-gallery__link,
.asca-media-gallery[style*="--asca-media-gallery-ratio:auto"] .asca-media-gallery__frame,
.asca-media-gallery[style*="--asca-media-gallery-ratio:auto"] .asca-media-gallery__editor-frame {
	aspect-ratio: auto;
}

.asca-media-gallery[style*="--asca-media-gallery-ratio:auto"] .asca-media-gallery__image {
	height: auto;
	object-fit: contain;
}

.pswp.asca-pswp {
	--pswp-bg: #333;
}

.asca-pswp .pswp__top-bar {
	right: 10px;
	left: auto;
	width: auto;
	height: 56px;
	gap: 2px;
}

.asca-pswp .pswp__button {
	width: 50px;
	height: 56px;
	color: #fff;
	opacity: .9;
}

.asca-pswp .pswp__button--zoom {
	order: 1;
}

.asca-pswp.pswp--zoom-allowed .pswp__button--zoom {
	display: block;
}

.asca-pswp .pswp__button--close {
	order: 2;
	margin-right: 0;
}

.asca-pswp .pswp__button:hover,
.asca-pswp .pswp__button:focus-visible {
	opacity: 1;
}

.asca-media-gallery__caption-content {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.pswp__dynamic-caption {
	color: #fff;
	font-family: var(--wp--preset--font-family--titillium-web, sans-serif);
	font-size: .875rem;
	line-height: 1.55;
}

.pswp__dynamic-caption--aside {
	max-width: 300px;
	padding: 0 15px 0 20px;
	margin-top: 96px;
}

.pswp__dynamic-caption--below {
	max-width: min(760px, calc(100vw - 2rem));
	padding-top: .9rem;
}

.pswp__dynamic-caption--mobile {
	background: rgba(0, 0, 0, .5);
	padding: .75rem 1rem;
}

.asca-pswp-dynamic-caption {
	display: grid;
	gap: .35rem;
}

.asca-pswp-dynamic-caption span {
	display: block;
}

.asca-pswp-dynamic-caption__title {
	font-size: .875rem;
	font-weight: 700;
	line-height: 1.35;
}

.asca-pswp-dynamic-caption__subtitle,
.asca-pswp-dynamic-caption__text,
.asca-pswp-dynamic-caption__description {
	color: rgba(255, 255, 255, .84);
	font-size: .875rem;
}

.asca-pswp-dynamic-caption__credit {
	color: rgba(255, 255, 255, .74);
	font-size: .8125rem;
	font-weight: 600;
}

@media (max-width: 1024px) {
	.asca-media-gallery__grid {
		grid-template-columns: repeat(var(--asca-media-gallery-columns-tablet), minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.asca-media-gallery__grid {
		grid-template-columns: repeat(var(--asca-media-gallery-columns-mobile), minmax(0, 1fr));
	}

	.pswp__dynamic-caption--mobile {
		padding-bottom: .75rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.asca-media-gallery__overlay,
	.asca-media-gallery--progressive .asca-media-gallery__item,
	.aw-conditional-featured-image--progressive {
		transition: none;
	}

	.asca-media-gallery--progressive .asca-media-gallery__item,
	.aw-conditional-featured-image--progressive {
		opacity: 1;
		transform: none;
	}
}
