.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__grid > .itlu-gallery__item {
	max-inline-size: none;
	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 {
	grid-template-columns: minmax(0, 1fr);
}

.itlu-gallery__grid img {
	aspect-ratio: 4 / 3;
	object-fit: contain;
	background: var(--itlu-color-surface-alt);
	border-radius: var(--itlu-card-radius);
}

.itlu-gallery--crop .itlu-gallery__grid img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.itlu-gallery__carousel.is-enhanced [data-itlu-carousel-slide][hidden],
.editor-styles-wrapper .itlu-gallery--compact .itlu-gallery__item:not(:first-child) {
	display: none;
}

.itlu-gallery__controls,
.itlu-gallery__thumbnails {
	display: none;
}

.itlu-gallery__carousel.is-enhanced .itlu-gallery__controls,
.editor-styles-wrapper .itlu-gallery__controls {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--itlu-space-2);
	margin-block: var(--itlu-space-3);
}

.itlu-gallery__controls p {
	margin: 0;
}

.itlu-gallery__controls button,
.itlu-gallery__thumbnails button {
	min-inline-size: 44px;
	min-block-size: 44px;
	border: 1px solid var(--itlu-color-border);
	color: var(--itlu-color-text);
	background: var(--itlu-color-surface);
	cursor: pointer;
}

.itlu-gallery__carousel.is-enhanced .itlu-gallery__thumbnails,
.editor-styles-wrapper .itlu-gallery__thumbnails {
	display: flex;
	gap: var(--itlu-space-2);
	overflow-x: auto;
	padding: var(--itlu-space-1);
}

.itlu-gallery__thumbnails button {
	flex: 0 0 80px;
	padding: 3px;
}

.itlu-gallery__thumbnails img {
	aspect-ratio: 4 / 3;
	object-fit: contain;
}

.itlu-gallery--crop .itlu-gallery__thumbnails img {
	object-fit: cover;
}

.itlu-gallery__thumbnails [aria-current="true"] {
	outline: 2px solid var(--itlu-color-primary);
	outline-offset: -2px;
}

.itlu-gallery__controls button:focus-visible,
.itlu-gallery__thumbnails button:focus-visible {
	outline: 3px solid var(--itlu-color-primary);
	outline-offset: 1px;
}

.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: minmax(0, 1fr) auto;
	grid-template-rows: auto minmax(0, 1fr) auto;
	gap: var(--itlu-space-4);
	max-height: 92vh;
	max-height: 92dvh;
	padding: var(--itlu-space-4);
	background: var(--itlu-lightbox-background);
}

.itlu-lightbox .itlu-lightbox__surface h2,
.itlu-lightbox .itlu-lightbox__surface figcaption {
	color: var(--itlu-color-text-on-media);
}

.itlu-lightbox__surface h2 {
	margin: 0;
	overflow-wrap: anywhere;
}

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

.itlu-lightbox__surface figure {
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	min-height: 0;
}

.itlu-lightbox__close {
	align-self: start;
}

.itlu-lightbox__surface img {
	width: auto;
	height: auto;
	max-width: 100%;
	min-height: 0;
	max-height: 100%;
	aspect-ratio: auto;
	margin-inline: auto;
	align-self: center;
	object-fit: contain;
}

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

.itlu-lightbox__controls p {
	margin: 0;
}

.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);
}
