/*
Theme Name: 育青环保 Yuqing Chalk
Theme URI: https://example.com/themes/yuqing-chalk
Author: 班主任老周
Author URI: https://example.com/laozhou
Description: 黑板报粉笔风中文企业主题:墨绿黑板底、粉笔白正文、彩粉笔画重点;报头、花边、值日表、光荣榜一样不少,首页就是一期出好的黑板报。为虚构演示公司「新乡育青环保设备有限公司」备课,含教具陈列(product)自定义内容类型、演示兜底与询价直达。
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: yuqing-chalk
Tags: two-columns, custom-menu, custom-logo, featured-images, translation-ready
*/

/* ==================================================================
   〇、板书前的准备:变量与底色
   ================================================================== */
:root {
	--c-board: #22332b;        /* 墨绿黑板底 */
	--c-board-deep: #1b2a23;   /* 黑板边框深一档 */
	--c-board-soft: #293d31;
	--c-chalk: #f2f0e6;        /* 粉笔白 */
	--c-chalk-dim: #c9d1c6;    /* 次级粉笔 */
	--c-yellow: #e8d48b;       /* 粉笔黄 */
	--c-pink: #dba8a8;         /* 粉笔粉 */
	--c-cyan: #a8c8bc;         /* 粉笔青 */
	--c-line: rgba(242, 240, 230, .32);
	--c-line-soft: rgba(242, 240, 230, .16);
	--f-kai: "Kaiti SC", "STKaiti", "KaiTi", "楷体", serif;
	--f-body: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", -apple-system, sans-serif;
	--r-hand: 255px 15px 225px 15px / 15px 225px 15px 255px;
	--r-card: 10px 14px 9px 15px / 15px 9px 14px 10px;
	--shadow-chalk: 0 0 1px rgba(242, 240, 230, .4);
}

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

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

body {
	margin: 0;
	font-family: var(--f-body);
	font-size: 17px;
	line-height: 1.85;
	color: var(--c-chalk);
	background-color: var(--c-board);
	/* 粉笔灰擦痕:大半径淡白斑块,像值日生没擦干净 */
	background-image:
		radial-gradient(1100px 520px at 18% 10%, rgba(242, 240, 230, .05), transparent 65%),
		radial-gradient(900px 480px at 84% 36%, rgba(242, 240, 230, .038), transparent 65%),
		radial-gradient(1000px 620px at 42% 82%, rgba(242, 240, 230, .03), transparent 65%),
		radial-gradient(520px 300px at 68% 6%, rgba(242, 240, 230, .04), transparent 70%);
	overflow-wrap: break-word;
}

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

a {
	color: var(--c-chalk);
	text-decoration: underline;
	text-decoration-style: dotted;
	text-decoration-color: var(--c-line);
	text-underline-offset: 4px;
	transition: color .2s ease, text-decoration-color .2s ease;
}

a:hover,
a:focus {
	color: var(--c-yellow);
	text-decoration-color: var(--c-yellow);
}

::selection {
	background: var(--c-yellow);
	color: var(--c-board);
}

:focus-visible {
	outline: 2px dashed var(--c-yellow);
	outline-offset: 3px;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--f-kai);
	font-weight: 700;
	line-height: 1.35;
	margin: 0 0 .5em;
	text-shadow: var(--shadow-chalk);
}

p {
	margin: 0 0 1em;
}

.kai {
	font-family: var(--f-kai);
	text-shadow: var(--shadow-chalk);
}

/* 粉笔空心字:限大标题使用 */
.hollow {
	color: transparent;
	-webkit-text-stroke: 1.6px var(--c-chalk);
	text-shadow: none;
}

@supports not (-webkit-text-stroke: 1px #fff) {
	.hollow {
		color: var(--c-chalk);
	}
}

.muted {
	color: var(--c-chalk-dim);
}

.wrap {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 22px;
}

.wrap-narrow {
	max-width: 780px;
	margin: 0 auto;
	padding: 0 22px;
}

.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
}

.screen-reader-text:focus {
	clip-path: none;
	height: auto;
	width: auto;
	background: var(--c-board-deep);
	color: var(--c-yellow);
	padding: 12px 20px;
	z-index: 100;
	left: 8px;
	top: 8px;
}

.skip-link {
	position: absolute;
}

/* ==================================================================
   一、粉笔部件:按钮、粉笔线、擦痕重写
   ================================================================== */
.btn {
	display: inline-block;
	padding: .55em 1.5em;
	font-family: var(--f-kai);
	font-size: 1.02rem;
	letter-spacing: .12em;
	color: var(--c-chalk);
	background: transparent;
	border: 2px solid var(--c-chalk);
	border-radius: var(--r-hand);
	text-decoration: none;
	text-shadow: var(--shadow-chalk);
	cursor: pointer;
	transition: background-color .25s ease, color .25s ease, transform .2s ease;
}

.btn:hover,
.btn:focus {
	background: var(--c-chalk);
	color: var(--c-board);
	text-shadow: none;
	transform: rotate(-.6deg);
}

.btn-yellow {
	color: var(--c-yellow);
	border-color: var(--c-yellow);
}

