/* Cẩm Giang — flipbook.css: khối "Đọc truyện" và khung sách (biến thể truyen-ngan). */

/* ===== Khối "Đọc truyện" ===== */
.cg-book {
	margin-top: clamp(30px, 3.8vw, 48px);
	border-top: 1px solid var(--cg-border);
	padding-top: clamp(22px, 2.6vw, 32px);
}

.cg-book__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}

.cg-book__hint {
	font-size: 12.5px;
	color: var(--cg-text-faint);
}

.cg-book__frame {
	margin-top: clamp(18px, 2.2vw, 26px);
	background: var(--cg-border-faint);
	border: 1px solid var(--cg-border);
	padding: clamp(16px, 2.6vw, 34px) clamp(12px, 2.4vw, 30px);
}

.cg-book__host {
	width: 100%;
	display: flex;
	justify-content: center;
}

/* Khổ hẹp: sách hiện một trang, và độc giả phải chụm tay phóng to được — chữ trong PDF
   ở 358px là nhỏ, phóng to là lối thoát duy nhất (spec §6, nghiệm thu §8.6).
   StPageFlip đặt `touch-action: pan-y` lên `.stf__parent` khi mobileScrollSupport bật;
   `pan-y` cho phép cuộn dọc nhưng chặn luôn cử chỉ chụm, nên phải thêm `pinch-zoom`.
   Chọn `.cg-book .cg-book__host` (0,2,0) để thắng `.stf__parent` (0,1,0): thư viện chèn
   CSS của nó vào <head> lúc chạy, tức đứng SAU tệp của theme — bằng điểm là nó thắng. */
@media ( max-width: 619.98px ) {
	.cg-book .cg-book__host {
		touch-action: pan-y pinch-zoom;
	}
}

.cg-book__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(12px, 2vw, 20px);
	padding-top: clamp(16px, 2vw, 24px);
}

/* Nút thật, nên phải xoá kiểu mặc định của <button>. */
.cg-book__btn {
	width: 46px;
	height: 46px;
	padding: 0;
	border: 1px solid var(--cg-border-active);
	background: var(--cg-bg);
	color: inherit;
	font: inherit;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: border-color 160ms ease, background 160ms ease, color 160ms ease;
}

.cg-book__btn:hover {
	border-color: var(--cg-accent);
	background: var(--cg-accent);
	color: var(--cg-on-dark);
}

.cg-book__label {
	font-family: var(--cg-font-serif);
	font-size: 14px;
	color: var(--cg-text-soft);
	min-width: 104px;
	text-align: center;
	letter-spacing: 0.04em;
}

/* ===== Trang sách ===== */
.cg-book-page {
	background: var(--cg-bg-paper);
	height: 100%;
	overflow: hidden;
}

/* Mốc nạp trễ, in ngay trước khối sách. Phải có hộp bố cục thật thì
   IntersectionObserver mới báo được — lý do đầy đủ ở template-parts/book-pdf.php.
   Cao 1px chứ không phải 0: phần tử diện tích bằng 0 không phải trình duyệt nào
   cũng báo giao nhau. */
.cg-book__sentinel {
	height: 1px;
}

/* ===== Toàn màn hình ===== */

/* Lớp phủ do flipbook.js dựng lúc chạy và <section class="cg-book"> được CHUYỂN vào
   (lý do phải chuyển ghi trong openFull()). Nền mờ đục chứ không trong suốt: trang
   PDF nền trắng đặt trên chữ bài viết thì hai lớp chữ chồng nhau ở mép trang.
   Nền lấy đúng --cg-border-faint của .cg-book__frame chứ không lấy --cg-bg: trang giấy
   là --cg-bg-paper (#fffdf8), đặt lên nền trắng (#ffffff) thì mép trang biến mất và
   độc giả không còn thấy quyển sách bắt đầu từ đâu. */
.cg-book__stage {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--cg-border-faint);
	overflow: hidden;
}

/* Thanh admin của WordPress là position:fixed và z-index 99999 — không lớp phủ nào của
   theme trèo lên nó được, nên phải né xuống dưới. Không né thì 32px đầu quyển sách nằm
   khuất sau thanh ấy, mà lớp phủ đã khoá cuộn nên không kéo lên xem được.
   Chỉ quản trị viên thấy; độc giả không có thanh này. */
body.admin-bar .cg-book__stage {
	top: 32px;
}

/* Ba nấc là ba nấc của CHÍNH thanh admin, không phải breakpoint của theme: WordPress
   cho nó cao 46px dưới 783px, và dưới 601px thì đổi sang position:absolute — lúc ấy nó
   cuộn đi mất, nên né nó là chừa một dải trống 46px hở nguyên bài viết phía sau (đã
   nhìn thấy thật ở khổ 396px). */
@media screen and ( max-width: 782px ) {
	body.admin-bar .cg-book__stage {
		top: 46px;
	}
}

@media screen and ( max-width: 600px ) {
	body.admin-bar .cg-book__stage {
		top: 0;
	}
}

/* Bắt buộc phải có: `display: flex` ở trên thắng [hidden]{display:none} của trình
   duyệt (cùng độ đặc hiệu, đứng sau), nên lớp phủ đã đóng vẫn phủ kín màn hình và
   nuốt mọi cú bấm. Cùng lý do đã có .cg-video-modal[hidden] và .cg-zoom[hidden]. */
.cg-book__stage[hidden] {
	display: none;
}

/* Khối sách khi đã vào lớp phủ: bỏ hết đường viền và khoảng cách vốn để nó hoà vào
   dòng bài, vì giờ nó là toàn bộ màn hình. */
.cg-book--full {
	width: 100%;
	max-width: 1400px;
	margin-top: 0;
	border-top: 0;
	padding: clamp(10px, 1.6vw, 18px) clamp(12px, 2.4vw, 30px);
}

.cg-book--full .cg-book__frame {
	margin-top: clamp(10px, 1.4vw, 16px);
	background: none;
	border: 0;
	padding: 0;
}

/* Hai icon in sẵn cả hai trong nút, CSS chọn cái nào hiện — xem chú thích ở
   template-parts/book-pdf.php. */
.cg-book__ico {
	display: flex;
}

.cg-book__ico--close,
.cg-book--full .cg-book__ico--open {
	display: none;
}

.cg-book--full .cg-book__ico--close {
	display: flex;
}
