/**
 * SportsPics Gallery Pro
 * Lightbox
 *
 * Handles the enlarged photo viewer and lightbox watermark.
 */

/* --------------------------------------------------------------------------
   Lightbox
   -------------------------------------------------------------------------- */

.skps-lightbox {
	position: fixed;
	inset: 0;

	display: none;

	align-items: center;
	justify-content: center;

	width: 100%;
	height: 100%;

	background: rgba(0, 0, 0, 0.92);

	z-index: 99999;

	opacity: 0;

	transition: opacity 0.25s ease;

	/*
	 * Prevent the lightbox itself from creating unwanted page scrolling.
	 * The underlying event page is restored by the JavaScript when closed.
	 */
	overflow: hidden;
}

.skps-lightbox.is-open {
	display: flex;
	opacity: 1;
}


/* --------------------------------------------------------------------------
   Overlay
   -------------------------------------------------------------------------- */

.skps-lightbox-overlay {
	position: absolute;

	inset: 0;

	width: 100%;
	height: 100%;

	background: transparent;

	cursor: pointer;

	z-index: 1;
}


/* --------------------------------------------------------------------------
   Content
   -------------------------------------------------------------------------- */

.skps-lightbox-content {
	position: relative;

	z-index: 2;

	width: 100%;
	max-width: 1400px;

	height: 100%;

	padding: 80px 90px 50px;

	box-sizing: border-box;

	display: flex;
	flex-direction: column;

	align-items: center;
	justify-content: center;

	pointer-events: none;
}


/*
 * Individual controls and image area must remain clickable.
 */

.skps-lightbox-content button,
.skps-lightbox-image-wrapper,
.skps-lightbox-info {
	pointer-events: auto;
}


/* --------------------------------------------------------------------------
   Image Wrapper
   -------------------------------------------------------------------------- */

.skps-lightbox-image-wrapper {
	position: relative;

	display: flex;

	align-items: center;
	justify-content: center;

	max-width: 92vw;
	max-height: 78vh;

	overflow: hidden;

	border-radius: 6px;

	background: #111;

	box-shadow:
		0 10px 40px rgba(0, 0, 0, 0.5);

	/*
	 * Prevent accidental image selection.
	 */
	user-select: none;
	-webkit-user-select: none;
}


/* --------------------------------------------------------------------------
   Image
   -------------------------------------------------------------------------- */

.skps-lightbox-image {
	display: block;

	max-width: 92vw;
	max-height: 78vh;

	width: auto;
	height: auto;

	object-fit: contain;

	border-radius: 6px;

	background: #111;

	user-select: none;
	-webkit-user-select: none;

	-webkit-user-drag: none;

	pointer-events: none;
}


/* --------------------------------------------------------------------------
   Watermark
   -------------------------------------------------------------------------- */

.skps-lightbox-watermark {
	position: absolute;

	inset: 0;

	z-index: 5;

	display: flex;

	align-items: center;
	justify-content: center;

	overflow: hidden;

	pointer-events: none;

	user-select: none;
	-webkit-user-select: none;

	/*
	 * Slight transparency makes the image visible while still making
	 * screenshot reuse substantially less useful.
	 */
	opacity: 0.24;
}


/*
 * Large repeated diagonal watermark.
 */

.skps-lightbox-watermark::before {
	content: "SPORTSPICS     SPORTSPICS     SPORTSPICS     SPORTSPICS";

	position: absolute;

	width: 180%;

	height: 180%;

	display: flex;

	align-items: center;
	justify-content: center;

	font-family: Arial, Helvetica, sans-serif;

	font-size: 32px;

	font-weight: 700;

	letter-spacing: 5px;

	line-height: 4;

	color: #ffffff;

	text-align: center;

	white-space: pre-wrap;

	transform: rotate(-25deg);

	/*
	 * Prevent text selection.
	 */
	user-select: none;
	-webkit-user-select: none;

	pointer-events: none;

	text-shadow:
		0 1px 2px rgba(0, 0, 0, 0.65);
}


/* --------------------------------------------------------------------------
   Watermark Additional Layer
   -------------------------------------------------------------------------- */

.skps-lightbox-watermark::after {
	content: "SPORTSPICS";

	position: absolute;

	top: 50%;
	left: 50%;

	transform: translate(-50%, -50%) rotate(-25deg);

	font-family: Arial, Helvetica, sans-serif;

	font-size: clamp(36px, 6vw, 90px);

	font-weight: 800;

	letter-spacing: 8px;

	color: rgba(255, 255, 255, 0.18);

	white-space: nowrap;

	text-shadow:
		0 2px 4px rgba(0, 0, 0, 0.6);

	pointer-events: none;

	user-select: none;
	-webkit-user-select: none;
}


/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */

.skps-lightbox-close,
.skps-lightbox-prev,
.skps-lightbox-next {
	position: absolute;

	z-index: 10;

	border: none;

	background: rgba(0, 0, 0, 0.65);

	color: #ffffff;

	cursor: pointer;

	border-radius: 50%;

	width: 48px;
	height: 48px;

	padding: 0;

	font-family: Arial, Helvetica, sans-serif;

	font-size: 28px;

	line-height: 48px;

	text-align: center;

	transition:
		background 0.2s ease,
		transform 0.2s ease;

	pointer-events: auto;

	-webkit-appearance: none;
	appearance: none;
}


/* --------------------------------------------------------------------------
   Button Hover
   -------------------------------------------------------------------------- */