.btn-yellow:hover,
.btn-yellow:focus {
	background: var(--c-yellow);
	color: var(--c-board);
}

.btn-sm {
	padding: .35em 1em;
	font-size: .95rem;
}

/* 粉笔断线:一截一截,像手劲不匀 */
.chalk-hr {
	border: 0;
	height: 4px;
	margin: 2.2em auto;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='4' viewBox='0 0 140 4'%3E%3Cpath d='M1 2h13m6 0h8m5 0h17m4 0h7m6 0h21m5 0h11m4 0h9m6 0h13' fill='none' stroke='%23f2f0e6' stroke-opacity='.45' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: repeat-x;
	background-position: center;
}

/* 擦掉重写:一块更亮的板面 + 新字 */
.erased {
	position: relative;
	display: inline-block;
	padding: .15em .55em;
	border-radius: 10px 16px 12px 18px / 18px 12px 16px 10px;
	background: radial-gradient(closest-side, rgba(242, 240, 230, .14), rgba(242, 240, 230, .055) 72%, rgba(242, 240, 230, 0));
}

.erased del {
	color: rgba(242, 240, 230, .48);
	text-decoration-line: line-through;
	text-decoration-thickness: 2px;
	text-decoration-color: rgba(242, 240, 230, .62);
}

.erased ins {
	text-decoration: none;
	color: var(--c-chalk);
	font-family: var(--f-kai);
	font-weight: 700;
	font-size: 1.12em;
	display: inline-block;
	transform: rotate(-1.6deg);
	text-shadow: var(--shadow-chalk);
}

/* ==================================================================
   二、黑板报花边:每一栏一种,这是板报的精髓
   ================================================================== */
.lace {
	position: relative;
	padding-top: 34px;
}

.lace::before {
	content: "";
	position: absolute;
	top: 0;
	left: 22px;
	right: 22px;
	height: 14px;
	background-repeat: repeat-x;
	background-position: left center;
	pointer-events: none;
}

/* 连弧 + 黄点 */
.lace-scallop::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='13' viewBox='0 0 26 13'%3E%3Cpath d='M1 12a12 8 0 0 1 24 0' fill='none' stroke='%23f2f0e6' stroke-opacity='.5' stroke-width='1.4' stroke-linecap='round'/%3E%3Ccircle cx='13' cy='3' r='1.4' fill='%23e8d48b' fill-opacity='.85'/%3E%3C/svg%3E");
}

/* 双波浪:白线上、粉线下 */
.lace-wave::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='13' viewBox='0 0 44 13'%3E%3Cpath d='M0 5q5.5-7 11 0t11 0 11 0 11 0' fill='none' stroke='%23f2f0e6' stroke-opacity='.5' stroke-width='1.3' stroke-linecap='round'/%3E%3Cpath d='M0 9q5.5-5 11 0t11 0 11 0 11 0' fill='none' stroke='%23dba8a8' stroke-opacity='.55' stroke-width='1'/%3E%3C/svg%3E");
}

/* 星星 + 青色小菱形 */
.lace-star::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='14' viewBox='0 0 40 14'%3E%3Cpath d='M10 1l2 4.6 4.6 1.4-4.6 1.4-2 4.6-2-4.6L3.4 7 8 5.6z' fill='none' stroke='%23f2f0e6' stroke-opacity='.55' stroke-width='1' stroke-linejoin='round'/%3E%3Cpath d='M30 4.5l1.8 2.5-1.8 2.5-1.8-2.5z' fill='%23a8c8bc' fill-opacity='.8'/%3E%3C/svg%3E");
}

/* 四瓣小花 + 虚线 */
.lace-flower::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='14' viewBox='0 0 40 14'%3E%3Cg fill='none' stroke='%23f2f0e6' stroke-opacity='.5' stroke-width='1'%3E%3Ccircle cx='20' cy='4' r='2.4'/%3E%3Ccircle cx='20' cy='10' r='2.4'/%3E%3Ccircle cx='16.6' cy='7' r='2.4'/%3E%3Ccircle cx='23.4' cy='7' r='2.4'/%3E%3C/g%3E%3Ccircle cx='20' cy='7' r='1.2' fill='%23e8d48b' fill-opacity='.9'/%3E%3Cpath d='M0 7h9M31 7h9' stroke='%23f2f0e6' stroke-opacity='.35' stroke-width='1' stroke-dasharray='4 3'/%3E%3C/svg%3E");
}

/* 麦穗 */
.lace-wheat::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='14' viewBox='0 0 24 14'%3E%3Cg fill='none' stroke='%23f2f0e6' stroke-opacity='.5' stroke-width='1.1' stroke-linecap='round'%3E%3Cpath d='M12 13V3'/%3E%3Cpath d='M12 5Q8 5 7 1'/%3E%3Cpath d='M12 5q4 0 5-4'/%3E%3Cpath d='M12 8Q8.5 8 7.5 4.5'/%3E%3Cpath d='M12 8q3.5 0 4.5-3.5'/%3E%3Cpath d='M12 11q-3 0-4-3'/%3E%3Cpath d='M12 11q3 0 4-3'/%3E%3C/g%3E%3Ccircle cx='12' cy='1.6' r='1' fill='%23e8d48b' fill-opacity='.8'/%3E%3C/svg%3E");
}

