/*
Theme Name: Cute Pet Blog
Theme URI: https://gitee.com/haiweiyao/aiword-press
Author: haiweiyao
Author URI: https://gitee.com/haiweiyao
Description: 一款萌系风格的宠物博客主题。暖奶油底色搭配珊瑚粉主色,圆角卡片、爪印点缀、波浪边饰,温暖治愈,适合宠物 / 萌宠 / 生活类博客。轻量、响应式、SEO 友好、无障碍 AA。支持首页模块自定义、3 种分类存档版式、3 种文章详情版式、作者页、关于/联系页模板。
Version: 0.2.0
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Copyright (C) 2026 haiweiyao
Text Domain: cute-pet-blog
Domain Path: /languages
Tags: blog, two-columns, right-sidebar, custom-colors, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, rtl-language-support, block-styles, wide-blocks
*/

/* ===== 设计变量(主色深色版用于文字/按钮以达 WCAG AA) ===== */
:root {
	--cpb-bg: #fff8f3;
	--cpb-surface: #ffffff;
	--cpb-primary: #ff8fa3;        /* 装饰用浅珊瑚(渐变/爪印/扇贝) */
	--cpb-primary-dark: #c4415a;   /* 文字/按钮主色(白底 4.9:1 达 AA) */
	--cpb-primary-darker: #a83648; /* hover 态 */
	--cpb-accent: #8fd3a8;
	--cpb-warm: #ffd166;
	--cpb-text: #5a4a42;
	--cpb-text-soft: #9b8a80;
	--cpb-border: #ffe4d6;
	--cpb-shadow: 0 8px 24px rgba(196, 65, 90, 0.12);
	--cpb-shadow-soft: 0 4px 12px rgba(90, 74, 66, 0.06);
	--cpb-radius: 20px;
	--cpb-radius-sm: 12px;
	--cpb-font-head: "ZCOOL KuaiLe", "Noto Sans SC", system-ui, sans-serif;
	--cpb-font-body: "Noto Sans SC", -apple-system, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;
}

/* ===== 基础重置 ===== */
*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	font-family: var(--cpb-font-body);
	font-size: 16px;
	line-height: 1.75;
	color: var(--cpb-text);
	background-color: var(--cpb-bg);
	background-image:
		radial-gradient(circle at 12% 18%, rgba(255, 143, 163, 0.08) 0, transparent 28%),
		radial-gradient(circle at 88% 82%, rgba(143, 211, 168, 0.08) 0, transparent 28%);
	background-attachment: fixed;
	-webkit-font-smoothing: antialiased;
}

a {
	color: var(--cpb-primary-dark);
	text-decoration: none;
	transition: color 0.2s ease;
}

a:hover {
	color: var(--cpb-primary-darker);
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--cpb-font-head);
	font-weight: 400;
	line-height: 1.3;
	color: var(--cpb-text);
	margin: 0 0 0.6em;
}

h1 { font-size: 2rem; }
h2 { font-size: 1.6rem; }
h3 { font-size: 1.3rem; }

p { margin: 0 0 1.2em; }

img {
	max-width: 100%;
	height: auto;
	display: block;
}

ul, ol { padding-left: 1.4em; }

/* ===== 无障碍:键盘焦点样式 ===== */
a:focus-visible,
button:focus-visible,
.menu-toggle:focus-visible,
.search-submit:focus-visible,
.comment-form .submit:focus-visible,
.read-more:focus-visible,
.page-numbers:focus-visible,
.back-home:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: 3px solid var(--cpb-primary-dark);
	outline-offset: 2px;
}

/* ===== 布局容器 ===== */
.site-header,
.site-main,
.site-footer {
	width: 100%;
	max-width: 1080px;
	margin: 0 auto;
	padding: 0 1.25rem;
}

.site-main {
	display: grid;
	grid-template-columns: 1fr 300px;
	gap: 2rem;
	padding-top: 2rem;
	padding-bottom: 3rem;
}

.no-sidebar .site-main {
	grid-template-columns: 1fr;
}

/* ===== 顶部装饰条 ===== */
.top-strip {
	height: 8px;
	background: linear-gradient(90deg,
		var(--cpb-primary) 0 16.66%,
		var(--cpb-warm) 16.66% 33.33%,
		var(--cpb-accent) 33.33% 50%,
		var(--cpb-primary) 50% 66.66%,
		var(--cpb-warm) 66.66% 83.33%,
		var(--cpb-accent) 83.33% 100%);
}

/* ===== 页头 ===== */
.site-header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-top: 1.5rem;
	padding-bottom: 1.5rem;
}

