.fsg-gallery {
	--fsg-gap: 1.25rem;
	--fsg-border: #d6d6d6;
	--fsg-surface: #f5f5f5;
	--fsg-focus: #005fcc;
}

.fsg-gallery,
.fsg-gallery * {
	box-sizing: border-box;
}

.fsg-gallery__title {
	margin-block: 0 0.75rem;
}

.fsg-gallery__status {
	margin-block: 0 1.5rem;
}

.fsg-gallery__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit,
			minmax(min(100%, 16rem), 1fr));
	gap: var(--fsg-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.fsg-gallery__grid[hidden] {
	display: none;
}

.fsg-gallery__item {
	min-width: 0;
	margin: 0;
	padding: 0;
}

.fsg-gallery__figure {
	margin: 0;
}

.fsg-gallery__link {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 12rem;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: 1px solid var(--fsg-border);
	border-radius: 0.375rem;
	background: var(--fsg-surface);
}

.fsg-gallery__link:focus-visible {
	outline: 3px solid var(--fsg-focus);
	outline-offset: 4px;
}

.fsg-gallery__link img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.fsg-gallery__caption {
	margin-block-start: 0.625rem;
	line-height: 1.5;
	overflow-wrap: anywhere;
}