/* 点划相间(纯 CSS) */
.lace-dotdash::before {
	background-image:
		repeating-linear-gradient(90deg, var(--c-line) 0 14px, transparent 14px 24px),
		radial-gradient(circle 1.7px at 19px 50%, rgba(219, 168, 168, .85) 98%, transparent);
	background-size: auto 2px, 24px 100%;
	background-position: 0 50%, 0 0;
	background-repeat: repeat-x;
}

/* ==================================================================
   三、页眉:校牌与课程表
   ================================================================== */
.site-head {
	position: sticky;
	top: 0;
	z-index: 60;
	background: var(--c-board-deep);
	border-bottom: 1.5px solid var(--c-line-soft);
	transition: box-shadow .25s ease, border-color .25s ease;
}

.site-head.is-scrolled {
	box-shadow: 0 8px 22px rgba(10, 18, 14, .45);
	border-color: var(--c-line);
}

.head-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: 76px;
	position: relative;
}

.brand-link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
}

.brand-link:hover,
.brand-link:focus {
	color: var(--c-chalk);
}

.brand-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	font-family: var(--f-kai);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--c-yellow);
	border: 2px solid var(--c-yellow);
	border-radius: 12px 6px 13px 7px / 7px 13px 6px 12px;
	transform: rotate(-3deg);
	text-shadow: var(--shadow-chalk);
}

.brand-text {
	display: flex;
	flex-direction: column;
	line-height: 1.3;
}

.brand-name {
	font-family: var(--f-kai);
	font-size: 1.32rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-shadow: var(--shadow-chalk);
}

.brand-sub {
	font-size: .8rem;
	color: var(--c-chalk-dim);
	letter-spacing: .05em;
}

.custom-logo {
	max-height: 52px;
	width: auto;
}

.site-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 26px;
}

.site-nav a {
	display: inline-block;
	padding: .4em 0;
	font-family: var(--f-kai);
	font-size: 1.05rem;
	letter-spacing: .08em;
	text-decoration: none;
	border-bottom: 2px dashed transparent;
	text-shadow: var(--shadow-chalk);
}

.site-nav a:hover,
.site-nav a:focus {
	border-bottom-color: var(--c-chalk);
	color: var(--c-chalk);
}

.site-nav .current-menu-item > a,
.site-nav .current_page_item > a {
	color: var(--c-yellow);
	border-bottom-color: var(--c-yellow);
}

.site-nav .sub-menu {
	display: none;
}

.nav-toggle {
	display: none;
	background: transparent;
	border: 2px solid var(--c-chalk);
	border-radius: 8px 5px 9px 6px / 6px 9px 5px 8px;
	padding: 9px 10px;
	cursor: pointer;
}

.nav-toggle-bars {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.nav-toggle-bars i {
	display: block;
	width: 22px;
	height: 2px;
	background: var(--c-chalk);
	border-radius: 2px;
	transition: transform .25s ease, opacity .25s ease;
}

.nav-open .nav-toggle-bars i:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.nav-open .nav-toggle-bars i:nth-child(2) {
	opacity: 0;
}

.nav-open .nav-toggle-bars i:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* ==================================================================
   四、首页黑板报:报头、板图、各栏
   ================================================================== */
.hero {
	padding: 44px 0 64px;
}

.bao-tou {
	margin-left: auto;
	width: fit-content;
	max-width: 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 18px;
	padding: 10px 20px;
	border: 1.5px solid var(--c-line);
	border-radius: 4px 10px 5px 12px / 12px 5px 10px 4px;
	box-shadow: 0 0 0 4px var(--c-board), 0 0 0 5.5px var(--c-line-soft);
	font-size: .88rem;
	color: var(--c-chalk-dim);
	margin-bottom: 40px;
}

.bao-tou .bt-title {
	font-size: 1.15rem;
	color: var(--c-chalk);
	letter-spacing: .18em;
}

.bao-tou .bt-issue {
	color: var(--c-yellow);
	font-family: var(--f-kai);
	font-size: 1rem;
}

.hero-grid {
	display: grid;
	grid-template-columns: 1.08fr .92fr;
	gap: 56px;
	align-items: center;
}

.hero-kicker {
	font-size: 1.02rem;
	color: var(--c-chalk-dim);
	letter-spacing: .14em;
	margin-bottom: .8em;
}

.hero-title {
	font-size: clamp(2rem, 4.6vw, 3.3rem);
	line-height: 1.28;
	letter-spacing: .04em;
	margin-bottom: .55em;
}

.hero-title .hollow {
	-webkit-text-stroke-width: 2px;
}

.hero-lead {
	font-size: 1.06rem;
	color: var(--c-chalk-dim);
	max-width: 34em;
}

.chalk-list {
	list-style: none;
	margin: 0 0 1.6em;
	padding: 0;
}

.chalk-list li {
	padding: .32em 0;
	border-bottom: 1.5px dashed var(--c-line-soft);
}

.chalk-list li:last-child {
	border-bottom: 0;
}

.chalk-list .cn {
	color: var(--c-yellow);
	font-weight: 700;
	font-size: 1.12em;
	margin-right: .2em;
}

.hero-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-bottom: 1.4em;
}

