#lbOverlay {
	background-color: #000;
	bottom: 0;
	left: 0;
	position: fixed;
	right: 0;
	top: 0;
	z-index: 399;
}

#lbPrevLink,
#lbNextLink {
	display: block;
	overflow: hidden;
	position: absolute;
	top: 0;
	width: 50%;
	outline: none;
	
	> span {
		background-color: #fff;
		display: none;
		padding: @wcfGapSmall;
		position: absolute;
		top: 20%;
	}
	
	&:hover > span {
		.boxShadow(0, 0, @wcfButtonHoverBorderColor, 20px);
	}
}

#lbPrevLink {
	left: 0;
	
	> span {
		border-radius: 0 30px 30px 0;
		left: 0;
		padding-right: @wcfGapMedium;
	}
}

#lbNextLink {
	right: 0;
	
	> span {
		border-radius: 30px 0 0 30px;
		padding-left: @wcfGapMedium;
		right: 0;
	}
}

#lbEnlarge,
#lbCloseLink {
	cursor: pointer;
	display: block;
	float: right;
	padding-right: @wcfGapSmall;
	outline: none;
}

#lbCenter, #lbBottomContainer {
	background-color: #fff;
	overflow: hidden;
	position: absolute;
	z-index: 400;
}

#lbCenter > .icon-spinner {
	left: 50%;
	margin: -21px 0 0 -21px;
	position: absolute;
	top: 50%;
}

#lbImage {
	background-repeat: no-repeat;
	background-size: cover;
	border: 10px solid #fff;
	left: 0;
	position: absolute;
	top: 0;
	
	&:hover {
		#lbNextLink,
		#lbPrevLink {
			> span {
				display: block;
			}
		}
	}
}

#lbBottom {
	border: 10px solid #fff;
	border-top-style: none;
	color: #666;
}

#lbCaption, #lbNumber {
	margin-right: 71px;
}

#lbCaption {
	font-weight: bold;
}

/* ImageViewer for WCF */
@wcfImageViewerBorderColor: rgba(51, 51, 51, 1);
@wcfImageViewerFontColor: rgba(211, 211, 211, 1);

