.itlu-gallery__grid,
.itlu-gallery-index {
	display: grid;
	grid-template-columns: repeat(var(--itlu-gallery-columns, 3), minmax(0, 1fr));
	gap: var(--itlu-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.itlu-gallery figure {
	margin: 0;
}

.itlu-gallery img,
.itlu-gallery-index img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.itlu-gallery__item > figure > a {
	display: block;
	border-radius: var(--itlu-card-radius);
	overflow: hidden;
}

.itlu-gallery figcaption {
	margin-block-start: var(--itlu-space-2);
	color: var(--itlu-color-text-muted);
	font-size: var(--itlu-font-size-small);
	overflow-wrap: anywhere;
}

.itlu-gallery--compact .itlu-gallery__grid {
	--itlu-gallery-columns: 4;
}

.itlu-lightbox {
	width: min(92vw, 72rem);
	max-height: 92vh;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--itlu-color-text-on-media);
}

.itlu-lightbox::backdrop {
	background: var(--itlu-lightbox-backdrop);
}

.itlu-lightbox__surface {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: var(--itlu-space-4);
	padding: var(--itlu-space-4);
	background: var(--itlu-lightbox-background);
}

.itlu-lightbox__surface figure,
.itlu-lightbox__controls {
	grid-column: 1 / -1;
}

.itlu-lightbox__surface img {
	max-width: 100%;
	max-height: 65vh;
	margin-inline: auto;
	object-fit: contain;
}

.itlu-lightbox__controls {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--itlu-space-4);
}

.itlu-lightbox button {
	min-inline-size: var(--itlu-control-min-height);
	min-block-size: var(--itlu-control-min-height);
}

@media (max-width: 40rem) {

	.itlu-gallery__grid,
	.itlu-gallery--compact .itlu-gallery__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.itlu-lightbox__controls {
		flex-wrap: wrap;
	}
}

@media (prefers-reduced-motion: reduce) {

	.itlu-lightbox,
	.itlu-lightbox::backdrop {
		scroll-behavior: auto;
	}
}

.itlu-gallery__summary {
	margin-block: 0 var(--itlu-space-4);
	color: var(--itlu-color-text-muted);
}

.itlu-gallery__pagination {
	margin-block-start: var(--itlu-space-6);
}

.itlu-gallery__pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--itlu-space-2);
	padding: 0;
	list-style: none;
}

.itlu-gallery__pagination a,
.itlu-gallery__pagination .current,
.itlu-gallery__pagination .dots {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-inline-size: 44px;
	min-block-size: 44px;
	padding: 0.4rem 0.65rem;
	border: 1px solid var(--itlu-color-border);
	border-radius: var(--itlu-card-radius);
}

.itlu-gallery__pagination .current {
	color: var(--itlu-color-primary-contrast);
	background: var(--itlu-color-primary);
}