.hero-note {
	font-size: .98rem;
	color: var(--c-chalk-dim);
}

.hero-art {
	border: 2px dashed var(--c-line-soft);
	border-radius: var(--r-card);
	padding: 18px 14px 8px;
	transform: rotate(.8deg);
}

.chalk-svg {
	display: block;
	width: 100%;
	height: auto;
}

.chalk-svg .ln {
	fill: none;
	stroke: var(--c-chalk);
	stroke-width: 2.4;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.chalk-svg .ln-thin {
	stroke-width: 1.5;
}

.chalk-svg .yel {
	stroke: var(--c-yellow);
}

.chalk-svg .pk {
	stroke: var(--c-pink);
}

.chalk-svg .cy {
	stroke: var(--c-cyan);
}

.chalk-svg .fb1 {
	stroke-dasharray: 64 3 38 5 90 4 46;
}

.chalk-svg .fb2 {
	stroke-dasharray: 30 4 52 3 70 5;
}

.chalk-svg .gnd {
	stroke-dasharray: 16 9 26 7 12 10;
	opacity: .55;
}

.chalk-svg .sep {
	stroke-dasharray: 10 6;
	opacity: .5;
}

.chalk-svg .o8 {
	opacity: .85;
}

.chalk-svg .o5 {
	opacity: .5;
}

.chalk-svg .dot {
	fill: var(--c-cyan);
	stroke: none;
}

.chalk-svg .dot-y {
	fill: var(--c-yellow);
	stroke: none;
}

.chalk-svg text {
	font-family: var(--f-kai);
	fill: var(--c-yellow);
	font-size: 16px;
}

.art-cap {
	text-align: center;
	font-size: .85rem;
	color: var(--c-chalk-dim);
	margin: 10px 0 6px;
}

/* ---- 各栏通用 ---- */
.sec {
	padding: 64px 0;
}

.sec-head {
	max-width: 720px;
	margin-bottom: 40px;
}

.sec-no {
	display: inline-block;
	font-size: .92rem;
	letter-spacing: .3em;
	color: var(--c-chalk-dim);
	border: 1.5px dashed var(--c-line);
	border-radius: 3px 8px 4px 9px / 9px 4px 8px 3px;
	padding: .1em .8em .1em 1.05em;
	margin-bottom: 14px;
	transform: rotate(-1.2deg);
}

.sec-head h2 {
	font-size: clamp(1.55rem, 3vw, 2.15rem);
	letter-spacing: .05em;
	margin-bottom: .35em;
}

.sec-head h2 span {
	display: inline-block;
	padding-bottom: 12px;
	background-repeat: no-repeat;
	background-position: left bottom;
	background-size: 100% 9px;
}

.ul-yellow span {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='9' viewBox='0 0 140 9'%3E%3Cpath d='M2 3.5q35-3 68-1t68 1' fill='none' stroke='%23e8d48b' stroke-width='2.2' stroke-linecap='round' stroke-opacity='.9'/%3E%3Cpath d='M6 7q45 2 128-1' fill='none' stroke='%23e8d48b' stroke-width='1.1' stroke-linecap='round' stroke-opacity='.55'/%3E%3C/svg%3E");
}

.ul-pink span {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='9' viewBox='0 0 140 9'%3E%3Cpath d='M2 3.5q35-3 68-1t68 1' fill='none' stroke='%23dba8a8' stroke-width='2.2' stroke-linecap='round' stroke-opacity='.9'/%3E%3Cpath d='M6 7q45 2 128-1' fill='none' stroke='%23dba8a8' stroke-width='1.1' stroke-linecap='round' stroke-opacity='.55'/%3E%3C/svg%3E");
}

.ul-cyan span {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='9' viewBox='0 0 140 9'%3E%3Cpath d='M2 3.5q35-3 68-1t68 1' fill='none' stroke='%23a8c8bc' stroke-width='2.2' stroke-linecap='round' stroke-opacity='.9'/%3E%3Cpath d='M6 7q45 2 128-1' fill='none' stroke='%23a8c8bc' stroke-width='1.1' stroke-linecap='round' stroke-opacity='.55'/%3E%3C/svg%3E");
}

.sec-head p {
	color: var(--c-chalk-dim);
	margin: 0;
}

/* ---- 班级情况(数字) ---- */
.sec-stats {
	padding-top: 40px;
	padding-bottom: 26px;
}

.stats-title {
	font-size: 1.05rem;
	color: var(--c-chalk-dim);
	margin-bottom: 20px;
	letter-spacing: .1em;
}

.stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 26px;
}

.stat {
	border: 1.5px solid var(--c-line-soft);
	border-radius: var(--r-card);
	padding: 20px 22px 16px;
}

.stat b {
	display: block;
	font-size: clamp(2.1rem, 4vw, 2.9rem);
	line-height: 1.1;
	font-weight: 700;
	letter-spacing: .02em;
	text-shadow: var(--shadow-chalk);
}