.wcfImageViewer {
	background-color: rgba(0, 0, 0, 1);
	bottom: 0;
	display: none;
	left: 0;
	opacity: 0;
	position: fixed;
	right: 0;
	top: 0;
	z-index: 399;
	
	.icon {
		color: rgba(102, 102, 102, 1);
		
		text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
	}
	
	&.open {
		display: block;
		opacity: 1;
	}
	
	&.maximized:not(.wcfImageViewerMobile) {
		> header {
			top: -100px;
		}
		
		> div {
			bottom: 0;
			border-color: fade(@wcfImageViewerBorderColor, 0%);
			top: 0;
		}
		
		> footer {
			bottom: -100px;
		}
	}
	
	&.wcfImageViewerStatic > header > div {
		> h1,
		> h2,
		> h3 {
			margin-left: 0 !important;
		}
	}
	
	&.wcfImageViewerMobile {
		> header,
		> footer {
			background-color: rgba(0, 0, 0, 1);
			opacity: 1;
			position: absolute;
			visibility: visible;
			z-index: 402;
		}
		
		&.maximized {
			> header,
			> footer {
				opacity: 0;
				visibility: hidden;
				
				transition: visibility 0s linear .5s, opacity .5s linear;
			}
			
			> div > ul > li.pointer {
				opacity: 0;
			}
		}
		
		> div {
			bottom: 0;
			top: 0;
			
			> ul {
				> li {
					background-color: rgba(224, 224, 224, 1);
					border-radius: 30px;
					margin-top: -24px;
					opacity: 0;
					position: absolute;
					top: 50%;
					z-index: 30;
					
					.transition(opacity, .3s);
					
					&.pointer {
						opacity: 1;
					}
					
					&.wcfImageViewerSlideshowButtonPrevious {
						left: 10px;
						
						> span {
							left: -3px;
							position: relative;
							top: 2px;
						}
					}
					
					&.wcfImageViewerSlideshowButtonNext {
						right: 10px;
						
						> span {
							position: relative;
							right: -1px;
							top: 2px;
						}
					}
					
					&.wcfImageViewerSlideshowButtonFull {
						bottom: 80px;
						left: 50%;
						top: auto;
						
						transform: translateX(-50%);
						-ms-transform: translateX(-50%);
						-webkit-transform: translateX(-50%);
						
						> span {
							font-size: 32px;
							left: 2px;
							position: relative;
							top: 10px;
						}
					}
					
					&.wcfImageViewerSlideshowButtonToggle,
					&.wcfImageViewerSlideshowButtonEnlarge,
					{
						display: none;
					}
				}
			}
		}
		
		> footer {
			> .wcfImageViewerButtonPrevious,
			> .wcfImageViewerButtonNext {
				display: none;
			}
			
			> div {
				margin: 0;
			}
		}
	}
	
	> header,
	> div,
	> footer {
		box-sizing: border-box;
		-moz-box-sizing: border-box;
		left: 0;
		position: fixed;
		right: 0;
		z-index: 400;
	}
	
	> header {
		height: 100px;
		overflow: hidden;
		padding: 1rem;
		top: 0;
		
		> div {
			> h1,
			> h2,
			> h3 {
				color: @wcfImageViewerFontColor;
				margin-left: 80px !important;
				
				> a {
					color: @wcfImageViewerFontColor;
				}
			}
			
			> h1 {
				font-size: 1.75rem;
			}
			
			> h2 {
				font-size: 1.25rem;
			}
			
			> h3 {
				color: @wcfImageViewerFontColor;
				font-size: .85rem;
				margin-top: .25rem;
			}
			
			> a > img {
				height: 64px;
				width: 64px;
			}
		}
		
		> .wcfImageViewerButtonClose {
			opacity: .6;
			position: absolute;
			right: 26px;
			top: 26px;
			
			.transition(opacity, .3s);
			
			&:hover {
				opacity: 1;
			}
		}
	}
	
	> div {
		background-color: rgba(0, 0, 0, 1);
		border-bottom: 1px solid @wcfImageViewerBorderColor;
		border-top: 1px solid @wcfImageViewerBorderColor;
		bottom: 100px;
		top: 100px;
		z-index: 401;
		
		.transition(~"top, bottom, border-color", .3s);
		
		&.loading:before {
			content: @spinner;
			margin: -24px 0 0 -24px;
			left: 50%;
			position: absolute;
			top: 50%;
			
			color: @wcfColor;
			display: inline-block;
			font-family: FontAwesome;
			font-weight: normal !important;
			font-style: normal !important;
			line-height: 1em;
			text-align: center;
			
			-webkit-user-select: none;
			-moz-user-select: none;
			-ms-user-select: none;
			
			.textShadow(@wcfContentBackgroundColor);
			
			.icon48;
			.icon-spinner;
		}
		
		> img {
			opacity: 0;
			position: absolute;
			top: 50%;
			z-index: 10;
			
			.transition(opacity, .75s);
			
			&.animateTransformation {
				transition: left .3s, margin-top .3s, height .3s, width .3s, opacity .75s;
				-webkit-transition: left .3s, margin-top .3s, height .3s, width .3s, opacity .75s;
			}
			
			&.active {
				opacity: 1;
				z-index: 20;
			}
		}
	}
	
	&:not(.wcfImageViewerMobile) {
		> header {
			.transition(top, .3s);
		}
		
		> footer {
			.transition(bottom, .3s);
		}
		
		> div {
			cursor: pointer;
			
			> img,
			> ul {
				cursor: default;
			}
			
			> ul {
				background-color: rgba(0, 0, 0, 1);
				border: 1px solid @wcfImageViewerBorderColor;
				border-bottom-width: 0;
				border-radius: 5px 5px 0 0;
				bottom: 0;
				display: inline-block;
				left: 50%;
				margin-left: -122px;
				opacity: .4;
				position: absolute;
				z-index: 30;
				
				.transition(opacity, .5s);
				
				&:hover {
					opacity: 1;
				}
				
				> li {
					display: inline-block;
					opacity: .6;
					
					.transition(opacity, .5s);
					
					&.pointer > span.icon {
						cursor: pointer;
					}
					
					&.active,
					&.pointer:hover {
						opacity: 1;
					}
					
					&.wcfImageViewerSlideshowButtonToggle > span,
					&.wcfImageViewerSlideshowButtonEnlarge > span,
					&.wcfImageViewerSlideshowButtonFull > span {
						font-size: 28px;
						
						&:before {
							left: 2px;
							position: relative;
							top: 9px;
						}
					}
					
					&.wcfImageViewerSlideshowButtonEnlarge,
					&.wcfImageViewerSlideshowButtonFull {
						border-left: 1px solid @wcfImageViewerBorderColor;
						box-sizing: border-box;
					}
					
					> span {
						vertical-align: middle;
					}
				}
			}
		}
	}
	
	> footer {
		bottom: 0;
		height: 100px;
		padding: 10px;
		
		&:hover > div > ul > li > img {
			filter: none;
			-webkit-filter: none;
		}
		
		> span {
			bottom: 0;
			font-size: 48px;
			padding-top: 26px;
			opacity: 0;
			position: absolute;
			top: 0;
			width: 30px;
			z-index: 2;
			
			.transition(opacity, .5s);
			
			&.pointer {
				opacity: .6;
				
				&:hover {
					opacity: 1;
				}
			}
			
			&.wcfImageViewerButtonPrevious {
				left: 5px;
			}
			
			&.wcfImageViewerButtonNext {
				right: 5px;
			}
		}
		
		> div {
			height: 80px;
			margin: 0 35px;
			overflow: hidden;
			white-space: nowrap;
			
			> ul {
				font-size: 0;
				height: 80px;
				z-index: 1;
				
				transition: margin-left cubic-bezier(.5, 1.595, .56, .98) .75s;
				-webkit-transition: margin-left cubic-bezier(.5, 1.595, .56, .98) .75s;
				
				> li {
					display: inline-block;
					height: 80px;
					opacity: .6;
					position: relative;
					width: 80px;
					
					.transition(opacity, .5s);
					
					&.active,
					&:hover {
						opacity: 1;
					}
					
					&:not(:last-child) {
						margin-right: 10px;
					}
					
					&.active > img {
						filter: none;
						-webkit-filter: none;
					}
					
					&.loading{
						&:before {
							content: @spinner;
							margin: -16px 0 0 -16px;
							left: 50%;
							position: absolute;
							top: 50%;
							z-index: -1;
							
							color: @wcfColor;
							display: inline-block;
							font-family: FontAwesome;
							font-weight: normal !important;
							font-style: normal !important;
							line-height: 1em;
							text-align: center;
							
							-webkit-user-select: none;
							-moz-user-select: none;
							-ms-user-select: none;
							
							.textShadow(@wcfContentBackgroundColor);
							
							.icon32;
							.icon-spinner;
						}
						
						> img {
							opacity: 0;
						}
					}
					
					> img {
						height: 80px;
						opacity: 1;
						width: 80px;
						
						.grayscale;
						transition: filter .5s, opacity 1s;
						-webkit-transition: -webkit-filter .5s, opacity 1s;
					}
				}
			}
		}
	}
}

@media only screen and (max-width: 800px) {
	.wcfImageViewer {
		> header {
			height: 80px;
			
			> .wcfImageViewerButtonClose {
				right: 16px;
				top: 16px;
			}
		}
		
		> footer {
			height: 80px;
			
			> div {
				height: 60px;
				
				> ul {
					height: 60px;
					
					> li {
						height: 60px;
					}
				}
			}
		}
	}
}
