/*
Theme Name: Hoa Phung Lieu Nguyen Reader
Theme URI: https://hoaphunglieunguyen.com/
Author: hoaphunglieunguyen.com
Description: Theme nhẹ, tự viết, tối giản cho website đọc truyện Hỏa Phụng Liêu Nguyên. Không dùng page builder. Mobile-first, tập trung vào trải nghiệm đọc.
Version: 1.1.4
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: hpln-reader
*/

:root{
	--bg: #0e0e10;
	--bg-elevated: #1a1a1d;
	--fg: #f2f2f0;
	--fg-muted: #9a9a9e;
	--accent: #d94f3d;
	--border: #2a2a2e;
	--page-edge: transparent;
	--max-width: 1100px;
	--header-h: 60px;
}

:root[data-theme="light"]{
	--bg: #ffffff;
	--bg-elevated: #f4f4f5;
	--fg: #17171a;
	--fg-muted: #6b6b70;
	--accent: #c8412f;
	--border: #e4e4e7;
	--page-edge: rgba(0,0,0,.16);
}

*, *::before, *::after{ box-sizing: border-box; }

html{ -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body{
	margin: 0;
	background: var(--bg);
	color: var(--fg);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	line-height: 1.6;
	transition: background-color .2s ease, color .2s ease;
}

a{ color: inherit; text-decoration: none; }
img{ max-width: 100%; display: block; }

.container{
	max-width: var(--max-width);
	margin: 0 auto;
	padding: 0 20px;
}

/* Header */
.site-header{
	position: sticky;
	top: 0;
	z-index: 50;
	background: color-mix(in srgb, var(--bg) 92%, transparent);
	backdrop-filter: blur(6px);
	border-bottom: 1px solid var(--border);
}
.site-header .container{
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: var(--header-h);
	gap: 16px;
}
.site-logo{ font-weight: 800; font-size: 1.2rem; letter-spacing: 0.5px; }
.header-right{ display: flex; align-items: center; gap: 8px; }
.main-nav ul{ list-style: none; display: flex; gap: 24px; margin: 0; padding: 0; }
.main-nav a{ font-size: 0.95rem; color: var(--fg-muted); }
.main-nav a:hover, .main-nav a.is-active{ color: var(--fg); }
.nav-toggle{ display: none; background: none; border: 0; color: var(--fg); font-size: 1.5rem; cursor: pointer; }

.theme-toggle{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 999px;
	border: 1px solid var(--border);
	background: var(--bg-elevated);
	color: var(--fg);
	cursor: pointer;
	font-size: 1rem;
	line-height: 1;
	flex: none;
}
.theme-toggle:hover{ border-color: var(--fg-muted); }
.theme-toggle .icon-moon{ display: none; }
:root[data-theme="light"] .theme-toggle .icon-sun{ display: none; }
:root[data-theme="light"] .theme-toggle .icon-moon{ display: inline; }

@media (max-width: 640px){
	.main-nav{ display: none; }
	.main-nav.is-open{
		display: block;
		position: absolute;
		top: 60px; left: 0; right: 0;
		background: var(--bg-elevated);
		border-bottom: 1px solid var(--border);
	}
	.main-nav.is-open ul{ flex-direction: column; gap: 0; padding: 8px 20px 16px; }
	.main-nav.is-open li{ padding: 10px 0; border-bottom: 1px solid var(--border); }
	.nav-toggle{ display: block; }
}

/* Hero / homepage */
.hero{
	min-height: calc(100svh - var(--header-h));
	display: flex;
	align-items: center;
	position: relative;
	padding: 40px 0;
}
.hero-grid{ display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 40px; align-items: center; width: 100%; }
@media (max-width: 800px){ .hero-grid{ grid-template-columns: 1fr; } }
.hero h1{ font-size: clamp(2rem, 5vw, 3.2rem); line-height: 1.15; margin: 0 0 16px; }
.hero p{ color: var(--fg-muted); font-size: 1.05rem; max-width: 52ch; }
.hero-cta{ display: flex; gap: 12px; margin-top: 28px; flex-wrap: wrap; }
.btn{
	display: inline-block;
	padding: 12px 22px;
	border-radius: 999px;
	font-weight: 600;
	font-size: 0.95rem;
	border: 1px solid transparent;
	cursor: pointer;
}
.btn-primary{ background: var(--fg); color: var(--bg); }
.btn-secondary{ background: transparent; color: var(--fg); border-color: var(--border); }
.hero-cover img{ border-radius: 12px; }

.scroll-cue{
	position: absolute;
	bottom: 18px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	color: var(--fg-muted);
	font-size: 0.75rem;
	animation: hpln-bounce 2s ease-in-out infinite;
}
@keyframes hpln-bounce{
	0%, 100%{ transform: translate(-50%, 0); }
	50%{ transform: translate(-50%, 6px); }
}

/* Volume section */
#tap-list{ scroll-margin-top: calc(var(--header-h) + 20px); }
.section-heading{ text-align: center; margin: 0 0 32px; }
.section-title{ font-size: 1.6rem; margin: 0 0 12px; }
.stat-pills{ display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.stat-pill{
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	border-radius: 999px;
	padding: 6px 14px;
	font-size: 0.82rem;
	color: var(--fg-muted);
}
.tap-grid{
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: 18px;
	padding: 0 0 48px;
}
.tap-card{
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	border-radius: 10px;
	overflow: hidden;
	transition: transform .15s ease;
}
.tap-card:hover{ transform: translateY(-3px); }
.tap-card img{ aspect-ratio: 3/4; object-fit: cover; width: 100%; background: var(--border); }
.tap-card-body{ padding: 10px 12px 14px; }
.tap-card-title{ font-weight: 700; font-size: 0.95rem; margin: 0 0 4px; }
.tap-card-sub{ color: var(--fg-muted); font-size: 0.8rem; }

/* Volume detail page */
.tap-detail{ display: grid; grid-template-columns: 260px 1fr; gap: 40px; padding: 40px 0 64px; }
@media (max-width: 760px){ .tap-detail{ grid-template-columns: 1fr; } }
.tap-detail-cover img{ border-radius: 10px; }
.tap-detail-meta{ margin-top: 16px; color: var(--fg-muted); font-size: 0.9rem; }
.tap-detail-meta div{ margin-bottom: 6px; }

.chuong-list{ list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--border); }
.chuong-list li{ border-bottom: 1px solid var(--border); }
.chuong-list a{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 4px;
}
.chuong-list a:hover{ background: var(--bg-elevated); }
.chuong-list-num{ color: var(--fg-muted); font-size: 0.85rem; margin-right: 12px; min-width: 56px; }
.chuong-list-title{ flex: 1; font-weight: 600; }
.chuong-list-arrow{ color: var(--fg-muted); }

/* Reader */
.reader-header{
	position: sticky; top: 0; z-index: 60;
	background: rgba(14,14,16,0.95);
	border-bottom: 1px solid var(--border);
}
.reader-header .container{
	display: flex; align-items: center; justify-content: space-between;
	height: 56px; gap: 12px;
}
.reader-header-left{ display: flex; align-items: center; gap: 12px; min-width: 0; }
.reader-badge{ background: var(--bg-elevated); border: 1px solid var(--border); border-radius: 6px; padding: 4px 8px; font-size: 0.78rem; white-space: nowrap; }
.reader-title{ font-size: 0.9rem; color: var(--fg-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.reader-header-right{ display: flex; align-items: center; gap: 10px; }
.reader-pg{ font-size: 0.82rem; color: var(--fg-muted); white-space: nowrap; }
.reader-nav-btn{
	background: var(--bg-elevated); border: 1px solid var(--border); color: var(--fg);
	padding: 8px 14px; border-radius: 999px; font-size: 0.85rem; cursor: pointer;
}
.reader-nav-btn:disabled{ opacity: 0.4; cursor: default; }
.reader-nav-btn-icon{ display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; padding: 0; font-size: 1.15rem; line-height: 1; }
.chuong-top-nav{ display: flex; justify-content: center; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 20px; }
.hoi-select{ background: var(--bg-elevated); border: 1px solid var(--border); color: var(--fg); padding: 8px 14px; border-radius: 999px; font-size: 0.85rem; cursor: pointer; max-width: 180px; }

.reader-stage{ padding: 24px 0 80px; text-align: center; min-height: 60vh; }
.reader-stage img{ display: block; margin: 0 auto 4px; max-width: 100%; box-shadow: 0 0 0 1px var(--page-edge); }
.reader-stage img.is-hidden{ display: none; }

.reader-hint{
	position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%);
	background: var(--bg-elevated); border: 1px solid var(--border);
	padding: 8px 16px; border-radius: 999px; font-size: 0.8rem; color: var(--fg-muted);
	opacity: 0; transition: opacity .3s;
}
.reader-hint.is-visible{ opacity: 1; }

.chuong-bottom-nav{ display: flex; justify-content: center; align-items: center; gap: 12px; flex-wrap: wrap; margin: 32px 0 12px; }
.back-to-tap{ display: inline-block; margin-top: 20px; color: var(--fg-muted); font-size: 0.9rem; }

/* Static page content */
.page-content{ padding: 48px 0 64px; max-width: 72ch; margin: 0 auto; }
.page-content h1{ font-size: 2rem; margin-bottom: 20px; }
.page-content p{ color: var(--fg-muted); }

/* Footer */
.site-footer{ border-top: 1px solid var(--border); padding: 32px 0; margin-top: 40px; }
.site-footer .container{ display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; color: var(--fg-muted); font-size: 0.85rem; }
.site-footer a{ color: var(--fg-muted); }
.site-footer a:hover{ color: var(--fg); }


/* ---- Blog posts (added) ---- */
.post-index-heading{ padding: 48px 0 0; }
.post-grid{
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 20px;
	padding: 32px 0 64px;
}
.post-card{
	display: flex;
	flex-direction: column;
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	border-radius: 10px;
	overflow: hidden;
	transition: transform .15s ease, border-color .15s ease;
}
.post-card:hover{ transform: translateY(-3px); border-color: var(--accent); }
.post-card-thumb{
	aspect-ratio: 16/9;
	background: linear-gradient(135deg, var(--accent), var(--bg-elevated));
	display: flex; align-items: center; justify-content: center;
	overflow: hidden;
}
.post-card-thumb img{ width: 100%; height: 100%; object-fit: cover; }
.post-card-thumb svg{ width: 40px; height: 40px; opacity: .85; }
.post-card-body{ padding: 16px 18px 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.post-card-title{ font-size: 1.05rem; margin: 0; line-height: 1.35; }
.post-card-excerpt{ color: var(--fg-muted); font-size: 0.88rem; margin: 0; flex: 1; }
.post-card-meta{ color: var(--fg-muted); font-size: 0.78rem; }

.post-back-link{ display: inline-block; margin-bottom: 16px; color: var(--fg-muted); font-size: 0.88rem; }
.post-back-link:hover{ color: var(--fg); }
.single-post-cover{ max-width: var(--max-width); margin: 0 auto; padding: 20px 20px 0; }
.single-post-cover img{ width: 100%; border-radius: 12px; aspect-ratio: 21/9; object-fit: cover; }
.post-meta{ color: var(--fg-muted); font-size: 0.85rem; margin: -8px 0 28px; }
.post-content h2{ font-size: 1.35rem; margin: 36px 0 14px; color: var(--fg); }
.post-content h3{ font-size: 1.1rem; margin: 28px 0 10px; color: var(--fg); }
.post-content p{ color: var(--fg-muted); margin: 0 0 16px; }
.post-content strong{ color: var(--fg); }
.post-content blockquote{
	margin: 20px 0; padding: 14px 18px;
	border-left: 3px solid var(--accent);
	background: var(--bg-elevated);
	border-radius: 0 8px 8px 0;
	color: var(--fg-muted);
}
.post-content blockquote p{ margin: 0; }

.pagination{ display: flex; justify-content: center; gap: 10px; padding: 0 0 48px; }
.pagination a, .pagination span{
	padding: 8px 14px; border-radius: 999px; border: 1px solid var(--border);
	color: var(--fg-muted); font-size: 0.85rem;
}
.pagination .current{ background: var(--fg); color: var(--bg); border-color: var(--fg); }
