:root {
	--k2block__imagegallery__item__height: 300px;
	--k2block__imagegallery__item__height--screen-md: 250px;
	--k2block__imagegallery__item__height--screen-sm: 200px;
	--k2block__imagegallery__grid__columns: 12;
	--k2block__imagegallery__gap: 2rem;
	--k2block__imagegallery__gap--screen-sm: 1rem;
	--k2block__imagegallery__gap--screen-md: 1.5rem;
	--k2block__imagegallery__captions__background: rgba(0, 0, 0, .5);
	--k2block__imagegallery__captions__color: #fff;
	--k2block__imagegallery__captions__padding-x: 0.5em;
	--k2block__imagegallery__captions__padding-y: 0.5em;

	--k2block__imagegallery--lightbox__item__transform-hover: scale(1.1);
	--k2block__imagegallery--lightbox__item__transition: all 400ms;

}

:where(.imagegallery__grid),
.imagegallery__grid > * > .block-editor-block-list__layout {
	display: grid;
	grid-template-columns: repeat(var(--k2block__imagegallery__grid__columns), minmax(0, 1fr));
	grid-template-areas: var(--k2block__imagegallery__grid__template-areas);
	gap: var(--k2block__imagegallery__gap);
	grid-auto-rows: var(--k2block__imagegallery__item__height);
}

.editor-styles-wrapper :where(.imagegallery__grid) {
	display: block !important;
	width: 100%;
}

@media screen and (max-width: 768px) {
	:where(.imagegallery__grid),
	.imagegallery__grid > * > .block-editor-block-list__layout {
		gap: var(--k2block__imagegallery__gap--screen-md);
		grid-auto-rows: var(--k2block__imagegallery__item__height--screen-md);
	}
}

@media screen and (max-width: 500px) {
	:where(.imagegallery__grid),
	.imagegallery__grid > * > .block-editor-block-list__layout {
		gap: var(--k2block__imagegallery__gap--screen-sm);
		grid-auto-rows: var(--k2block__imagegallery__item__height--screen-sm);
	}
}

:where(.imagegallery-item) {
	height: 100%;
}

.imagegallery--lightbox .imagegallery-item button {
	cursor: pointer;
	background-color: transparent;
	border: none;
	padding: 0;
	height: 100%;
	width: 100%;
	box-sizing: border-box;
}

.imagegallery--lightbox figure {
	overflow: hidden;
}

.imagegallery--lightbox img {
	transition: var(--k2block__imagegallery--lightbox__item__transition);
}

/* Focus outline with after element because outline wouldn't work */
.imagegallery--lightbox .imagegallery-item button:is(:focus-visible, :focus) {
	outline: 2px solid var(--wp--preset--color--focus-outline, #000);
	outline-offset: 3px;
}

.imagegallery--lightbox .imagegallery-item button:is(:hover, :focus-visible) img {
	transform: var(--k2block__imagegallery--lightbox__item__transform-hover);
}

.imagegallery-item figure {
	height: 100%;
	width: 100%;
	display: flex;
	flex-direction: column;
	margin: 0;
}

.imagegallery-item .wp-block-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	object-position: var(--_happyfocus-x, 50%) var(--_happyfocus-y, 50%);
}

.imagegallery-item {
	position: relative;
}

.imagegallery-item > div {
	height: 100%;
	width: 100%;
}

/* CAPTIONS */
.imagegallery-item figcaption,
.editor-styles-wrapper .imagegallery-item figcaption {
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	background: var(--k2block__imagegallery__captions__background);
	margin: 0;
	width: 100%;
	padding-inline: var(--k2block__imagegallery__captions__padding-x);
	padding-block: var(--k2block__imagegallery__captions__padding-y);
	color: var(--k2block__imagegallery__captions__color);
}

.imagegallery-item .wp-block-image > :is(.block-editor-media-placeholder, .components-resizable-box__container) {
	height: 100% !important;
	width: 100% !important;
	max-height: unset !important;
	min-height: unset !important;
	max-width: unset !important;
	min-width: unset !important;
}

.imagegallery-item > div.block-editor-inner-blocks > div.block-editor-block-list__layout,
.imagegallery-item > div.block-editor-inner-blocks > div.block-editor-block-list__layout > div.block-editor-block-list__block {
	height: 100%;
	width: 100%;
}