/**
 * Paperback met hover-to-open (Codrops AnimatedBooks-recept, paperback-variant).
 * Selector-prefix `.tm-hover-book` om botsing met andere CSS te voorkomen.
 *
 * --book-w wordt door de shortcode op .tm-hover-book-wrap gezet.
 */

.tm-hover-book-wrap {
	--book-w: 240px;
	--book-h: calc(var(--book-w) * 970 / 693);
	display: grid;
	place-items: center;
	padding: 30px 0 60px;
}

.tm-hover-book {
	position: relative;
	width: var(--book-w);
	height: var(--book-h);
	perspective: 1200px;
	transform-style: preserve-3d;
	margin: 0;
}

/* Cover, achterkant en pagina-vlakken delen positie + scharnier links-onder. */
.tm-hover-book .tm-hb-front,
.tm-hover-book .tm-hb-back,
.tm-hover-book .tm-hb-front li,
.tm-hover-book .tm-hb-back li {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border-radius: 1px 3px 3px 1px;
	transform-style: preserve-3d;
	list-style: none;
	margin: 0;
	padding: 0;
}
.tm-hover-book .tm-hb-front,
.tm-hover-book .tm-hb-back {
	transform-origin: 0% 100%;
}

/* COVER */
.tm-hover-book .tm-hb-front {
	transition: transform 0.6s ease, z-index 0.6s;
	transform: rotateY(-34deg);
	z-index: 100;
	box-shadow:
		0 24px 40px -16px rgba(0, 0, 0, 0.35),
		0 8px 16px -8px rgba(0, 0, 0, 0.18);
}
.tm-hover-book .tm-hb-front li:first-child {
	background-image: var(--cover);
	background-size: cover;
	background-position: center;
	background-color: #1f5b5b;
	backface-visibility: hidden;
}
.tm-hover-book .tm-hb-front li:nth-child(2) {
	background: #fff;
	transform: rotateY(180deg);
	backface-visibility: hidden;
}
.tm-hover-book .tm-hb-front::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image: linear-gradient(-135deg, rgba(255, 255, 255, 0.18) 0%, transparent 60%);
	border-radius: inherit;
}

/* BINNENKANT KAFT — wit */
.tm-hover-book .tm-hb-back {
	transform: rotateY(-30deg);
	background: #fff;
	box-shadow:
		0 20px 30px -14px rgba(0, 0, 0, 0.25),
		inset -2px 0 6px rgba(0, 0, 0, 0.06);
}
.tm-hover-book .tm-hb-back li {
	background: #fff;
}

/* PAGINA-STAPEL */
.tm-hover-book .tm-hb-pages,
.tm-hover-book .tm-hb-pages > li {
	position: absolute;
	transform-style: preserve-3d;
	list-style: none;
	margin: 0;
	padding: 0;
}
.tm-hover-book .tm-hb-pages {
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 10;
}
.tm-hover-book .tm-hb-pages > li {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transform-origin: left center;
	transition-property: transform;
	transition-timing-function: ease;
	background-color: #fff;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 100% 100%;
	box-shadow:
		0 1px 2px rgba(0, 0, 0, 0.05),
		inset 1px 0 0 rgba(0, 0, 0, 0.04);
	border-radius: 1px 3px 3px 1px;
	backface-visibility: hidden;
}
/* Witte keerzijde van elke pagina */
.tm-hover-book .tm-hb-pages > li::before {
	content: "";
	position: absolute;
	inset: 0;
	background: #fff;
	transform: rotateY(180deg);
	backface-visibility: hidden;
	border-radius: inherit;
}

/* Default rotaties — dichte stand, lichte spread */
.tm-hover-book .tm-hb-pages li:nth-child(1) { transform: rotateY(-30deg); transition-duration: 0.6s; }
.tm-hover-book .tm-hb-pages li:nth-child(2) { transform: rotateY(-31deg); transition-duration: 0.6s; }
.tm-hover-book .tm-hb-pages li:nth-child(3) { transform: rotateY(-32deg); transition-duration: 0.4s; }
.tm-hover-book .tm-hb-pages li:nth-child(4) { transform: rotateY(-33deg); transition-duration: 0.5s; }
.tm-hover-book .tm-hb-pages li:nth-child(5) { transform: rotateY(-34deg); transition-duration: 0.5s; }

/* HOVER: boek opent */
.tm-hover-book:hover .tm-hb-front {
	transform: rotateY(-125deg);
	z-index: 0;
}
.tm-hover-book:hover .tm-hb-pages li:nth-child(1) { transform: rotateY(-30deg);  transition-duration: 1.5s; }
.tm-hover-book:hover .tm-hb-pages li:nth-child(2) { transform: rotateY(-35deg);  transition-duration: 1.8s; }
.tm-hover-book:hover .tm-hb-pages li:nth-child(3) { transform: rotateY(-110deg); transition-duration: 2.2s; }
.tm-hover-book:hover .tm-hb-pages li:nth-child(4) { transform: rotateY(-115deg); transition-duration: 1.8s; }
.tm-hover-book:hover .tm-hb-pages li:nth-child(5) { transform: rotateY(-120deg); transition-duration: 1.5s; }

@media (prefers-reduced-motion: reduce) {
	.tm-hover-book .tm-hb-front,
	.tm-hover-book .tm-hb-pages > li {
		transition: none !important;
	}
}