.site-branding {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.site-branding .paw-logo {
	font-size: 2rem;
	line-height: 1;
}

.site-title {
	margin: 0;
	font-family: var(--cpb-font-head);
	font-size: 1.9rem;
	letter-spacing: 0.5px;
}

.site-title a {
	color: var(--cpb-primary-dark);
}

.site-title a:hover {
	color: var(--cpb-primary-darker);
}

.site-description {
	margin: 0;
	font-size: 0.85rem;
	color: var(--cpb-text-soft);
}

.custom-logo-link img {
	max-height: 56px;
	width: auto;
}

/* ===== 主导航 ===== */
.main-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.main-navigation a {
	display: inline-block;
	padding: 0.5rem 1rem;
	border-radius: 999px;
	font-size: 0.95rem;
	color: var(--cpb-text);
	background: var(--cpb-surface);
	box-shadow: var(--cpb-shadow-soft);
	transition: all 0.2s ease;
}

.main-navigation a:hover,
.main-navigation .current-menu-item > a {
	background: var(--cpb-primary-dark);
	color: #fff;
}

/* ===== 英雄区 ===== */
.hero {
	grid-column: 1 / -1;
	text-align: center;
	background: linear-gradient(135deg, #fff 0%, #fff0f3 100%);
	border-radius: var(--cpb-radius);
	padding: 3rem 2rem;
	margin-bottom: 2rem;
	box-shadow: var(--cpb-shadow);
	position: relative;
	overflow: hidden;
}

.hero::before,
.hero::after {
	content: "🐾";
	position: absolute;
	font-size: 3rem;
	opacity: 0.18;
}

.hero::before { top: 1rem; left: 1.5rem; transform: rotate(-20deg); }
.hero::after { bottom: 1rem; right: 1.5rem; transform: rotate(15deg); }

.hero-pets {
	font-size: 3.5rem;
	margin-bottom: 0.5rem;
	letter-spacing: 0.3em;
}

.hero h1 {
	font-size: 2.4rem;
	margin-bottom: 0.3em;
	color: var(--cpb-primary-dark);
}

.hero p {
	font-size: 1.05rem;
	color: var(--cpb-text-soft);
	margin: 0 auto;
	max-width: 560px;
}

/* ===== 文章卡片 ===== */
.post-card {
	background: var(--cpb-surface);
	border-radius: var(--cpb-radius);
	box-shadow: var(--cpb-shadow-soft);
	overflow: hidden;
	margin-bottom: 1.75rem;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
	border: 1px solid var(--cpb-border);
}

.post-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--cpb-shadow);
}

.post-card .post-thumb {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: linear-gradient(135deg, var(--cpb-primary), var(--cpb-warm));
}

.post-card .post-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.post-card:hover .post-thumb img {
	transform: scale(1.05);
}

.post-card .post-body {
	padding: 1.5rem 1.6rem 1.6rem;
}

.post-card.sticky .post-body::before {
	content: "📌 置顶";
	display: inline-block;
	font-size: 0.78rem;
	color: var(--cpb-primary-dark);
	background: #ffe4d6;
	padding: 0.15rem 0.7rem;
	border-radius: 999px;
	margin-bottom: 0.6rem;
}

.entry-title {
	margin: 0 0 0.5em;
	font-size: 1.45rem;
	line-height: 1.35;
}

.entry-title a {
	color: var(--cpb-text);
}

.entry-title a:hover {
	color: var(--cpb-primary-dark);
}

.entry-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.9rem;
	font-size: 0.82rem;
	color: var(--cpb-text-soft);
	margin-bottom: 0.9em;
}

.entry-meta span::before {
	margin-right: 0.3em;
}

.meta-date::before { content: "🐾"; }
.meta-cat::before { content: "📂"; }
.meta-author::before { content: "✍"; }
.meta-comments::before { content: "💬"; }

.entry-content {
	color: #6b5d54;
}

.entry-content .read-more {
	display: inline-block;
	margin-top: 0.8rem;
	padding: 0.5rem 1.4rem;
	background: var(--cpb-primary-dark);
	color: #fff;
	border-radius: 999px;
	font-size: 0.9rem;
	box-shadow: var(--cpb-shadow-soft);
	transition: all 0.2s ease;
}

.entry-content .read-more:hover {
	background: var(--cpb-primary-darker);
	color: #fff;
	transform: translateX(3px);
}

/* ===== 单篇文章 ===== */
.single-post-wrap,
.page-wrap {
	background: var(--cpb-surface);
	border-radius: var(--cpb-radius);
	box-shadow: var(--cpb-shadow-soft);
	padding: 2.2rem 2.4rem;
	border: 1px solid var(--cpb-border);
}

.single-featured {
	border-radius: var(--cpb-radius);
	overflow: hidden;
	margin-bottom: 1.5rem;
}

.single-featured img { width: 100%; }

.post-tags {
	margin-top: 1.5rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
}

