@charset "utf-8";
/* ============================================================================
   qz-news.css — 新闻列表页（list_news / ajax 版）+ 文章详情页（show_news）
   依据：qz-website-delivery 的 NewsPage.jsx + NewsArticlePage.jsx
   加载顺序：common.css → qz-theme.css → qz-layout.css → 本文件
   ========================================================================== */

/* ============================================================================
   一、列表页
   ========================================================================== */

.qz-news-list-section {
	padding: 32px 0 56px;
	background: #fff;
}

@media (min-width: 768px) {
	.qz-news-list-section { padding: 40px 0 80px; }
}

/* 排序切换：胶囊分段控件 */
.qz-sort {
	display: flex;
	justify-content: flex-start;
}

.qz-sort-group {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	padding: 4px;
	border: 1px solid var(--qz-slate-200);
	border-radius: var(--qz-radius-pill);
	background: #fff;
	box-shadow: 0 1px 2px rgba(15, 23, 42, .05);
}

.qz-sort-btn {
	padding: 6px 14px;
	border-radius: var(--qz-radius-pill);
	color: var(--qz-slate-500);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.5;
	transition: color .2s ease, background-color .2s ease;
}

.qz-sort-btn:hover { color: var(--qz-slate-800, #1e293b); }

.qz-sort-btn.is-active {
	background: rgba(56, 98, 143, .07);
	color: var(--qz-navy);
}

@media (min-width: 768px) {
	.qz-sort-btn { padding: 6px 16px; font-size: 13px; }
}

/* 列表容器 */
.qz-news-list {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin-top: 32px;
}

@media (min-width: 768px) {
	.qz-news-list { margin-top: 40px; gap: 24px; }
}

/* 列表项：移动端上图下文，桌面端左图右文 */
.qz-nitem-link {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--qz-slate-100);
	border-radius: var(--qz-radius-card);
	background: #fff;
	box-shadow: var(--qz-shadow-card);
}

.qz-nitem-link:hover {
	transform: translateY(-4px);
	border-color: rgba(69, 145, 161, .2);
	box-shadow: 0 24px 48px -16px rgba(56, 98, 143, .18);
}

@media (min-width: 768px) {
	.qz-nitem-link { flex-direction: row; }
}

.qz-nitem-media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: var(--qz-slate-100);
}

@media (min-width: 768px) {
	.qz-nitem-media { flex-shrink: 0; width: 320px; aspect-ratio: auto; }
}

.qz-nitem-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}

.qz-nitem-link:hover .qz-nitem-media img { transform: scale(1.05); }

.qz-nitem-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	padding: 20px;
}

@media (min-width: 768px) {
	.qz-nitem-body { padding: 32px; }
}

.qz-nitem-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 16px;
	margin: 0;
	color: var(--qz-slate-400);
	font-size: 12px;
	font-variant-numeric: tabular-nums;
}

.qz-nitem-meta span { display: flex; align-items: center; gap: 6px; }

.qz-nitem-title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	margin: 10px 0 0;
	color: var(--qz-slate-900);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.45;
}

@media (min-width: 768px) {
	.qz-nitem-title { font-size: 18px; }
}

.qz-nitem-link:hover .qz-nitem-title { color: var(--qz-teal); }

.qz-nitem-desc {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	margin: 8px 0 0;
	color: var(--qz-slate-500);
	font-size: 13px;
	line-height: 24px;
}

.qz-nitem-more {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-top: 16px;
	color: var(--qz-navy);
	font-size: 12px;
	font-weight: 500;
}

.qz-nitem-link:hover .qz-nitem-more { color: var(--qz-teal); }

.qz-nitem-more .fa { transition: transform .3s var(--qz-ease); }
.qz-nitem-link:hover .qz-nitem-more .fa { transform: translateX(3px); }

/* 分页（Bootstrap 分页样式对齐品牌色） */
.qz-news-list-section .pager { margin: 40px 0 0; }

.qz-news-list-section .pagination > li > a,
.qz-news-list-section .pagination > li > span {
	margin: 0 3px;
	border-color: var(--qz-slate-200);
	border-radius: var(--qz-radius-btn);
	color: var(--qz-slate-600);
	font-size: 13px;
}

.qz-news-list-section .pagination > li > a:hover {
	border-color: rgba(69, 145, 161, .4);
	color: var(--qz-teal);
	background: #fff;
}

.qz-news-list-section .pagination > .active > a,
.qz-news-list-section .pagination > .active > a:hover {
	border-color: var(--qz-navy);
	background: var(--qz-navy);
	color: #fff;
}

/* 加载更多（无限模式） */
.qz-news-list-section .btn-loadmore {
	border-radius: var(--qz-radius-btn);
	border-color: var(--qz-slate-200);
	color: var(--qz-slate-600);
	background: #fff;
}

.qz-news-list-section .btn-loadmore:hover {
	border-color: rgba(69, 145, 161, .4);
	color: var(--qz-teal);
}

/* ============================================================================
   二、文章详情页
   ========================================================================== */

.qz-article {
	padding: 112px 0 80px;
	background: #fff;
}

@media (min-width: 768px) {
	.qz-article { padding: 128px 0 96px; }
}

.qz-article-inner {
	margin: 0 auto;
	max-width: 800px;
	padding: 0 20px;
}

/* 返回链接 */
.qz-article-back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 8px;
	border-radius: var(--qz-radius-btn);
	color: var(--qz-slate-400);
	font-size: 12px;
}

.qz-article-back:hover {
	background: var(--qz-slate-100);
	color: var(--qz-teal);
}

/* 标题区 */
.qz-article-head { margin-top: 24px; }

.qz-article-title {
	margin: 0;
	color: var(--qz-slate-900);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: -.01em;
}

