.mls-book-slider {
	align-items: center;
	display: flex;
	gap: 10px;
	margin-top: 18px;
	min-width: 0;
}

.mls-book-slider__viewport {
	min-width: 0;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	width: 100%;
}

.mls-book-grid.mls-book-grid--slider {
	display: flex;
	gap: clamp(14px, 2.2vw, 24px);
	grid-template-columns: none;
	margin: 0;
	min-width: max-content;
	padding: 8px 2px 16px;
}

.mls-book-grid--slider .mls-book-card {
	flex: 0 0 clamp(155px, 22vw, 230px);
	scroll-snap-align: start;
}

.mls-book-grid--slider .mls-book-cover-link {
	margin: 0;
	max-width: none;
}

.mls-book-grid--slider .mls-book-card > .mls-book-cover-link {
	animation: mls-book-balloon 9s ease-in-out infinite;
	will-change: transform, opacity;
}

.mls-book-grid--slider .mls-book-card:nth-child(8n + 2) > .mls-book-cover-link {
	animation-delay: -1.125s;
}

.mls-book-grid--slider .mls-book-card:nth-child(8n + 3) > .mls-book-cover-link {
	animation-delay: -2.25s;
}

.mls-book-grid--slider .mls-book-card:nth-child(8n + 4) > .mls-book-cover-link {
	animation-delay: -3.375s;
}

.mls-book-grid--slider .mls-book-card:nth-child(8n + 5) > .mls-book-cover-link {
	animation-delay: -4.5s;
}

.mls-book-grid--slider .mls-book-card:nth-child(8n + 6) > .mls-book-cover-link {
	animation-delay: -5.625s;
}

.mls-book-grid--slider .mls-book-card:nth-child(8n + 7) > .mls-book-cover-link {
	animation-delay: -6.75s;
}

.mls-book-grid--slider .mls-book-card:nth-child(8n) > .mls-book-cover-link {
	animation-delay: -7.875s;
}

.mls-book-grid--slider .mls-book-card:hover > .mls-book-cover-link,
.mls-book-grid--slider .mls-book-card:focus-within > .mls-book-cover-link {
	animation: none;
	opacity: 1;
}

@keyframes mls-book-balloon {
	0%,
	52% {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
	68% {
		opacity: .64;
		transform: translateY(-20px) scale(.985);
	}
	80% {
		opacity: 0;
		transform: translateY(-52px) scale(.96);
	}
	90% {
		opacity: 0;
		transform: translateY(14px) scale(.97);
	}
	100% {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

.mls-book-slider__arrow {
	align-items: center;
	background: #183943;
	border: 2px solid #fff;
	border-radius: 50%;
	box-shadow: 0 4px 14px rgba(24, 57, 67, .2);
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	flex: 0 0 42px;
	font: 700 1.65rem/1 Arial, sans-serif;
	height: 42px;
	justify-content: center;
	padding: 0 0 4px;
	width: 42px;
}

.mls-book-slider__arrow:disabled {
	opacity: .45;
}

.mls-book-slider__arrow[hidden] {
	display: none !important;
}

.mls-book-slider__arrow:focus-visible {
	outline: 3px solid #e97978;
	outline-offset: 3px;
}

.mls-auto-book-slider {
	padding-bottom: clamp(36px, 6vw, 72px);
	padding-top: clamp(36px, 6vw, 72px);
}

.mls-empty-cart-books {
	margin: 32px 0 12px;
	padding: clamp(20px, 4vw, 36px);
	background: #fffaf4;
	border: 1px solid #eadbd1;
	border-radius: 18px;
}

.mls-empty-cart-books h2 {
	color: #183943;
	font: 700 clamp(1.4rem, 3vw, 2rem)/1.2 Georgia, serif;
	margin: 0 0 18px;
}

.mls-empty-cart-books__grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 135px), 1fr));
}

.mls-empty-cart-book {
	color: #183943;
	font-weight: 700;
	text-decoration: none;
}

.mls-empty-cart-book img {
	aspect-ratio: 3 / 4;
	background: #f4f0e9;
	border-radius: 10px;
	box-shadow: 0 8px 20px rgba(24, 57, 67, .14);
	display: block;
	margin-bottom: 10px;
	object-fit: cover;
	transition: transform .2s ease;
	width: 100%;
}

.mls-empty-cart-book:hover img,
.mls-empty-cart-book:focus-visible img {
	transform: translateY(-3px);
}

.mls-empty-cart-book:focus-visible {
	outline: 3px solid #e97978;
	outline-offset: 4px;
}

@media (max-width: 560px) {
	.mls-book-slider {
		gap: 6px;
	}

	.mls-book-slider__arrow {
		flex-basis: 34px;
		height: 34px;
		width: 34px;
	}

	.mls-book-grid--slider .mls-book-card {
		flex-basis: min(43vw, 185px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.mls-book-slider__viewport {
		scroll-behavior: auto;
	}

	.mls-book-grid--slider .mls-book-card > .mls-book-cover-link {
		animation: none;
		opacity: 1;
		transform: none;
		will-change: auto;
	}
}
