/* ==========================================================================

   Archive, Category, Tag, Author, Search & Pagination Modules

   ========================================================================== */

/* ==========================================================================
   Archive, Category, Tag, Author & Search Page Headers (Flat Minimalist Card)
   ========================================================================== */
.page-header,
.separate-containers .page-header,
.inside-page-header {
	background-color: var(--le-bg-surface);
	border: 1px solid var(--le-border-color);
	border-radius: var(--le-radius-md);
	padding: 20px 24px !important;
	margin-top: 0 !important;
	margin-bottom: var(--le-space-md) !important;
	box-shadow: none !important;
}

.page-header-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 8px;
}

.page-header-badge {
	display: inline-flex;
	align-items: center;
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--le-primary);
	background-color: var(--le-primary-tint);
	border: 1px solid var(--le-primary-tint);
	padding: 2px 8px;
	border-radius: var(--le-radius-sm);
	line-height: 1.4;
}

.page-header-count {
	font-size: 0.78rem;
	font-weight: 500;
	color: var(--le-text-muted);
}

.page-header .page-title {
	font-family: var(--le-font-sans);
	font-size: clamp(1.3rem, 2.6vw, 1.65rem) !important;
	font-weight: 750;
	line-height: 1.32;
	letter-spacing: var(--le-ls-heading);
	color: var(--le-text-primary);
	margin: 0 !important;
	word-break: keep-all;
	overflow-wrap: break-word;
}

/* Tag archive title prefix */
.tag .page-header .page-title::before {
	content: '#';
	color: var(--le-primary);
	margin-right: 2px;
	font-weight: 700;
}

/* Search results query highlight */
.search .page-header .page-title span,
.search-query-highlight {
	color: var(--le-primary);
	font-weight: 750;
}

/* Author Archive Header with Avatar */
.author .page-header .page-title {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
}

.author .page-header .avatar {
	float: none !important;
	margin: 0 !important;
	width: 42px !important;
	height: 42px !important;
	border-radius: 50%;
	border: 1px solid var(--le-border-color);
}

/* Taxonomy description & author bio */
.page-header .taxonomy-description,
.page-header .author-info {
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid var(--le-border-subtle);
	font-size: 0.92rem;
	line-height: 1.65;
	color: var(--le-text-secondary);
}

.page-header .taxonomy-description p:last-child,
.page-header .author-info p:last-child {
	margin-bottom: 0;
}


/* ==========================================================================
   Pagination: Flat Minimalist Box Numbers (Zero GP 40px Waste, Mobile Responsive)
   ========================================================================== */
/* Hide legacy duplicate navigation links output by GeneratePress */
.paging-navigation .nav-previous,
.paging-navigation .nav-next {
	display: none !important;
}

