.zfs-flipbook {
	--zfs-flipbook-max-width: 640px;
	--zfs-flipbook-accent: #e75d83;
	--zfs-flipbook-ink: #17143f;
	max-width: var( --zfs-flipbook-max-width );
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
}

.zfs-flipbook__stage {
	position: relative;
	width: 100%;
	display: flex;
	justify-content: center;
	padding: 8px 0 34px;
}

/* Soft brand-tinted ambient glow behind the book, instead of a boxed-in panel. */
.zfs-flipbook__stage::before {
	content: '';
	position: absolute;
	left: 50%;
	top: 48%;
	width: 80%;
	height: 80%;
	background: radial-gradient( ellipse at center, color-mix( in srgb, var( --zfs-flipbook-accent ) 18%, transparent ), transparent 70% );
	transform: translate( -50%, -50% );
	filter: blur( 32px );
	z-index: 0;
	pointer-events: none;
}

/* Contact shadow grounding the book, as if resting just above the surface. */
.zfs-flipbook__stage::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: 6px;
	width: 60%;
	height: 20px;
	background: radial-gradient( ellipse at center, rgba( 0, 0, 0, 0.3 ), transparent 72% );
	transform: translateX( -50% );
	z-index: 0;
	pointer-events: none;
}

.zfs-flipbook__book {
	position: relative;
	z-index: 1;
	width: 100%;
	filter: drop-shadow( 0 24px 34px rgba( 0, 0, 0, 0.28 ) );
	transition: filter 0.25s ease, transform 0.25s ease;
}

@media ( prefers-reduced-motion: no-preference ) {
	.zfs-flipbook:hover .zfs-flipbook__book {
		transform: translateY( -3px );
		filter: drop-shadow( 0 30px 42px rgba( 0, 0, 0, 0.34 ) );
	}
}

.zfs-flipbook .page-flip {
	background: transparent;
}

.zfs-flipbook__page {
	width: 100%;
	height: 100%;
	background: #fff;
	overflow: hidden;
}

.zfs-flipbook__page img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	image-rendering: auto;
}

.zfs-flipbook__controls {
	display: flex;
	align-items: center;
	gap: 18px;
}

.zfs-flipbook__nav {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	border: none;
	background: var( --zfs-flipbook-accent );
	color: #fff;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.15s ease, opacity 0.15s ease;
}

.zfs-flipbook__nav:hover {
	transform: scale( 1.08 );
}

.zfs-flipbook__nav:active {
	transform: scale( 0.95 );
}

.zfs-flipbook__expand,
.zfs-flipbook-lightbox__close,
.zfs-flipbook-lightbox__download {
	border: none;
	background: var( --zfs-flipbook-accent );
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-weight: 700;
}

.zfs-flipbook-lightbox__download {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 0 14px;
	border-radius: 999px;
	font-size: 12px;
	text-decoration: none;
}

.zfs-flipbook__expand {
	min-height: 42px;
	padding: 0 18px;
	border-radius: 999px;
	font-size: 13px;
}

.zfs-flipbook__counter {
	min-width: 64px;
	text-align: center;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var( --zfs-flipbook-ink );
}

.zfs-flipbook-lightbox {
	width: min( 96vw, 1480px );
	height: min( 94vh, 1040px );
	max-width: none;
	max-height: none;
	padding: 0;
	border: none;
	border-radius: 14px;
	background: #111022;
	color: #fff;
	overflow: hidden;
}

.zfs-flipbook-lightbox::backdrop {
	background: rgba( 7, 6, 18, 0.82 );
}

.zfs-flipbook-lightbox__bar {
	display: flex;
	align-items: center;
	gap: 10px;
	justify-content: flex-end;
	min-height: 54px;
	padding: 10px 14px;
	background: rgba( 0, 0, 0, 0.34 );
}

.zfs-flipbook-lightbox__counter {
	margin-right: auto;
	font-size: 14px;
	font-weight: 700;
	color: rgba( 255, 255, 255, 0.82 );
}

.zfs-flipbook-lightbox__close {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	font-size: 26px;
	line-height: 1;
}

.zfs-flipbook-lightbox__stage {
	height: calc( 100% - 124px );
	padding: 18px 34px 10px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.zfs-flipbook-lightbox__book {
	width: 100%;
	filter: drop-shadow( 0 30px 48px rgba( 0, 0, 0, 0.5 ) );
}

.zfs-flipbook-lightbox__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	height: 70px;
}

.zfs-flipbook-lightbox--pdf {
	width: 96vw;
	height: 94vh;
}

.zfs-flipbook-lightbox__pdf {
	display: block;
	width: 100%;
	height: calc( 100% - 54px );
	border: none;
	background: #fff;
}

@media ( max-width: 480px ) {
	.zfs-flipbook__stage {
		padding: 6px 0 26px;
	}

	.zfs-flipbook__nav {
		width: 36px;
		height: 36px;
		font-size: 18px;
	}

	.zfs-flipbook__controls {
		gap: 10px;
	}

	.zfs-flipbook__expand {
		min-height: 36px;
		padding: 0 12px;
		font-size: 12px;
	}

	.zfs-flipbook-lightbox {
		width: 100vw;
		height: 100vh;
		border-radius: 0;
	}

	.zfs-flipbook-lightbox__download {
		padding: 0 10px;
		font-size: 11px;
	}

	.zfs-flipbook-lightbox__stage {
		height: calc( 100% - 114px );
		padding: 10px 10px 4px;
	}

	.zfs-flipbook-lightbox__controls {
		height: 60px;
	}
}