.skps-lightbox-close:hover,
.skps-lightbox-prev:hover,
.skps-lightbox-next:hover {
	background: rgba(255, 255, 255, 0.25);
}


/* --------------------------------------------------------------------------
   Button Focus
   -------------------------------------------------------------------------- */

.skps-lightbox-close:focus,
.skps-lightbox-prev:focus,
.skps-lightbox-next:focus {
	outline: 2px solid rgba(255, 255, 255, 0.8);

	outline-offset: 3px;
}


/* --------------------------------------------------------------------------
   Close
   -------------------------------------------------------------------------- */

.skps-lightbox-close {
	top: 20px;
	right: 20px;

	font-size: 34px;

	line-height: 44px;
}


/* --------------------------------------------------------------------------
   Previous
   -------------------------------------------------------------------------- */

.skps-lightbox-prev {
	left: 20px;

	top: 50%;

	transform: translateY(-50%);
}


/* --------------------------------------------------------------------------
   Next
   -------------------------------------------------------------------------- */

.skps-lightbox-next {
	right: 20px;

	top: 50%;

	transform: translateY(-50%);
}


/* --------------------------------------------------------------------------
   Navigation Hover
   -------------------------------------------------------------------------- */

.skps-lightbox-prev:hover {
	transform: translateY(-50%) scale(1.05);
}

.skps-lightbox-next:hover {
	transform: translateY(-50%) scale(1.05);
}


/* --------------------------------------------------------------------------
   Information
   -------------------------------------------------------------------------- */

.skps-lightbox-info {
	width: 100%;

	max-width: 900px;

	margin-top: 18px;

	text-align: center;

	color: #ffffff;

	pointer-events: none;
}


/* --------------------------------------------------------------------------
   Counter
   -------------------------------------------------------------------------- */

.skps-lightbox-counter {
	margin-bottom: 8px;

	font-size: 14px;

	line-height: 1.4;

	color: #ffffff;

	opacity: 0.75;
}


/* --------------------------------------------------------------------------
   Title
   -------------------------------------------------------------------------- */

.skps-lightbox-title {
	margin: 0;

	font-size: 22px;

	font-weight: 600;

	line-height: 1.3;

	color: #ffffff;
}


/* --------------------------------------------------------------------------
   Caption
   -------------------------------------------------------------------------- */

.skps-lightbox-caption {
	margin-top: 8px;

	font-size: 16px;

	line-height: 1.5;

	color: #ffffff;

	opacity: 0.9;
}


/* --------------------------------------------------------------------------
   Prevent Image Saving / Selection
   -------------------------------------------------------------------------- */

.skps-lightbox-image,
.skps-lightbox-image-wrapper {
	-webkit-touch-callout: none;

	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}


/* --------------------------------------------------------------------------
   Mobile
   -------------------------------------------------------------------------- */

@media (max-width: 768px) {

	.skps-lightbox-content {
		padding: 70px 15px 30px;

		justify-content: center;
	}


	.skps-lightbox-image-wrapper {
		max-width: 94vw;

		max-height: 70vh;
	}


	.skps-lightbox-image {
		max-width: 94vw;

		max-height: 70vh;
	}


	.skps-lightbox-close {
		top: 12px;

		right: 12px;

		width: 44px;
		height: 44px;

		font-size: 30px;

		line-height: 44px;
	}


	.skps-lightbox-prev {
		left: 10px;

		width: 44px;
		height: 44px;

		font-size: 24px;

		line-height: 44px;
	}


	.skps-lightbox-next {
		right: 10px;

		width: 44px;
		height: 44px;

		font-size: 24px;

		line-height: 44px;
	}


	.skps-lightbox-watermark {
		opacity: 0.23;
	}


	.skps-lightbox-watermark::before {
		font-size: 20px;

		letter-spacing: 3px;

		line-height: 4;
	}


	.skps-lightbox-watermark::after {
		font-size: 38px;

		letter-spacing: 4px;
	}


	.skps-lightbox-info {
		margin-top: 12px;

		max-width: 90vw;
	}


	.skps-lightbox-title {
		font-size: 18px;
	}


	.skps-lightbox-caption {
		font-size: 14px;
	}

}


/* --------------------------------------------------------------------------
   Small Mobile
   -------------------------------------------------------------------------- */

@media (max-width: 480px) {

	.skps-lightbox-content {
		padding-left: 10px;

		padding-right: 10px;

		padding-bottom: 20px;
	}


	.skps-lightbox-image-wrapper {
		max-width: 96vw;

		max-height: 65vh;
	}


	.skps-lightbox-image {
		max-width: 96vw;

		max-height: 65vh;
	}


	.skps-lightbox-prev,
	.skps-lightbox-next {
		width: 40px;

		height: 40px;

		font-size: 22px;

		line-height: 40px;
	}


	.skps-lightbox-prev {
		left: 5px;
	}


	.skps-lightbox-next {
		right: 5px;
	}


	.skps-lightbox-watermark::before {
		font-size: 16px;

		letter-spacing: 2px;
	}


	.skps-lightbox-watermark::after {
		font-size: 30px;

		letter-spacing: 3px;
	}

}


/* --------------------------------------------------------------------------
   Reduced Motion
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {

	.skps-lightbox {
		transition: none;
	}

	.skps-lightbox-close,
	.skps-lightbox-prev,
	.skps-lightbox-next {
		transition: none;
	}

}