/* Pagination Container */
.separate-containers .paging-navigation,
.paging-navigation,
.pagination,
nav.pagination {
	background-color: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin-top: var(--le-space-lg) !important;
	margin-bottom: var(--le-space-xl) !important;
	display: flex !important;
	justify-content: center !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

/* Flex Row for Page Numbers */
.paging-navigation .nav-links,
.pagination .nav-links,
.pagination {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	padding: 0 !important;
	margin: 0 !important;
	list-style: none !important;
	max-width: 100% !important;
	overflow-x: auto !important;
	-scrollbar-width: none;
}

.paging-navigation .nav-links::-webkit-scrollbar,
.pagination .nav-links::-webkit-scrollbar {
	display: none;
}

/* Individual Page Item Buttons */
.paging-navigation .page-numbers,
.pagination .page-numbers {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 38px !important;
	height: 38px !important;
	padding: 0 12px !important;
	font-family: var(--le-font-sans) !important;
	font-size: 0.88rem !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	color: var(--le-text-secondary) !important;
	background-color: var(--le-bg-surface) !important;
	border: 1px solid var(--le-border-color) !important;
	border-radius: var(--le-radius-sm) !important;
	text-decoration: none !important;
	box-sizing: border-box !important;
	flex: 0 0 auto !important;
	-webkit-tap-highlight-color: transparent !important;
	-webkit-user-select: none !important;
	user-select: none !important;
	-webkit-touch-callout: none !important;
	transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease !important;
}

/* Hover State */
@media (hover: hover) and (pointer: fine) {
	.paging-navigation a.page-numbers:hover,
	.pagination a.page-numbers:hover {
		border-color: var(--le-primary) !important;
		color: var(--le-primary) !important;
		background-color: var(--le-primary-tint) !important;
	}
}

/* Active State (Zero Flash) */
.paging-navigation a.page-numbers:active,
.pagination a.page-numbers:active {
	border-color: var(--le-primary) !important;
}

/* Current Active Page */
.paging-navigation .page-numbers.current,
.pagination .page-numbers.current {
	background-color: var(--le-primary) !important;
	border-color: var(--le-primary) !important;
	color: #ffffff !important;
	font-weight: 700 !important;
	cursor: default !important;
}

/* Previous & Next Action Buttons */
.paging-navigation .page-numbers.prev,
.paging-navigation .page-numbers.next,
.pagination .page-numbers.prev,
.pagination .page-numbers.next {
	padding: 0 14px !important;
	font-weight: 650 !important;
	gap: 4px !important;
}

.pagination-nav-arrow {
	display: inline-block;
	line-height: 1;
}

.pagination-nav-label {
	display: inline;
}

/* Hide Prev / Next text labels on mobile (<= 768px), showing only arrow symbols */
@media screen and (max-width: 768px) {
	.pagination-nav-label {
		display: none !important;
	}

	.paging-navigation .page-numbers.prev,
	.paging-navigation .page-numbers.next,
	.pagination .page-numbers.prev,
	.pagination .page-numbers.next {
		min-width: 36px !important;
		width: 36px !important;
		padding: 0 !important;
		gap: 0 !important;
		font-size: 1rem !important;
	}
}

/* Ellipsis / Dots */
.paging-navigation .page-numbers.dots,
.pagination .page-numbers.dots {
	background: transparent !important;
	border: none !important;
	color: var(--le-text-muted) !important;
	min-width: 22px !important;
	padding: 0 !important;
	cursor: default !important;
	font-weight: 700 !important;
	letter-spacing: 0.05em !important;
}

/* Mobile Responsive Optimization (<= 640px) */
@media screen and (max-width: 640px) {
	.separate-containers .paging-navigation,
	.paging-navigation,
	.pagination {
		margin-top: var(--le-space-md) !important;
		margin-bottom: var(--le-space-lg) !important;
	}

	.paging-navigation .nav-links,
	.pagination .nav-links {
		gap: 5px !important;
	}

	.paging-navigation .page-numbers,
	.pagination .page-numbers {
		min-width: 36px !important;
		height: 36px !important;
		padding: 0 8px !important;
		font-size: 0.84rem !important;
	}

	.paging-navigation .page-numbers.prev,
	.paging-navigation .page-numbers.next,
	.pagination .page-numbers.prev,
	.pagination .page-numbers.next {
		min-width: 36px !important;
		width: 36px !important;
		padding: 0 !important;
		gap: 0 !important;
		font-size: 1rem !important;
	}
}

/* ==========================================================================
   Archive Post Card Footer Meta: Categories, Tags, Comments (One per Line, 3px Icon Gap)
   ========================================================================== */
footer.entry-meta {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 6px !important;
	clear: both !important;
	margin-top: 14px !important;
	margin-bottom: 0 !important;
	padding-top: 10px !important;
	padding-bottom: 0 !important;
	border-top: 1px solid var(--le-border-subtle) !important;
	border-bottom: none !important;
	font-size: 0.84rem !important;
	line-height: 1.5 !important;
	color: var(--le-text-muted) !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

/* Remove the divider and empty spacing when no archive meta items exist. */
footer.entry-meta:not(:has(.cat-links, .tags-links, .comments-link)) {
	display: none !important;
}

.cat-links,
.tags-links,
.comments-link {
	display: flex !important;
	align-items: center !important;
	flex-wrap: wrap !important;
	width: 100% !important;
	gap: 0 !important;
	font-size: 0.86rem !important;
	line-height: 1.5 !important;
	color: var(--le-text-muted) !important;
	margin: 0 !important;
	padding: 0 !important;
}

.cat-links a,
.tags-links a,
.comments-link a {
	display: inline !important;
	background: transparent !important;
	background-color: transparent !important;
	border: none !important;
	padding: 0 !important;
	margin: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--le-text-secondary) !important;
	font-size: 0.86rem !important;
	font-weight: 550 !important;
	line-height: 1.5 !important;
	text-decoration: none !important;
	transition: color 0.15s ease;
}

.cat-links a:hover,
.tags-links a:hover,
.comments-link a:hover {
	background: transparent !important;
	background-color: transparent !important;
	border: none !important;
	color: var(--le-primary) !important;
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

.cat-links .gp-icon,
.tags-links .gp-icon,
.comments-link .gp-icon,
.entry-header .entry-meta .gp-icon,
footer.entry-meta .cat-links .gp-icon,
footer.entry-meta .tags-links .gp-icon,
footer.entry-meta .comments-link .gp-icon {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin-right: 6px !important;
	margin-left: 0 !important;
	padding: 0 !important;
	color: var(--le-text-muted) !important;
	vertical-align: middle !important;
	flex-shrink: 0 !important;
	line-height: 1 !important;
}

.cat-links .gp-icon svg,
.tags-links .gp-icon svg,
.comments-link .gp-icon svg,
.entry-header .entry-meta .gp-icon svg,
footer.entry-meta .cat-links svg,
footer.entry-meta .tags-links svg,
footer.entry-meta .comments-link svg {
	position: static !important;
	top: 0 !important;
	width: 14px !important;
	height: 14px !important;
	fill: currentColor;
	display: block !important;
}

/* ==========================================================================
   404 Page & No Results Found (Minimal Flat Hero Card)
   ========================================================================== */
.error404 .site-main,
.no-results .site-main,
.no-results {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
}

.error404 .inside-article,
.no-results.not-found {
	max-width: 580px !important;
	width: 100% !important;
	margin: var(--le-space-xl) auto !important;
	padding: 48px 32px !important;
	text-align: center;
	background-color: var(--le-bg-surface) !important;
	border: 1px solid var(--le-border-color) !important;
	border-radius: var(--le-radius-md) !important;
	box-sizing: border-box;
}

.error404 .page-header,
.no-results .page-header {
	margin: 0 0 16px 0 !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
	text-align: center;
}

/* Big Minimalist 404 Accent Badge */
.error404 .page-header::before {
	content: "404";
	display: block;
	font-family: var(--le-font-mono, monospace);
	font-size: clamp(3rem, 5vw, 4.2rem);
	font-weight: 850;
	letter-spacing: -0.05em;
	line-height: 1;
	color: var(--le-primary);
	margin-bottom: 8px;
}

.error404 .page-title,
.no-results .page-title {
	font-size: 1.35rem !important;
	font-weight: 750 !important;
	color: var(--le-text-primary) !important;
	letter-spacing: var(--le-ls-heading) !important;
	margin: 0 !important;
}

.error404 .entry-content p,
.no-results .page-content p {
	font-size: 0.95rem;
	color: var(--le-text-muted);
	line-height: 1.6;
	margin: 0 0 20px 0;
}

/* Minimal Search Form in 404 / No-Results */
.error404 .search-form,
.no-results .search-form {
	max-width: 400px;
	margin: 0 auto;
}

.error404 .search-form .search-field,
.no-results .search-form .search-field {
	border-radius: var(--le-radius-sm);
	font-size: 0.92rem;
}

@media (max-width: 768px) {
	.error404 .inside-article,
	.no-results.not-found {
		padding: 32px 20px !important;
		margin: var(--le-space-md) auto !important;
	}
}