.post-tags .tags-label {
	font-size: 0.85rem;
	color: var(--cpb-text-soft);
	margin-right: 0.3rem;
}

.post-tags a {
	font-size: 0.82rem;
	padding: 0.25rem 0.85rem;
	background: #fff0f3;
	color: var(--cpb-primary-dark);
	border-radius: 999px;
	transition: all 0.2s ease;
}

.post-tags a:hover {
	background: var(--cpb-primary-dark);
	color: #fff;
}

/* 作者卡片 */
.author-card {
	display: flex;
	align-items: center;
	gap: 1rem;
	background: var(--cpb-bg);
	border-radius: var(--cpb-radius);
	padding: 1.2rem 1.4rem;
	margin-top: 2rem;
	border: 1px dashed var(--cpb-border);
}

.author-card .avatar,
.author-card .author-paw {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--cpb-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.6rem;
	flex-shrink: 0;
}

.author-card .author-name {
	font-family: var(--cpb-font-head);
	font-size: 1.1rem;
	margin: 0;
}

.author-card .author-bio {
	font-size: 0.88rem;
	color: var(--cpb-text-soft);
	margin: 0.2em 0 0;
}

/* 文章导航 */
.post-navigation {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-top: 2rem;
}

.post-navigation a {
	display: block;
	background: var(--cpb-surface);
	border: 1px solid var(--cpb-border);
	border-radius: var(--cpb-radius-sm);
	padding: 0.9rem 1.1rem;
	font-size: 0.9rem;
	box-shadow: var(--cpb-shadow-soft);
}

.post-navigation .nav-label {
	display: block;
	font-size: 0.75rem;
	color: var(--cpb-text-soft);
	margin-bottom: 0.2em;
}

.post-navigation .nav-next { text-align: right; }

/* ===== 分页 ===== */
.pagination {
	grid-column: 1 / -1;
	display: flex;
	justify-content: center;
	gap: 0.4rem;
	margin: 1rem 0 0;
	flex-wrap: wrap;
}

.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 0.8rem;
	border-radius: 999px;
	background: var(--cpb-surface);
	color: var(--cpb-text);
	box-shadow: var(--cpb-shadow-soft);
	font-size: 0.9rem;
}

.pagination .page-numbers.current,
.pagination .page-numbers:hover {
	background: var(--cpb-primary-dark);
	color: #fff;
}