@media (min-width: 768px) {
	.qz-article-title { font-size: 30px; }
}

.qz-article-sub {
	margin: 12px 0 0;
	color: var(--qz-slate-500);
	font-size: 15px;
	line-height: 28px;
}

/* 元信息条 */
.qz-article-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 20px;
	margin-top: 20px;
	padding: 14px 0;
	border-top: 1px solid var(--qz-slate-100);
	border-bottom: 1px solid var(--qz-slate-100);
	color: var(--qz-slate-400);
	font-size: 12px;
	font-variant-numeric: tabular-nums;
}

.qz-article-meta span { display: flex; align-items: center; gap: 6px; }
.qz-article-meta a { color: var(--qz-slate-500); }
.qz-article-meta a:hover { color: var(--qz-teal); }

/* 封面图 */
.qz-article-figure {
	margin: 32px 0 0;
	overflow: hidden;
	border-radius: var(--qz-radius-card);
	box-shadow: 0 0 0 1px rgba(15, 23, 42, .05);
}

.qz-article-figure img {
	display: block;
	width: 100%;
	max-height: 58vh;
	object-fit: cover;
}

/* 正文（富文本） */
.qz-article-body {
	margin-top: 32px;
	color: var(--qz-slate-600);
	font-size: 15px;
	line-height: 32px;
	word-wrap: break-word;
}

.qz-article-body p { margin: 0 0 16px; }
.qz-article-body img { max-width: 100%; height: auto; border-radius: 12px; }

.qz-article-body h1,
.qz-article-body h2,
.qz-article-body h3,
.qz-article-body h4 {
	margin: 28px 0 12px;
	color: var(--qz-slate-900);
	font-weight: 700;
	line-height: 1.4;
}

.qz-article-body h1 { font-size: 22px; }
.qz-article-body h2 { font-size: 20px; }
.qz-article-body h3 { font-size: 17px; }
.qz-article-body h4 { font-size: 15px; }

.qz-article-body ul,
.qz-article-body ol { margin: 0 0 16px; padding-left: 22px; }
.qz-article-body li { margin-bottom: 8px; }

.qz-article-body blockquote {
	margin: 20px 0;
	padding: 12px 18px;
	border-left: 3px solid var(--qz-teal);
	background: var(--qz-slate-50);
	color: var(--qz-slate-600);
}

.qz-article-body a { color: var(--qz-teal-dark); text-decoration: underline; }
.qz-article-body a:hover { color: var(--qz-navy); }

.qz-article-body table {
	width: 100%;
	margin: 16px 0;
	border-collapse: collapse;
}

.qz-article-body th,
.qz-article-body td {
	padding: 10px 12px;
	border: 1px solid var(--qz-slate-200);
	font-size: 13px;
}

.qz-article-body th { background: var(--qz-slate-50); font-weight: 600; }

.qz-article-body pre {
	overflow-x: auto;
	margin: 16px 0;
	padding: 16px;
	border-radius: var(--qz-radius-btn);
	background: var(--qz-slate-900);
	color: #e2e8f0;
	font-size: 13px;
	line-height: 1.6;
}

/* 上下篇 */
.qz-article-nav {
	display: grid;
	gap: 16px;
	margin-top: 56px;
}

@media (min-width: 640px) {
	.qz-article-nav { grid-template-columns: repeat(2, 1fr); }
}

.qz-article-navitem {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px;
	border: 1px solid var(--qz-slate-100);
	border-radius: var(--qz-radius-card);
	background: #fff;
	box-shadow: var(--qz-shadow-card);
	min-width: 0;
}

.qz-article-navitem:hover {
	transform: translateY(-2px);
	border-color: rgba(69, 145, 161, .2);
	box-shadow: 0 16px 36px -12px rgba(56, 98, 143, .15);
}

.qz-article-navitem--next { justify-content: flex-end; text-align: right; }

.qz-article-navitem .fa { flex-shrink: 0; color: var(--qz-teal); }

.qz-article-navtext { min-width: 0; }

.qz-article-navlabel {
	display: block;
	color: var(--qz-slate-400);
	font-size: 10px;
	letter-spacing: .15em;
	text-transform: uppercase;
}

.qz-article-navtitle {
	display: block;
	overflow: hidden;
	margin-top: 2px;
	color: var(--qz-slate-800, #1e293b);
	font-size: 13px;
	font-weight: 500;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.qz-article-navitem:hover .qz-article-navtitle { color: var(--qz-teal); }

/* 相关文章 */
.qz-related {
	margin-top: 56px;
	padding-top: 32px;
	border-top: 1px solid var(--qz-slate-100);
}

.qz-related-title {
	margin: 0 0 20px;
	color: var(--qz-slate-900);
	font-size: 16px;
	font-weight: 600;
}

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

@media (min-width: 768px) {
	.qz-related-grid { grid-template-columns: repeat(4, 1fr); }
}

.qz-related-item { display: block; }

.qz-related-media {
	overflow: hidden;
	border-radius: 12px;
	aspect-ratio: 4 / 3;
	background: var(--qz-slate-100);
}

.qz-related-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}

.qz-related-item:hover .qz-related-media img { transform: scale(1.05); }

.qz-related-name {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	margin: 10px 0 0;
	color: var(--qz-slate-700);
	font-size: 13px;
	font-weight: 500;
	line-height: 20px;
}

.qz-related-item:hover .qz-related-name { color: var(--qz-teal); }

/* 空状态 */
.qz-article-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 20px;
	min-height: 70vh;
	padding-top: 80px;
}

.qz-article-empty p {
	margin: 0;
	color: var(--qz-slate-400);
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 14px;
	letter-spacing: .18em;
}
