.bb-audio-card img {
	width: 100%;
	height: 250px;
	object-fit: contain;
}

.bb-book-page {
	max-width: 960px;
	margin: 2rem auto 3rem;
	padding: 0 1.25rem;
}

.bb-book-page-title {
	margin: 0 0 1.25rem;
	color: #5b2c83;
	text-align: center;
}

.bb-audio-library-back {
	margin: 0 0 1rem;
	text-align: right;
}

.bb-audio-library-back a {
	color: #5b2c83;
	font-weight: 700;
	text-decoration: none;
}

.bb-audio-library-note {
	margin: 1rem 0;
	color: #5c516e;
	text-align: center;
}

.bb-audio-library {
	margin: 2.5rem 0 1rem;
	color: #4a2c74;
	direction: rtl;
	text-align: center;
}

.bb-audio-library-heading h2,
.bb-audio-library-heading p,
.bb-audio-library-card h3 {
	margin: 0;
}

.bb-audio-library-heading h2 {
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.2;
}

.bb-audio-library-heading p {
	margin-top: 0.35rem;
	color: #5c516e;
	font-size: 1.05rem;
}

.bb-audio-library-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1.25rem;
	margin-top: 1.5rem;
}

.bb-audio-library-card {
	width: 210px;
	padding: 0.85rem 0.85rem 1.1rem;
	background: #fff;
	border-radius: 22px;
	box-shadow: 0 10px 28px rgba(74, 44, 116, 0.08);
}

.bb-audio-library-cover {
	display: block;
}

.bb-audio-library-cover img {
	width: 100%;
	height: 250px;
	object-fit: contain;
	border-radius: 8px;
}

.bb-audio-library-card h3 {
	margin: 0.85rem 0 0.9rem;
	color: #5b2c83;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.35;
}

.bb-audio-library-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 9rem;
	min-height: 42px;
	padding: 0.45rem 1.1rem;
	border-radius: 999px;
	background: #6f8f6a;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}

.bb-audio-library-button:hover,
.bb-audio-library-button:focus {
	background: #5f7c5b;
	color: #fff;
}

@media (max-width: 782px) {
	.bb-audio-library-grid {
		gap: 0.9rem;
	}

	.bb-audio-library-card {
		width: min(100%, 240px);
	}
}

.bb-shelf {
	margin: 1.5rem 0 2rem;
	color: #5c307a;
	direction: rtl;
}

.bb-shelf-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
}

.bb-shelf-heading h2,
.bb-shelf-heading p,
.bb-shelf-card h3,
.bb-shelf-note {
	margin: 0;
}

.bb-shelf-heading h2 {
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.2;
}

.bb-shelf-heading p,
.bb-shelf-note {
	margin-top: 0.3rem;
	color: #5c516e;
}

.bb-shelf-nav {
	display: flex;
	gap: 0.4rem;
}

.bb-shelf-nav button {
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: 999px;
	background: #5c307a;
	color: #fff;
	font-size: 1.4rem;
	line-height: 1;
	cursor: pointer;
}

.bb-shelf-track {
	display: flex;
	gap: 1.15rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding: 0.35rem 0.2rem 1rem;
}

.bb-shelf-card {
	display: flex;
	flex: 0 0 230px;
	flex-direction: column;
	align-items: center;
	scroll-snap-align: start;
	padding: 0.9rem 0.85rem 1.1rem;
	background: #fff;
	border-radius: 22px;
	box-shadow: 0 10px 28px rgba(92, 48, 122, 0.1);
	text-align: center;
}

.bb-shelf-cover img {
	width: 150px;
	height: 210px;
	object-fit: contain;
}

.bb-shelf-card h3 {
	margin: 0.75rem 0 0.45rem;
	color: #5c307a;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.35;
}

.bb-shelf-owned,
.bb-shelf-physical {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 28px;
	padding: 0.15rem 0.8rem;
	border-radius: 999px;
	font-size: 0.85rem;
	font-weight: 700;
}

.bb-shelf-owned {
	background: #5c307a;
	color: #fff;
}

.bb-shelf-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.4rem;
	margin-top: 0.75rem;
}

.bb-shelf-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	padding: 0.3rem 0.9rem;
	border-radius: 999px;
	background: #6f8f6a;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}

.bb-shelf-button:hover,
.bb-shelf-button:focus {
	background: #5f7c5b;
	color: #fff;
}

.bb-shelf-physical {
	border: 1px solid #c9bfd4;
	background: #f7f4fa;
	color: #5c516e;
}

.bb-read-page {
	max-width: 1100px;
	margin: 1.5rem auto 2.5rem;
	padding: 0 1.25rem;
}

.bb-read-page h1 {
	margin: 0 0 1rem;
	color: #5c307a;
	text-align: center;
}

.bb-read-page .fb3d-fullscreen-mode,
.bb-read-frame {
	display: block;
	width: 100%;
	height: 78vh;
	min-height: 520px;
	border: 0;
	border-radius: 16px;
	background: #f7f4fa;
}

@media (max-width: 782px) {
	.bb-shelf {
		padding-inline: 1rem;
	}

	.bb-shelf-card {
		flex-basis: min(78vw, 260px);
	}

	.bb-read-page {
		padding-inline: 1rem;
	}

	.bb-read-frame,
	.bb-read-page .fb3d-fullscreen-mode {
		min-height: 70vh;
	}
}