/* ===== 侧栏 ===== */
.sidebar {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.widget {
	background: var(--cpb-surface);
	border-radius: var(--cpb-radius);
	box-shadow: var(--cpb-shadow-soft);
	padding: 1.3rem 1.4rem;
	border: 1px solid var(--cpb-border);
}

.widget-title {
	font-size: 1.15rem;
	margin: 0 0 1rem;
	padding-bottom: 0.6rem;
	border-bottom: 2px dashed var(--cpb-border);
	position: relative;
}

.widget-title::before {
	content: "🐾 ";
}

.widget ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.widget li {
	padding: 0.4rem 0;
	border-bottom: 1px dashed #f4e6df;
	font-size: 0.92rem;
}

.widget li:last-child { border-bottom: none; }

.widget a { color: var(--cpb-text); }
.widget a:hover { color: var(--cpb-primary-dark); }

/* 搜索小工具 */
.widget_search .search-form {
	display: flex;
	gap: 0.4rem;
}

.widget_search .search-field {
	flex: 1;
	border-radius: 999px;
	border: 1px solid var(--cpb-border);
	padding: 0.5rem 1rem;
	font-family: var(--cpb-font-body);
	background: var(--cpb-bg);
}

.widget_search .search-submit {
	border-radius: 999px;
	border: none;
	background: var(--cpb-primary-dark);
	color: #fff;
	padding: 0.5rem 1.1rem;
	cursor: pointer;
	font-family: var(--cpb-font-body);
	transition: background 0.2s ease;
}

.widget_search .search-submit:hover { background: var(--cpb-primary-darker); }

/* ===== 评论 ===== */
.comments-area {
	grid-column: 1 / -1;
	background: var(--cpb-surface);
	border-radius: var(--cpb-radius);
	box-shadow: var(--cpb-shadow-soft);
	padding: 1.8rem 2rem;
	margin-top: 1.5rem;
	border: 1px solid var(--cpb-border);
}

.comments-title { font-size: 1.3rem; }

.comment-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.comment-list .children {
	list-style: none;
	padding-left: 2rem;
	margin: 0;
}

.comment-body {
	padding: 1rem 0;
	border-bottom: 1px dashed #f4e6df;
}

.comment-author {
	font-family: var(--cpb-font-head);
}

.comment-author .avatar {
	border-radius: 50%;
	border: 2px solid var(--cpb-primary);
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	width: 100%;
	border-radius: var(--cpb-radius-sm);
	border: 1px solid var(--cpb-border);
	padding: 0.6rem 0.9rem;
	font-family: var(--cpb-font-body);
	background: var(--cpb-bg);
}

.comment-form .submit {
	background: var(--cpb-primary-dark);
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 0.6rem 1.6rem;
	cursor: pointer;
	font-family: var(--cpb-font-body);
	transition: background 0.2s ease;
}

.comment-form .submit:hover { background: var(--cpb-primary-darker); }

/* ===== 404 ===== */
.error-404 {
	grid-column: 1 / -1;
	text-align: center;
	background: var(--cpb-surface);
	border-radius: var(--cpb-radius);
	box-shadow: var(--cpb-shadow);
	padding: 4rem 2rem;
}

.error-404 .pet-sad {
	font-size: 5rem;
	margin-bottom: 0.5rem;
}

.error-404 h1 {
	font-size: 3rem;
	color: var(--cpb-primary-dark);
	margin-bottom: 0.2em;
}

.error-404 .back-home {
	display: inline-block;
	margin-top: 1.2rem;
	padding: 0.7rem 1.8rem;
	background: var(--cpb-primary-dark);
	color: #fff;
	border-radius: 999px;
}

.error-404 .back-home:hover {
	background: var(--cpb-primary-darker);
	color: #fff;
}

/* ===== 页脚(扇贝边) ===== */
.site-footer {
	margin-top: 2rem;
}

.site-footer .footer-widgets {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	padding: 2.5rem 0 1.5rem;
}

.site-footer .widget {
	background: rgba(255, 255, 255, 0.6);
}

.site-info-wrap {
	position: relative;
	margin-top: 2rem;
}

.site-info-wrap::before {
	content: "";
	display: block;
	height: 18px;
	background:
		radial-gradient(circle at 10px -2px, transparent 10px, var(--cpb-primary) 11px) repeat-x;
	background-size: 24px 18px;
	opacity: 0.85;
}

.site-info {
	text-align: center;
	background: var(--cpb-primary-dark);
	color: #fff;
	padding: 1.2rem 1rem;
	font-size: 0.85rem;
}

.site-info a { color: #fff; text-decoration: underline; }

.site-info .paw-row {
	font-size: 1rem;
	letter-spacing: 0.4em;
	margin-bottom: 0.4em;
	opacity: 0.85;
}

/* ===== 屏幕阅读器(无障碍) ===== */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.skip-link {
	position: absolute;
	left: -9999px;
	z-index: 999;
}

.skip-link:focus {
	left: 1rem;
	top: 1rem;
	background: var(--cpb-primary-dark);
	color: #fff;
	padding: 0.5rem 1rem;
	border-radius: 8px;
}

/* ===== 响应式 ===== */
@media (max-width: 900px) {
	.site-main {
		grid-template-columns: 1fr;
	}
	.site-footer .footer-widgets {
		grid-template-columns: 1fr;
	}
	.post-navigation {
		grid-template-columns: 1fr;
	}
	.hero h1 { font-size: 1.8rem; }
}

@media (max-width: 600px) {
	.site-header {
		flex-direction: column;
		align-items: flex-start;
	}
	.main-navigation ul {
		flex-wrap: wrap;
	}
	.single-post-wrap,
	.page-wrap {
		padding: 1.4rem 1.2rem;
	}
	h1 { font-size: 1.6rem; }
	.hero { padding: 2rem 1.2rem; }
	.hero-pets { font-size: 2.5rem; }
}

/* ===== 区块对齐 ===== */
.alignleft { float: left; margin: 0 1.2em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.2em; }
.aligncenter { display: block; margin: 0 auto 1.2em; }
.alignwide { width: calc(100% + 4rem); margin-left: -2rem; margin-right: -2rem; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: 0.82rem; color: var(--cpb-text-soft); text-align: center; }

/* WordPress 标准类(Theme Check 推荐) */
.bypostauthor { display: inherit; }
.gallery-caption { font-size: 0.82rem; color: var(--cpb-text-soft); text-align: center; }
.wp-playlist-caption { color: var(--cpb-text); }
.sticky { display: inherit; }

/* 区块样式:萌系爪印引用 */
.wp-block-quote.is-style-cute-paw {
	border-left: 4px solid var(--cpb-primary-dark);
	background: #fff0f3;
	border-radius: 0 12px 12px 0;
	padding: 0.8em 1.2em;
	position: relative;
}

.wp-block-quote.is-style-cute-paw::before {
	content: "🐾";
	position: absolute;
	top: -0.5em;
	left: 0.6em;
	font-size: 1.2rem;
}

/* ===== 归档 / 搜索页头 ===== */
.archive-header {
	margin-bottom: 1.5rem;
	padding: 1.2rem 1.4rem;
	background: var(--cpb-surface);
	border-radius: var(--cpb-radius);
	box-shadow: var(--cpb-shadow-soft);
	border: 1px solid var(--cpb-border);
}

.archive-title {
	margin: 0;
	font-size: 1.5rem;
	color: var(--cpb-primary-dark);
}

.archive-title span {
	color: var(--cpb-text);
}

.archive-desc {
	margin: 0.5em 0 0;
	font-size: 0.9rem;
	color: var(--cpb-text-soft);
}

.error-404 .widget_search {
	margin: 0 auto 1.2rem;
	max-width: 360px;
}

/* ===== 移动端汉堡菜单 ===== */
.menu-toggle {
	display: none;
	width: 44px;
	height: 44px;
	padding: 0;
	background: var(--cpb-primary-dark);
	border: none;
	border-radius: 999px;
	cursor: pointer;
	box-shadow: var(--cpb-shadow-soft);
	align-items: center;
	justify-content: center;
}

.menu-toggle-box {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.menu-toggle-box span {
	display: block;
	width: 20px;
	height: 2.5px;
	background: #fff;
	border-radius: 2px;
	transition: transform 0.25s ease, opacity 0.25s ease;
}

.main-navigation.toggled .menu-toggle-box span:nth-child(1) {
	transform: translateY(7.5px) rotate(45deg);
}
.main-navigation.toggled .menu-toggle-box span:nth-child(2) {
	opacity: 0;
}
.main-navigation.toggled .menu-toggle-box span:nth-child(3) {
	transform: translateY(-7.5px) rotate(-45deg);
}

@media (max-width: 600px) {
	.menu-toggle {
		display: inline-flex;
	}
	.main-navigation {
		position: relative;
	}
	.main-navigation #primary-menu,
	.main-navigation > div > ul,
	.main-navigation > ul {
		display: none;
		position: absolute;
		top: calc(100% + 0.5rem);
		right: 0;
		min-width: 200px;
		flex-direction: column;
		background: var(--cpb-surface);
		padding: 0.6rem;
		border-radius: var(--cpb-radius-sm);
		box-shadow: var(--cpb-shadow);
		gap: 0.25rem;
		z-index: 99;
	}
	.main-navigation.toggled #primary-menu,
	.main-navigation.toggled > div > ul,
	.main-navigation.toggled > ul {
		display: flex;
	}
	.main-navigation #primary-menu li,
	.main-navigation > ul li {
		width: 100%;
	}
	.main-navigation #primary-menu a,
	.main-navigation > ul a {
		width: 100%;
	}
}

/* =========================================================================
   0.2.0 新增:首页模块 / 存档版式 / 详情版式 / 作者页 / 关于·联系页
   ========================================================================= */

/* ===== 无侧栏内层容器(首页/作者/关于/联系) ===== */
.home-modules,
.author-page,
.page-about,
.page-contact {
	grid-column: 1 / -1;
}

/* ===== 通用:首页区块 ===== */
.home-section {
	margin-bottom: 3rem;
}

.home-section-head {
	text-align: center;
	margin-bottom: 1.8rem;
}

.home-section-title {
	font-size: 1.9rem;
	color: var(--cpb-primary-dark);
	margin: 0 0 0.3em;
}

.home-section-sub {
	color: var(--cpb-text-soft);
	margin: 0;
	font-size: 1rem;
}

.home-section-more {
	text-align: center;
	margin-top: 1.5rem;
}

/* ===== 通用按钮(Hero / 模块 CTA) ===== */
.hero-btn {
	display: inline-block;
	margin-top: 1.2rem;
	padding: 0.75rem 2rem;
	background: var(--cpb-primary-dark);
	color: #fff;
	border-radius: 999px;
	font-size: 1rem;
	box-shadow: var(--cpb-shadow-soft);
	transition: all 0.2s ease;
	border: none;
	cursor: pointer;
	font-family: var(--cpb-font-body);
}

.hero-btn:hover {
	background: var(--cpb-primary-darker);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: var(--cpb-shadow);
}

.hero-btn-light {
	background: #fff;
	color: var(--cpb-primary-dark);
}

.hero-btn-light:hover {
	background: #fff0f3;
	color: var(--cpb-primary-darker);
}

/* ===== 首页:精选分类卡片 ===== */
.category-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

.category-card {
	display: flex;
	flex-direction: column;
	background: var(--cpb-surface);
	border-radius: var(--cpb-radius);
	overflow: hidden;
	box-shadow: var(--cpb-shadow-soft);
	border: 1px solid var(--cpb-border);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
	color: var(--cpb-text);
}

.category-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--cpb-shadow);
	color: var(--cpb-text);
}

.category-card-media {
	aspect-ratio: 16 / 9;
	background: linear-gradient(135deg, var(--cpb-primary), var(--cpb-warm));
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: center;
	justify-content: center;
}

.category-card-emoji {
	font-size: 3rem;
	filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.15));
}