.stat b i {
	font-style: normal;
	font-size: .5em;
	margin-left: .15em;
}

.stat span {
	display: block;
	margin-top: 8px;
	font-size: .9rem;
	color: var(--c-chalk-dim);
}

.c-yellow { color: var(--c-yellow); }
.c-pink   { color: var(--c-pink); }
.c-cyan   { color: var(--c-cyan); }
.c-chalk  { color: var(--c-chalk); }

/* ---- 教具陈列(产品卡) ---- */
.prod-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
}

.prod-card {
	position: relative;
	border: 1.8px solid var(--c-line);
	border-radius: var(--r-card);
	padding: 26px 24px 22px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: transform .25s ease, border-color .25s ease;
}

.prod-card:hover {
	transform: translateY(-4px) rotate(-.4deg);
	border-color: var(--c-chalk);
}

.door-plate {
	align-self: flex-start;
	font-family: var(--f-kai);
	font-size: 1.1rem;
	font-weight: 700;
	letter-spacing: .14em;
	color: var(--c-yellow);
	border: 2px solid var(--c-yellow);
	border-radius: 6px 12px 7px 13px / 13px 7px 12px 6px;
	padding: .12em .75em;
	transform: rotate(-2deg);
	text-shadow: var(--shadow-chalk);
}

.prod-name {
	font-size: 1.3rem;
	margin: 4px 0 0;
}

.prod-name a {
	text-decoration: none;
}

.prod-specs {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: .95rem;
	color: var(--c-chalk-dim);
}

.prod-specs li {
	padding: .3em 0;
	border-bottom: 1.5px dashed var(--c-line-soft);
}

.prod-specs li:last-child {
	border-bottom: 0;
}

.prod-line {
	font-family: var(--f-kai);
	color: var(--c-chalk);
	margin: 2px 0 0;
	text-shadow: var(--shadow-chalk);
}

.prod-excerpt {
	color: var(--c-chalk-dim);
	font-size: .96rem;
	margin: 0;
}

.prod-more {
	margin-top: auto;
	align-self: flex-start;
	font-family: var(--f-kai);
	letter-spacing: .1em;
	text-decoration-style: dashed;
}

/* ---- 课堂笔记(四步) ---- */
.notes-grid {
	list-style: none;
	margin: 0 0 44px;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 26px;
	counter-reset: none;
}

.note-step {
	border-top: 2px solid var(--c-line);
	padding-top: 18px;
}

.note-step .num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 2px solid var(--c-line);
	border-radius: 50% 46% 52% 48% / 48% 52% 46% 50%;
	font-size: 1.3rem;
	color: var(--c-yellow);
	margin-bottom: 12px;
	text-shadow: var(--shadow-chalk);
}

.note-step h3 {
	font-size: 1.16rem;
	margin-bottom: .4em;
}

.note-step p {
	font-size: .95rem;
	color: var(--c-chalk-dim);
	margin: 0;
}

/* 温馨提示框:圆角粉笔框 + 粉笔角花 */
.tips-box {
	position: relative;
	border: 2px solid rgba(168, 200, 188, .7);
	border-radius: 22px 18px 24px 16px / 16px 24px 18px 22px;
	padding: 30px 40px 24px;
	max-width: 860px;
	margin: 0 auto 34px;
}

.tips-box .cf {
	position: absolute;
	font-size: 1.05rem;
	line-height: 1;
	background: var(--c-board);
	padding: 0 .25em;
}

.cf-tl { top: -0.6em; left: 22px; color: var(--c-pink); }
.cf-tr { top: -0.6em; right: 22px; color: var(--c-yellow); }
.cf-bl { bottom: -0.6em; left: 22px; color: var(--c-yellow); }
.cf-br { bottom: -0.6em; right: 22px; color: var(--c-pink); }

.tips-title {
	font-size: 1.2rem;
	color: var(--c-cyan);
	margin-bottom: .5em;
	letter-spacing: .08em;
}

.tips-quote {
	font-family: var(--f-kai);
	font-size: 1.18rem;
	line-height: 2;
	margin: 0;
	text-shadow: var(--shadow-chalk);
}

.erased-note {
	text-align: center;
	color: var(--c-chalk-dim);
	margin: 0;
}

/* ---- 光荣榜 ---- */
.honor-list {
	display: grid;
	gap: 26px;
}

.honor-item {
	border: 1.5px solid var(--c-line-soft);
	border-left: 3px solid var(--c-pink);
	border-radius: var(--r-card);
	padding: 24px 30px 18px;
}

.honor-head {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin-bottom: 10px;
}

.honor-flower {
	color: var(--c-pink);
	font-size: 1.4rem;
	line-height: 1;
}

.honor-item h3 {
	font-size: 1.22rem;
	margin: 0;
}

.honor-rows {
	margin: 0;
	display: grid;
	gap: 6px;
}

.honor-rows > div {
	display: flex;
	gap: 14px;
	align-items: baseline;
}

.honor-rows dt {
	flex: 0 0 auto;
	font-family: var(--f-kai);
	font-weight: 700;
	color: var(--c-yellow);
	letter-spacing: .2em;
	text-shadow: var(--shadow-chalk);
}

