/* Dialog shell */
.lb-dialog
{
border: 0;
padding: 0;
background: transparent;
max-width: none;
max-height: none;
width: 100vw;
height: 100vh;
opacity: 0;
transition: opacity .28s ease-out;
}

/* Dark backdrop */
.lb-dialog::backdrop
{
background: rgba(0, 0, 0, 0.82);
}

/* Center content */
.lb-dialog[open]
{
display: flex;
align-items: center;
justify-content: center;
opacity: 1;
}

/* Figure/content wrapper */
.lb-figure
{
margin: 0;
max-width: min(92vw, 80rem);
max-height: 98vh;
display: flex;
flex-direction: column;
align-items: center;
position: relative;
touch-action: auto;
}

/* Large image */
.lb-full
{
display: block;
/* max-width: 92vw; */
max-width: calc(100vw - 2rem);
max-height: 84vh;
width: auto;
height: auto;
border-radius: .75rem;
transition: opacity .28s ease-out, transform .28s ease-out;
will-change: opacity, transform;
}

/* Caption */
.lb-caption
{
margin-top: .75rem;
padding-left: .75rem;
color: #fff;
font-size: 1rem;
line-height: 1.4;
text-align: left;
width: 100%;
transition: opacity .28s ease-out, transform .28s ease-out;
will-change: opacity, transform;
}

.lb-caption-text
{
margin-bottom: .5rem;
}

.lb-counter
{
display: block;
font-size: 0.8125rem;
color: #eee;
}

/* Transition state applied during image swap */
.lb-full.is-transitioning,
.lb-caption.is-transitioning
{
opacity: 0;
transform: scale(.985);
}

/* Controls */
.lb-close,
.lb-prev,
.lb-next
{
position: fixed;
z-index: 2;
border: 0;
background: transparent;
color: #fff;
cursor: pointer;
}

.lb-close
{
top: 1rem;
right: 1rem;
background: rgba(0, 0, 0, 0.25);
border-radius: 20rem;
width: 2rem;
height: 2rem;
display: flex;
align-items: center;
justify-content: center;
}

.lb-close svg
{
display: block;
width: 1.25rem;
height: 1.25rem;
}

.lb-close:hover
{
background: #c00;
}

.lb-prev, .lb-next
{
top: 50%;
transform: translateY(-50%);
font-size: 1rem;
padding: 0;
}

.lb-prev
{
left: .875rem;
}

.lb-next
{
right: .875rem;
}

.lb-prev svg, .lb-next svg
{
display: block;
width: 2rem;
height: auto;
fill: #fff;
background: rgba(0, 0, 0, 0.25);
border-radius: .1875rem;
padding: .5rem .25rem;
border: .125rem solid transparent;
}

.lb-prev svg:hover, .lb-next svg:hover
{
background: rgba(0, 0, 0, 0.9);
/* border-color: rgba(255, 255, 255, 0.25); */
}

@media screen and (min-width: 48rem) {

	.lb-full
	{
	/* max-width: 100vw; */
	}

}

/* Reduced motion preference */
@media (prefers-reduced-motion: reduce)
{
	.lb-dialog,
	.lb-full,
	.lb-caption
	{
	transition: none;
	}
}