.category-card-body {
	padding: 1.1rem 1.3rem;
	text-align: center;
}

.category-card-name {
	display: block;
	font-family: var(--cpb-font-head);
	font-size: 1.25rem;
	color: var(--cpb-primary-dark);
}

.category-card-count {
	display: block;
	font-size: 0.85rem;
	color: var(--cpb-text-soft);
	margin-top: 0.2em;
}

/* ===== 首页/作者/相关:文章网格 ===== */
.post-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

.post-grid .post-card {
	margin-bottom: 0;
	display: flex;
	flex-direction: column;
}

.post-grid .post-body {
	padding: 1.2rem 1.3rem 1.4rem;
}

.post-grid .entry-title {
	font-size: 1.2rem;
}

/* 无封面时的占位缩略图 */
.post-thumb-empty,
.list-thumb-empty {
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, var(--cpb-primary), var(--cpb-warm));
}

.post-thumb-empty span,
.list-thumb-empty span {
	font-size: 2.5rem;
	opacity: 0.7;
}

/* ===== 首页:关于简介 ===== */
.home-about {
	background: linear-gradient(135deg, #fff 0%, #fff0f3 100%);
	border-radius: var(--cpb-radius);
	padding: 2.5rem 2rem;
	box-shadow: var(--cpb-shadow-soft);
	border: 1px solid var(--cpb-border);
}

.home-about-inner {
	display: flex;
	align-items: center;
	gap: 2rem;
	max-width: 800px;
	margin: 0 auto;
}

.home-about-emoji {
	font-size: 5rem;
	flex-shrink: 0;
}

.home-about-text .home-section-title {
	text-align: left;
	margin-top: 0;
}

/* ===== 首页:CTA ===== */
.home-cta {
	background: var(--cpb-primary-dark);
	border-radius: var(--cpb-radius);
	padding: 3rem 2rem;
	text-align: center;
	box-shadow: var(--cpb-shadow);
}

.home-cta-title {
	color: #fff;
	font-size: 1.8rem;
	margin: 0 0 0.4em;
}

.home-cta-text {
	color: rgba(255, 255, 255, 0.9);
	max-width: 520px;
	margin: 0 auto;
}

/* ===== 存档版式:横向大图列表 ===== */
.archive-list {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.archive-list .list-item {
	display: grid;
	grid-template-columns: 300px 1fr;
	gap: 1.5rem;
	background: var(--cpb-surface);
	border-radius: var(--cpb-radius);
	overflow: hidden;
	box-shadow: var(--cpb-shadow-soft);
	border: 1px solid var(--cpb-border);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.archive-list .list-item:hover {
	transform: translateY(-3px);
	box-shadow: var(--cpb-shadow);
}

.archive-list .list-thumb {
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.archive-list .list-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.archive-list .list-body {
	padding: 1.4rem 1.6rem 1.4rem 0;
	align-self: center;
}

.archive-list .entry-title {
	font-size: 1.5rem;
}

/* ===== 存档版式:杂志头条式 ===== */
.magazine-lead {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 0;
	background: var(--cpb-surface);
	border-radius: var(--cpb-radius);
	overflow: hidden;
	box-shadow: var(--cpb-shadow);
	border: 1px solid var(--cpb-border);
	margin-bottom: 1.8rem;
}

.magazine-lead-thumb {
	overflow: hidden;
}

.magazine-lead-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.magazine-lead-body {
	padding: 2rem;
	align-self: center;
}

.magazine-badge,
.magazine-hero-cat a,
.magazine-hero-cat {
	display: inline-block;
	font-size: 0.78rem;
	color: #fff;
	background: var(--cpb-primary-dark);
	padding: 0.2rem 0.9rem;
	border-radius: 999px;
	margin-bottom: 0.7rem;
}

.magazine-lead-body .entry-title {
	font-size: 1.8rem;
}

.magazine-rest {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

.magazine-item {
	background: var(--cpb-surface);
	border-radius: var(--cpb-radius);
	overflow: hidden;
	box-shadow: var(--cpb-shadow-soft);
	border: 1px solid var(--cpb-border);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.magazine-item:hover {
	transform: translateY(-3px);
	box-shadow: var(--cpb-shadow);
}

.magazine-item-thumb {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.magazine-item-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.magazine-item-body {
	padding: 1rem 1.2rem 1.2rem;
}

.magazine-item-body .entry-title {
	font-size: 1.1rem;
}

.archive-count {
	margin: 0.5em 0 0;
	font-size: 0.9rem;
	color: var(--cpb-text-soft);
}

/* ===== 详情版式:通用 ===== */
.entry-reading-time {
	font-size: 0.85rem;
	color: var(--cpb-text-soft);
	margin: 0.3em 0 0;
}

/* 详情版式:宽屏沉浸 */
.single-full .single-wide {
	max-width: 760px;
	margin: 0 auto;
}

.entry-header-wide {
	text-align: center;
	margin-bottom: 1.5rem;
}

.entry-header-wide .entry-meta {
	justify-content: center;
}

.entry-header-wide .entry-title {
	font-size: 2.2rem;
}

.single-featured-wide {
	margin-bottom: 2rem;
}

.entry-content-wide {
	font-size: 1.08rem;
	line-height: 1.9;
}

/* 详情版式:杂志大图 */
.single-magazine {
	padding: 0;
	overflow: hidden;
}

.magazine-hero {
	min-height: 420px;
	display: flex;
	align-items: flex-end;
	background: linear-gradient(135deg, var(--cpb-primary), var(--cpb-warm));
	background-size: cover;
	background-position: center;
	padding: 2.5rem;
}

.magazine-hero-inner {
	max-width: 760px;
	margin: 0 auto;
	width: 100%;
}

.magazine-hero .entry-title {
	color: #fff;
	font-size: 2.4rem;
	margin: 0 0 0.5rem;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}

.magazine-hero-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 1.2rem;
	color: rgba(255, 255, 255, 0.95);
	font-size: 0.9rem;
}

.magazine-content-wrap {
	max-width: 760px;
	margin: 0 auto;
	padding: 2.5rem;
}

/* ===== 详情页:作者卡片大号 + 头像 ===== */
.author-card .author-avatar img,
.author-card .avatar {
	border-radius: 50%;
	border: 2px solid var(--cpb-primary);
}

.author-card-large {
	gap: 1.3rem;
}

.author-card-large .author-avatar img {
	width: 96px;
	height: 96px;
}

.author-web {
	display: inline-block;
	margin-top: 0.4em;
	font-size: 0.85rem;
}

/* ===== 详情页:相关文章 ===== */
.related-posts {
	margin-top: 2.5rem;
}

.related-title {
	font-size: 1.4rem;
	color: var(--cpb-primary-dark);
	margin-bottom: 1.2rem;
}

/* ===== 作者页 ===== */
.author-hero {
	text-align: center;
	background: linear-gradient(135deg, #fff 0%, #fff0f3 100%);
	border-radius: var(--cpb-radius);
	padding: 2.5rem 2rem;
	margin-bottom: 2rem;
	box-shadow: var(--cpb-shadow-soft);
	border: 1px solid var(--cpb-border);
}

.author-hero-avatar img {
	border-radius: 50%;
	border: 4px solid #fff;
	box-shadow: var(--cpb-shadow-soft);
	margin: 0 auto 1rem;
}

.author-hero-name {
	font-size: 1.8rem;
	color: var(--cpb-primary-dark);
	margin: 0 0 0.4em;
}

.author-hero-bio {
	max-width: 560px;
	margin: 0 auto 1.2rem;
	color: var(--cpb-text-soft);
}

.author-hero-stats {
	display: flex;
	justify-content: center;
	gap: 1.5rem;
	flex-wrap: wrap;
}

.author-stat {
	background: var(--cpb-surface);
	border-radius: var(--cpb-radius-sm);
	padding: 0.6rem 1.4rem;
	box-shadow: var(--cpb-shadow-soft);
	font-size: 0.9rem;
	color: var(--cpb-text-soft);
}

.author-stat strong {
	display: block;
	font-family: var(--cpb-font-head);
	font-size: 1.4rem;
	color: var(--cpb-primary-dark);
}

.author-posts-title {
	font-size: 1.4rem;
	color: var(--cpb-primary-dark);
	margin-bottom: 1.2rem;
}

/* ===== 关于我们页 ===== */
.about-header,
.contact-header {
	text-align: center;
	margin-bottom: 1.5rem;
}

.about-header-emoji,
.contact-header-emoji {
	font-size: 3rem;
	margin-bottom: 0.3rem;
}

.about-featured {
	margin-bottom: 2rem;
}

.about-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin: 2rem 0;
}

.about-stat {
	text-align: center;
	background: var(--cpb-bg);
	border-radius: var(--cpb-radius);
	padding: 1.5rem 1rem;
	border: 1px dashed var(--cpb-border);
}

.about-stat-num {
	display: block;
	font-family: var(--cpb-font-head);
	font-size: 2.2rem;
	color: var(--cpb-primary-dark);
}

.about-stat-label {
	display: block;
	font-size: 0.9rem;
	color: var(--cpb-text-soft);
	margin-top: 0.2em;
}

/* ===== 联系我们页 ===== */
.contact-grid {
	display: grid;
	grid-template-columns: 1fr 1.3fr;
	gap: 2rem;
	margin-top: 1.5rem;
}

.contact-info {
	background: var(--cpb-bg);
	border-radius: var(--cpb-radius);
	padding: 1.6rem 1.8rem;
	border: 1px dashed var(--cpb-border);
}

.contact-info h2,
.contact-form-wrap h2 {
	font-size: 1.3rem;
	margin-top: 0;
}

.contact-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.contact-list li {
	padding: 0.6rem 0;
	border-bottom: 1px dashed #f4e6df;
	font-size: 0.95rem;
}

.contact-list li:last-child {
	border-bottom: none;
}

.contact-icon {
	margin-right: 0.4em;
}

.contact-form-tip {
	font-size: 0.82rem;
	color: var(--cpb-text-soft);
	background: #fff8f3;
	border-radius: var(--cpb-radius-sm);
	padding: 0.6rem 0.9rem;
}

.contact-form label {
	display: block;
	font-size: 0.9rem;
	margin-bottom: 0.3em;
	color: var(--cpb-text);
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
	width: 100%;
	border-radius: var(--cpb-radius-sm);
	border: 1px solid var(--cpb-border);
	padding: 0.6rem 0.9rem;
	font-family: var(--cpb-font-body);
	background: var(--cpb-bg);
	margin-bottom: 0.3rem;
}

.contact-map {
	margin-top: 2rem;
	border-radius: var(--cpb-radius);
	overflow: hidden;
	box-shadow: var(--cpb-shadow-soft);
}

.contact-map iframe {
	width: 100%;
	min-height: 320px;
	border: 0;
	display: block;
}

.contact-notice {
	border-radius: var(--cpb-radius-sm);
	padding: 0.8rem 1.1rem;
	margin-bottom: 1.2rem;
	font-size: 0.92rem;
}

.contact-notice-ok {
	background: #eafaf0;
	color: #2e7d4f;
	border: 1px solid #b9e6cb;
}

.contact-notice-err {
	background: #fff0f3;
	color: var(--cpb-primary-darker);
	border: 1px solid var(--cpb-border);
}

/* ===== 响应式:新增模块 ===== */
@media (max-width: 900px) {
	.category-cards,
	.post-grid,
	.magazine-rest,
	.about-stats {
		grid-template-columns: repeat(2, 1fr);
	}
	.magazine-lead {
		grid-template-columns: 1fr;
	}
	.magazine-lead-thumb {
		aspect-ratio: 16 / 9;
	}
	.archive-list .list-item {
		grid-template-columns: 200px 1fr;
	}
	.contact-grid {
		grid-template-columns: 1fr;
	}
	.home-about-inner {
		flex-direction: column;
		text-align: center;
	}
	.home-about-text .home-section-title {
		text-align: center;
	}
}

@media (max-width: 600px) {
	.category-cards,
	.post-grid,
	.magazine-rest,
	.about-stats {
		grid-template-columns: 1fr;
	}
	.archive-list .list-item {
		grid-template-columns: 1fr;
	}
	.archive-list .list-thumb {
		aspect-ratio: 16 / 9;
	}
	.archive-list .list-body {
		padding: 0 1.3rem 1.3rem;
	}
	.magazine-hero {
		min-height: 300px;
		padding: 1.5rem;
	}
	.magazine-hero .entry-title {
		font-size: 1.7rem;
	}
	.magazine-content-wrap {
		padding: 1.5rem 1.2rem;
	}
	.home-section-title {
		font-size: 1.5rem;
	}
	.author-hero-stats {
		gap: 0.8rem;
	}
}

/* ===== 光标跟随爪印效果 ===== */
.cpb-cursor-layer {
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 9998;
	overflow: hidden;
}

.cpb-cursor-pet {
	position: fixed;
	transform: translate(-50%, -50%) rotate(var(--cpb-rotate, 0deg));
	font-size: 1.3rem;
	line-height: 1;
	user-select: none;
	will-change: transform, opacity;
	animation: cpb-pet-fade 0.9s ease-out forwards;
}

@keyframes cpb-pet-fade {
	0% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(0.4) rotate(var(--cpb-rotate, 0deg));
	}
	25% {
		opacity: 0.9;
		transform: translate(-50%, -60%) scale(1) rotate(var(--cpb-rotate, 0deg));
	}
	100% {
		opacity: 0;
		transform: translate(-50%, -120%) scale(0.85) rotate(var(--cpb-rotate, 0deg));
	}
}

@media (prefers-reduced-motion: reduce) {
	.cpb-cursor-layer {
		display: none;
	}
}