.honor-rows dd {
	margin: 0;
	color: var(--c-chalk-dim);
	font-size: .98rem;
}

.stars {
	color: var(--c-yellow);
	letter-spacing: .18em;
	margin-right: .5em;
	text-shadow: var(--shadow-chalk);
}

/* ---- 板报栏(动态) ---- */
.news-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
}

.news-card {
	border: 1.5px solid var(--c-line-soft);
	border-radius: var(--r-card);
	padding: 22px 24px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	transition: border-color .25s ease, transform .25s ease;
}

.news-card:hover {
	border-color: var(--c-chalk);
	transform: rotate(.5deg);
}

.news-date {
	font-family: var(--f-kai);
	color: var(--c-cyan);
	font-size: .95rem;
	letter-spacing: .08em;
}

.news-title {
	font-size: 1.14rem;
	margin: 0;
}

.news-title a {
	text-decoration: none;
}

.news-ex {
	color: var(--c-chalk-dim);
	font-size: .94rem;
	margin: 0;
}

.news-foot {
	margin-top: 26px;
}

/* ---- 办公室找我 ---- */
.contact-box {
	max-width: 860px;
	border: 2px dashed var(--c-line);
	border-radius: 20px 26px 18px 28px / 28px 18px 26px 20px;
	padding: 34px 42px 30px;
}

.contact-list {
	list-style: none;
	margin: 0 0 18px;
	padding: 0;
	display: grid;
	gap: 12px;
}

.contact-list b {
	font-family: var(--f-kai);
	letter-spacing: .12em;
	margin-right: .4em;
	text-shadow: var(--shadow-chalk);
}

.contact-line {
	color: var(--c-chalk-dim);
	font-size: 1.02rem;
	margin-bottom: 22px;
}

/* ==================================================================
   五、内页:题板、正文、列表、值日表
   ================================================================== */
.page-board {
	padding: 46px 0 8px;
}

.page-board .sec-no {
	margin-bottom: 16px;
}

.page-board h1 {
	font-size: clamp(1.7rem, 3.6vw, 2.5rem);
	margin-bottom: .3em;
}

.page-board .board-sub {
	color: var(--c-chalk-dim);
	max-width: 46em;
}

.site-main {
	padding: 30px 0 70px;
}

.layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 52px;
	align-items: start;
}

/* 正文排版 */
.entry-content h2,
.entry-content h3 {
	margin-top: 1.6em;
}

.entry-content h2 {
	font-size: 1.5rem;
	padding-left: .6em;
	border-left: 4px solid var(--c-yellow);
}

.entry-content h3 {
	font-size: 1.22rem;
}

.entry-content ul,
.entry-content ol {
	padding-left: 1.6em;
	margin: 0 0 1.2em;
}

.entry-content li {
	margin: .3em 0;
}

.entry-content blockquote {
	margin: 1.6em 0;
	padding: .6em 1.4em;
	border-left: 3px dashed var(--c-cyan);
	font-family: var(--f-kai);
	font-size: 1.08em;
	color: var(--c-chalk);
	text-shadow: var(--shadow-chalk);
}

.entry-content code,
.entry-content pre {
	font-family: inherit;
	border: 1px dashed var(--c-line);
	border-radius: 4px;
	padding: .08em .4em;
}

.entry-content pre {
	padding: 1em 1.2em;
	overflow: auto;
}

.entry-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.4em 0;
}

.entry-content th,
.entry-content td {
	border: 1.5px dashed var(--c-line-soft);
	padding: .55em .9em;
	text-align: left;
}

.entry-content img {
	border-radius: var(--r-card);
}

.entry-meta {
	color: var(--c-chalk-dim);
	font-size: .92rem;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 22px;
	margin-bottom: 26px;
}

.entry-meta .kai {
	color: var(--c-cyan);
	margin-right: .3em;
}

.entry-tags {
	margin-top: 30px;
	font-size: .92rem;
	color: var(--c-chalk-dim);
}

.entry-tags a {
	display: inline-block;
	border: 1.5px dashed var(--c-line);
	border-radius: 4px 9px 5px 10px / 10px 5px 9px 4px;
	padding: .05em .7em;
	margin: 0 6px 6px 0;
	text-decoration: none;
	font-family: var(--f-kai);
}

/* 文章列表卡 */
.post-card {
	border-bottom: 1.5px dashed var(--c-line-soft);
	padding: 26px 0 28px;
	display: grid;
	grid-template-columns: 86px minmax(0, 1fr);
	gap: 24px;
}

.post-card:first-child {
	padding-top: 4px;
}

.post-date-chip {
	text-align: center;
	border: 1.5px solid var(--c-line);
	border-radius: var(--r-card);
	padding: 10px 6px;
	height: fit-content;
	transform: rotate(-2deg);
}

.post-date-chip b {
	display: block;
	font-family: var(--f-kai);
	font-size: 1.5rem;
	line-height: 1.2;
	color: var(--c-yellow);
	text-shadow: var(--shadow-chalk);
}

.post-date-chip span {
	font-size: .78rem;
	color: var(--c-chalk-dim);
}

.post-card h2 {
	font-size: 1.35rem;
	margin-bottom: .3em;
}

