/* ProBook Audio Chapters - library (/audioknigi/) and book pages. Loaded only on those pages. */

.pba.pba-site {
	display: block;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0 0 56px;
	background:
		radial-gradient(60% 50% at 100% 100%, rgba(201, 162, 77, .06), transparent 60%),
		var(--pba-bg);
	text-align: left;
	overflow: hidden;
}
.pba .pba-wrap { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.pba .pba-h { font-size: 20px !important; font-weight: 600 !important; line-height: 1.2 !important; color: var(--pba-text) !important; margin-bottom: 14px !important; }

/* ---------- Book page ---------- */
.pba.pba--page { position: relative; }
.pba .pba-hero {
	position: relative;
	padding: 64px 0 56px;
	background:
		radial-gradient(70% 120% at 0% 0%, rgba(201, 162, 77, .2), transparent 60%),
		radial-gradient(60% 90% at 100% 100%, rgba(201, 162, 77, .08), transparent 60%),
		linear-gradient(160deg, #1a1712, var(--pba-bg) 60%);
	border-bottom: 1px solid var(--pba-line);
}
.pba .pba-hero-in { display: grid; grid-template-columns: 260px 1fr; gap: 56px; align-items: center; }
.pba--page .pba-cover { border-radius: 12px; box-shadow: 0 30px 60px -18px rgba(0, 0, 0, .85), 0 0 0 1px rgba(255, 255, 255, .07); }
.pba--page .pba-title { font-size: clamp(34px, 4.6vw, 60px) !important; line-height: 1.02 !important; margin-top: 14px !important; }
.pba--page .pba-meta { font-size: 14px !important; margin-top: 12px !important; }
.pba--page .pba-now { margin-top: 28px !important; font-size: 15px !important; }
.pba--page .pba-controls { margin-top: 16px; gap: 18px; }
.pba--page .pba-progress { margin-top: 18px; max-width: 720px; }
.pba--page .pba-controls { max-width: 720px; }

.pba .pba-body { padding: 48px 0 8px; }
.pba .pba-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.pba--page .pba-list { margin-top: 0 !important; padding-top: 0 !important; border-top: 0 !important; }
.pba .pba-desc { color: var(--pba-muted); font-size: 15px; line-height: 1.7; }
.pba .pba-desc p { color: var(--pba-muted) !important; font-size: 15px !important; line-height: 1.7 !important; }
.pba .pba-desc p + p { margin-top: 12px !important; }
.pba .pba-desc a { color: var(--pba-gold-2) !important; }
.pba .pba-desc strong, .pba .pba-desc b { color: var(--pba-text); font-weight: 600; }
.pba .pba-facts { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; margin-top: 24px !important; }
.pba .pba-fact { border: 1px solid var(--pba-line); border-radius: 12px; padding: 12px 14px; min-width: 0; }
.pba .pba-fact dt { font-size: 10px !important; letter-spacing: .16em !important; text-transform: uppercase; color: var(--pba-muted) !important; font-weight: 600 !important; }
.pba .pba-fact dd { font-size: 15px !important; font-weight: 600 !important; color: var(--pba-text) !important; margin-top: 4px !important; overflow-wrap: anywhere; }

.pba .pba-buy { margin-top: 40px; }
.pba--page .pba-end { margin-top: 0; padding: 24px 28px; border-radius: 18px; animation: none; }
.pba--page .pba-end-k { font-size: 22px !important; }
.pba--page .pba-end-t { font-size: 14px !important; }
.pba--page .pba-cta { padding: 14px 24px !important; font-size: 15px !important; }

.pba .pba-more { margin-top: 48px; }

/* ---------- Library ---------- */
.pba .pba-spot {
	padding: 72px 0 64px;
	background:
		radial-gradient(60% 130% at 85% 50%, rgba(201, 162, 77, .24), transparent 60%),
		linear-gradient(160deg, #1a1712, var(--pba-bg) 60%);
	border-bottom: 1px solid var(--pba-line);
}
.pba .pba-spot-in { display: grid; grid-template-columns: 1fr 260px; gap: 56px; align-items: center; }
.pba--lib .pba-title { font-size: clamp(34px, 4.6vw, 60px) !important; line-height: 1.02 !important; margin-top: 14px !important; }
.pba--lib .pba-meta { font-size: 14px !important; margin-top: 12px !important; }
.pba .pba-teaser { margin-top: 16px !important; max-width: 560px; color: var(--pba-muted) !important; font-size: 15px !important; line-height: 1.7 !important; }
.pba .pba-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.pba .pba-ghost {
	display: inline-flex !important; align-items: center; padding: 12px 22px !important; border-radius: 999px !important;
	border: 1px solid var(--pba-gold) !important; background: transparent !important; color: var(--pba-text) !important;
	font-weight: 600 !important; font-size: 14px !important; line-height: 1.2 !important; white-space: nowrap; transition: background .15s;
}
.pba .pba-ghost:hover { background: rgba(201, 162, 77, .12) !important; color: var(--pba-text) !important; }
.pba .pba-spot-cover:hover { transform: translateY(-3px); }
/* Tall enough that the footer isn't followed by a white strip on short screens. */
.pba .pba-spot--empty { display: flex; align-items: center; min-height: 62vh; padding: 96px 0; text-align: center; }
.pba .pba-spot--empty .pba-meta { justify-content: center; }
.pba .pba-shelves { padding-top: 48px; }
.pba .pba-shelf + .pba-shelf { margin-top: 44px; }

/* ---------- Shelf ---------- */
.pba .pba-shelf-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 4px; }
.pba .pba-shelf-head .pba-h { margin-bottom: 0 !important; }
.pba .pba-shelf-nav { display: flex; gap: 8px; }
.pba .pba-shelf-nav button {
	display: grid !important; place-items: center; width: 38px !important; height: 38px !important; border-radius: 50% !important;
	border: 1px solid var(--pba-line) !important; color: var(--pba-text) !important; transition: background .15s, opacity .15s;
}
.pba .pba-shelf-nav button:hover { background: rgba(201, 162, 77, .12) !important; }
.pba .pba-shelf-nav button:disabled { opacity: .3; cursor: default; background: transparent !important; }
.pba .pba-shelf-nav svg { width: 18px; height: 18px; }
.pba .pba-shelf.is-static .pba-shelf-nav { display: none; }
.pba .pba-shelf-track {
	display: grid !important; grid-auto-flow: column; grid-auto-columns: 168px; gap: 20px;
	overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding: 0;
	padding: 14px 0 6px !important; scrollbar-width: none;
}
.pba .pba-shelf-track::-webkit-scrollbar { display: none; }
.pba .pba-shelf-track li { scroll-snap-align: start; min-width: 0; }
.pba .pba-book { display: block !important; color: var(--pba-text) !important; }
.pba .pba-book-cover {
	position: relative; display: block; aspect-ratio: 2 / 3; border-radius: 10px; overflow: hidden; background: var(--pba-surface);
	box-shadow: 0 16px 34px -14px rgba(0, 0, 0, .8), 0 0 0 1px rgba(255, 255, 255, .06);
	transition: transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s;
}
.pba .pba-book-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pba .pba-book:hover .pba-book-cover { transform: translateY(-4px); box-shadow: 0 22px 40px -14px rgba(0, 0, 0, .9), 0 0 0 1px rgba(201, 162, 77, .35); }
.pba .pba-badge {
	position: absolute; right: 10px; bottom: 10px; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%;
	background: linear-gradient(145deg, var(--pba-gold-2), var(--pba-gold)); color: #17130c;
	box-shadow: 0 8px 18px -6px rgba(0, 0, 0, .7); transition: transform .2s;
}
.pba .pba-badge svg { width: 16px; height: 16px; }
.pba .pba-book:hover .pba-badge { transform: scale(1.08); }
.pba .pba-book-t { display: block; margin-top: 12px; font-size: 14px; font-weight: 600; line-height: 1.3; color: var(--pba-text); overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.pba .pba-book-m { display: block; margin-top: 4px; font-size: 12px; color: var(--pba-muted); }

/* ---------- Tablet ---------- */
@media (max-width: 960px) {
	.pba .pba-hero-in, .pba .pba-spot-in { gap: 36px; }
	.pba .pba-hero-in { grid-template-columns: 200px 1fr; }
	.pba .pba-spot-in { grid-template-columns: 1fr 200px; }
	.pba .pba-cols { grid-template-columns: 1fr; gap: 40px; }
}

/* ---------- Phone ---------- */
@media (max-width: 640px) {
	.pba .pba-wrap { padding: 0 18px; }
	.pba .pba-h { font-size: 17px !important; }

	.pba .pba-hero { padding: 40px 0 28px; }
	.pba .pba-hero-in { grid-template-columns: 104px 1fr; gap: 16px; align-items: end; }
	.pba--page .pba-hero-main { display: contents; }
	.pba--page .pba-cover { grid-row: 1 / span 3; align-self: start; border-radius: 10px; }
	.pba--page .pba-eyebrow { grid-column: 2; font-size: 9px !important; letter-spacing: .16em !important; }
	.pba--page .pba-title { grid-column: 2; font-size: 28px !important; margin-top: 0 !important; }
	.pba--page .pba-meta { grid-column: 2; font-size: 12px !important; margin-top: 0 !important; flex-direction: column; align-items: flex-start; gap: 2px; }
	.pba--page .pba-meta .pba-dot { display: none; }
	.pba--page .pba-now, .pba--page .pba-controls, .pba--page .pba-progress { grid-column: 1 / -1; }
	.pba--page .pba-now { margin-top: 10px !important; }
	.pba--page .pba-progress { margin-top: 0; }
	.pba--page .pba-controls { justify-content: center; gap: 18px; margin-top: 0; }

	.pba .pba-body { padding-top: 32px; }
	.pba .pba-buy { margin-top: 28px; }
	.pba--page .pba-end { padding: 20px; }
	.pba--page .pba-end-k { font-size: 19px !important; }

	.pba .pba-spot { padding: 36px 0 40px; text-align: center; }
	.pba .pba-spot-in { grid-template-columns: 1fr; gap: 22px; }
	.pba .pba-spot-cover { order: -1; width: 150px; margin: 0 auto; }
	.pba--lib .pba-eyebrow { justify-content: center; }
	.pba--lib .pba-title { font-size: 32px !important; }
	.pba--lib .pba-meta { justify-content: center; }
	.pba .pba-teaser { margin-left: auto !important; margin-right: auto !important; font-size: 14px !important; }
	.pba .pba-actions { flex-direction: column; align-items: stretch; }
	.pba .pba-actions a { justify-content: center; }

	.pba .pba-shelves { padding-top: 32px; }
	.pba .pba-shelf-nav { display: none; }
	/* Let the shelf bleed to the right screen edge so it reads as "swipe me". */
	.pba .pba-shelf-track { grid-auto-columns: 128px; gap: 14px; margin-right: -18px; padding-right: 18px !important; }
	.pba .pba-book-t { font-size: 13px; }
}