.post-card h2 a {
	text-decoration: none;
}

.post-card .post-ex {
	color: var(--c-chalk-dim);
	margin: 0 0 .6em;
}

.post-card .post-meta {
	font-size: .88rem;
	color: var(--c-chalk-dim);
}

.post-card .post-meta span {
	margin-right: 18px;
}

/* 分页 */
.pagination,
.nav-links {
	margin-top: 40px;
}

.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 0;
}

.page-numbers {
	display: inline-block;
	min-width: 2.3em;
	text-align: center;
	padding: .3em .6em;
	border: 1.5px solid var(--c-line);
	border-radius: 6px 10px 7px 11px / 11px 7px 10px 6px;
	text-decoration: none;
	font-family: var(--f-kai);
}

.page-numbers.current {
	background: var(--c-chalk);
	color: var(--c-board);
	border-color: var(--c-chalk);
	text-shadow: none;
}

.page-numbers.dots {
	border: 0;
}

/* 上一篇 / 下一篇 */
.post-nav {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	margin-top: 44px;
	padding-top: 22px;
	border-top: 2px solid var(--c-line-soft);
}

.post-nav a {
	text-decoration: none;
	font-family: var(--f-kai);
	max-width: 46%;
}

.post-nav .nav-label {
	display: block;
	font-size: .82rem;
	color: var(--c-chalk-dim);
	margin-bottom: 4px;
}

/* 值日表(参数表) */
.duty-table {
	width: 100%;
	border-collapse: collapse;
	margin: 10px 0 8px;
}

.duty-table caption {
	caption-side: top;
	text-align: left;
	font-family: var(--f-kai);
	font-size: 1.16rem;
	font-weight: 700;
	padding-bottom: 12px;
	letter-spacing: .06em;
	text-shadow: var(--shadow-chalk);
}

.duty-table th,
.duty-table td {
	border: 1.5px dashed var(--c-line);
	padding: .7em 1em;
	text-align: left;
	vertical-align: top;
}

.duty-table thead th {
	font-family: var(--f-kai);
	letter-spacing: .12em;
	background: rgba(242, 240, 230, .07);
	text-shadow: var(--shadow-chalk);
}

.duty-table tbody th {
	font-family: var(--f-kai);
	white-space: nowrap;
	font-weight: 700;
}

.duty-table td.note {
	color: var(--c-chalk-dim);
	font-size: .94rem;
}

.duty-foot {
	font-size: .9rem;
	color: var(--c-chalk-dim);
	margin-bottom: 34px;
}

/* 询价 CTA */
.ask-box {
	border: 2px solid var(--c-yellow);
	border-radius: 20px 24px 18px 26px / 26px 18px 24px 20px;
	padding: 28px 36px 24px;
	margin-top: 40px;
}

.ask-box h2 {
	font-size: 1.4rem;
	color: var(--c-yellow);
	margin-bottom: .4em;
}

.ask-box p {
	color: var(--c-chalk-dim);
}

.ask-box .hero-cta {
	margin-bottom: 0;
}

/* 同班同学(相关教具) */
.mates {
	margin-top: 46px;
}

.mates h2 {
	font-size: 1.3rem;
	margin-bottom: 20px;
}

.mates ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 28px;
}

.mates a {
	font-family: var(--f-kai);
	text-decoration-style: dashed;
}

/* ==================================================================
   六、侧栏与搜索
   ================================================================== */
.side {
	border-left: 2px dashed var(--c-line-soft);
	padding-left: 34px;
	display: grid;
	gap: 30px;
}

.widget {
	border: 1.5px solid var(--c-line-soft);
	border-radius: var(--r-card);
	padding: 20px 22px;
}

.widget-title {
	font-size: 1.08rem;
	letter-spacing: .1em;
	border-bottom: 2px dashed var(--c-line);
	padding-bottom: .4em;
	margin-bottom: .8em;
}

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

.widget li {
	padding: .35em 0;
	border-bottom: 1.5px dashed var(--c-line-soft);
	font-size: .95rem;
}

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

.widget a {
	text-decoration: none;
}

.side-note {
	font-family: var(--f-kai);
	font-size: .95rem;
	color: var(--c-chalk-dim);
	margin: 0;
	line-height: 2;
}

.search-form {
	display: flex;
	gap: 10px;
}

.search-field {
	flex: 1;
	min-width: 0;
	background: transparent;
	border: 0;
	border-bottom: 2px dashed var(--c-line);
	color: var(--c-chalk);
	font-family: var(--f-body);
	font-size: .98rem;
	padding: .4em .1em;
}

.search-field::placeholder {
	color: rgba(242, 240, 230, .45);
}

.search-field:focus {
	outline: none;
	border-bottom-color: var(--c-yellow);
}

/* ==================================================================
   七、404 与空状态
   ================================================================== */
.board-404 {
	text-align: center;
	padding: 40px 0 30px;
}

.num-404 {
	font-family: var(--f-kai);
	font-size: clamp(5rem, 16vw, 9.5rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: .08em;
	margin-bottom: 18px;
}

.board-404 .search-form {
	max-width: 420px;
	margin: 26px auto 30px;
}

.empty-note {
	border: 2px dashed var(--c-line-soft);
	border-radius: var(--r-card);
	padding: 30px 34px;
	color: var(--c-chalk-dim);
}

.empty-note .kai {
	color: var(--c-chalk);
	font-size: 1.1rem;
}

/* ==================================================================
   八、页脚:黑板下沿
   ================================================================== */
.site-foot {
	margin-top: 40px;
	background: var(--c-board-deep);
	border-top: 2px solid var(--c-line);
	position: relative;
	padding: 46px 0 26px;
}

.site-foot::before {
	content: "";
	position: absolute;
	top: 5px;
	left: 0;
	right: 0;
	border-top: 1.5px dashed var(--c-line-soft);
}

.foot-quote {
	margin: 0 0 36px;
	font-family: var(--f-kai);
	font-size: 1.06rem;
	line-height: 2;
	color: var(--c-chalk);
	border-left: 3px solid var(--c-yellow);
	padding-left: 1.2em;
	max-width: 46em;
	text-shadow: var(--shadow-chalk);
}

.foot-grid {
	display: grid;
	grid-template-columns: 1.2fr 1fr 1.2fr;
	gap: 40px;
	padding-bottom: 30px;
	border-bottom: 1.5px dashed var(--c-line-soft);
}

.foot-col h3 {
	font-size: 1.06rem;
	letter-spacing: .14em;
	margin-bottom: .8em;
	color: var(--c-cyan);
}

.foot-col,
.foot-col p {
	font-size: .94rem;
	color: var(--c-chalk-dim);
}

.foot-col .menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.foot-col .menu li {
	padding: .25em 0;
}

.foot-col .menu a {
	text-decoration: none;
	font-family: var(--f-kai);
}

.foot-col address {
	font-style: normal;
}

.foot-bottom {
	padding-top: 20px;
	font-size: .85rem;
	color: var(--c-chalk-dim);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 8px 30px;
}

.foot-bottom p {
	margin: 0;
}

/* ==================================================================
   九、动效:粉笔写出来
   ================================================================== */
.reveal {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .7s ease, transform .7s ease;
}

.reveal.is-visible {
	opacity: 1;
	transform: none;
}

.reveal-write {
	display: inline-block;
	clip-path: inset(0 100% 0 0);
	transition: clip-path 1.1s cubic-bezier(.6, .1, .3, 1) .1s;
}

.reveal-write.is-visible {
	clip-path: inset(0 0 0 0);
}

.no-js .reveal,
.no-js .reveal-write {
	opacity: 1;
	transform: none;
	clip-path: none;
	transition: none;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
	}

	.reveal,
	.reveal-write {
		opacity: 1;
		transform: none;
		clip-path: none;
	}
}

/* ==================================================================
   十、WordPress 常规样式钩子
   ================================================================== */
.aligncenter {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.alignleft {
	float: left;
	margin: .4em 1.4em 1em 0;
}

.alignright {
	float: right;
	margin: .4em 0 1em 1.4em;
}

.wp-caption {
	max-width: 100%;
}

.wp-caption-text {
	font-size: .88rem;
	color: var(--c-chalk-dim);
	text-align: center;
	padding-top: .4em;
}

.sticky {
	border-left: 3px solid var(--c-yellow);
	padding-left: 18px;
}

.bypostauthor {
	display: block;
}

/* ==================================================================
   十一、响应式:黑板搬进小屏教室
   ================================================================== */
@media (max-width: 1024px) {
	.hero-grid {
		gap: 36px;
	}

	.prod-grid,
	.news-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.notes-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	body {
		font-size: 16px;
	}

	.nav-toggle {
		display: inline-flex;
	}

	.site-nav {
		display: none;
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		background: var(--c-board-deep);
		border-bottom: 2px solid var(--c-line);
		padding: 8px 22px 18px;
	}

	.nav-open .site-nav {
		display: block;
	}

	.site-nav ul {
		flex-direction: column;
		gap: 0;
	}

	.site-nav li {
		border-bottom: 1.5px dashed var(--c-line-soft);
	}

	.site-nav li:last-child {
		border-bottom: 0;
	}

	.site-nav a {
		display: block;
		padding: .7em 0;
	}

	.hero {
		padding-top: 30px;
	}

	.hero-grid {
		grid-template-columns: 1fr;
	}

	.bao-tou {
		margin-left: 0;
		margin-bottom: 30px;
	}

	.stats {
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
	}

	.prod-grid,
	.news-grid,
	.notes-grid {
		grid-template-columns: 1fr;
	}

	.layout {
		grid-template-columns: 1fr;
		gap: 44px;
	}

	.side {
		border-left: 0;
		padding-left: 0;
		border-top: 2px dashed var(--c-line-soft);
		padding-top: 34px;
	}

	.foot-grid {
		grid-template-columns: 1fr;
		gap: 26px;
	}

	.tips-box,
	.contact-box {
		padding: 24px 22px 20px;
	}

	.post-card {
		grid-template-columns: 64px minmax(0, 1fr);
		gap: 16px;
	}

	.sec {
		padding: 48px 0;
	}
}
