/* ============================================================
   templates.css — search, 404, page, single post, archive, author.
   Loaded only on those templates (see inc/enqueue.php).
============================================================ */

/* ---- Shared breadcrumb ---- */
.search-crumb,
.page-crumb,
.post-crumb,
.archive-crumb,
.author-crumb {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--text-2);
	margin-bottom: 16px;
	flex-wrap: wrap;
}

.search-crumb a,
.page-crumb a,
.post-crumb a,
.archive-crumb a,
.author-crumb a {
	color: inherit;
	text-decoration: none;
}

.search-crumb a:hover,
.page-crumb a:hover,
.post-crumb a:hover,
.archive-crumb a:hover,
.author-crumb a:hover {
	color: var(--primary);
}

.dl-sep {
	color: var(--text-muted);
}

/* ============================================================
   SEARCH
============================================================ */
.search-main {
	padding: 32px 0;
}

.search-header {
	margin-bottom: 32px;
}

.search-title {
	margin: 0 0 8px;
	font-size: 28px;
	font-weight: 800;
}

.search-query {
	color: var(--primary);
}

.search-count {
	color: var(--text-2);
	margin: 0 0 24px;
	font-size: 14px;
}

.search-form-large {
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 12px;
	padding: 6px 6px 6px 16px;
	max-width: 600px;
}

.search-form-large svg {
	color: var(--text-3);
	flex-shrink: 0;
}

.search-form-large input {
	flex: 1;
	min-width: 0;
	border: 0;
	background: transparent;
	padding: 10px 8px;
	font-size: 15px;
	outline: 0;
}

.search-form-large button {
	background: var(--primary);
	color: #fff;
	border: 0;
	padding: 10px 20px;
	border-radius: 8px;
	cursor: pointer;
	font-weight: 700;
	flex-shrink: 0;
}

.search-form-large button:hover {
	background: var(--primary-dark);
}

/* Renamed from `.search-results` — that class is also added to <body>
   by body_class() on a search page, so the rule was styling the whole
   document (flex column → shrink-wrapped <main>). */
.search-result-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
	margin-bottom: 32px;
}

@media (max-width: 768px) {
	.search-result-list {
		grid-template-columns: 1fr;
	}
}

.search-result-item {
	display: flex;
	gap: 16px;
	padding: 16px;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 12px;
	transition: border-color 0.15s ease;
}

.search-result-item:hover {
	border-color: var(--primary);
}

.search-result-icon-link {
	flex-shrink: 0;
	line-height: 0;
}

.search-result-icon {
	width: 56px;
	height: 56px;
	border-radius: 12px;
	object-fit: cover;
}

.search-result-icon-placeholder {
	width: 56px;
	height: 56px;
	border-radius: 12px;
	background: var(--bg-soft);
	color: var(--text-3);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 22px;
}

.search-result-info {
	flex: 1;
	min-width: 0;
}

.search-result-title-link {
	text-decoration: none;
	color: inherit;
}

.search-result-title {
	margin: 0 0 4px;
	font-size: 16px;
	font-weight: 700;
	color: var(--text);
}

.search-result-title-link:hover .search-result-title {
	color: var(--primary);
}

.search-result-excerpt {
	margin: 0 0 6px;
	color: var(--text-2);
	font-size: 13px;
	line-height: 1.5;
}

.search-result-meta {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: var(--text-2);
	flex-wrap: wrap;
}

.search-result-tag {
	display: inline-block;
	background: var(--primary-light);
	color: var(--primary);
	padding: 2px 8px;
	border-radius: 4px;
	font-weight: 600;
	font-size: 11px;
}

.search-result-meta .dot {
	opacity: 0.5;
}

.search-empty {
	text-align: center;
	padding: 60px 20px;
}

.search-empty > svg {
	color: var(--text-3);
	margin-bottom: 16px;
}

.search-empty h2 {
	margin: 0 0 8px;
	font-size: 22px;
}

.search-empty > p {
	color: var(--text-2);
	margin: 0 0 32px;
}

.search-empty-suggestions h3 {
	font-size: 14px;
	color: var(--text-2);
	margin: 0 0 12px;
}

.search-empty-cats {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	margin-bottom: 32px;
}

.search-empty-cat {
	background: var(--surface);
	border: 1px solid var(--border);
	color: var(--text);
	padding: 6px 14px;
	border-radius: 999px;
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
	transition: all 0.15s ease;
}

.search-empty-cat:hover {
	border-color: var(--primary);
	color: var(--primary);
}

.search-empty-actions {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
}

/* ---- Shared buttons ---- */
.btn-primary,
.btn-secondary {
	display: inline-block;
	padding: 10px 20px;
	border-radius: 8px;
	text-decoration: none;
	font-weight: 700;
	font-size: 14px;
}

.btn-primary {
	background: var(--primary);
	color: #fff;
}

.btn-primary:hover {
	background: var(--primary-dark);
}

.btn-secondary {
	background: var(--surface);
	color: var(--text);
	border: 1px solid var(--border);
}

.btn-secondary:hover {
	border-color: var(--primary);
	color: var(--primary);
}

/* ============================================================
   404
============================================================ */
.error-main {
	padding: 60px 0;
}

.error-content {
	text-align: center;
	max-width: 600px;
	margin: 0 auto;
}

.error-illustration {
	color: var(--text-3);
	margin-bottom: 8px;
}

.error-code {
	font-family: var(--font-display);
	font-size: 72px;
	font-weight: 800;
	color: var(--primary);
	margin: 0 0 8px;
	line-height: 1;
}

.error-title {
	margin: 0 0 12px;
	font-size: 28px;
}

.error-subtitle {
	color: var(--text-2);
	margin: 0 0 32px;
	font-size: 16px;
}

.error-search {
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 12px;
	padding: 6px 6px 6px 16px;
	max-width: 500px;
	margin: 0 auto 32px;
}

.error-search svg {
	color: var(--text-3);
	flex-shrink: 0;
}

.error-search input {
	flex: 1;
	min-width: 0;
	border: 0;
	padding: 10px 8px;
	font-size: 15px;
	outline: 0;
	background: transparent;
}

.error-search button {
	background: var(--primary);
	color: #fff;
	border: 0;
	padding: 10px 18px;
	border-radius: 8px;
	cursor: pointer;
	font-weight: 700;
	flex-shrink: 0;
}

.error-search button:hover {
	background: var(--primary-dark);
}

.error-suggestions h3 {
	font-size: 14px;
	color: var(--text-2);
	margin: 0 0 12px;
}

.error-cats {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	margin-bottom: 32px;
}

.error-cat {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--surface);
	border: 1px solid var(--border);
	padding: 8px 14px;
	border-radius: 999px;
	text-decoration: none;
	color: var(--text);
	font-size: 13px;
	font-weight: 600;
	transition: all 0.15s ease;
}

.error-cat svg {
	width: 14px;
	height: 14px;
}

.error-cat:hover {
	border-color: var(--primary);
	color: var(--primary);
}

.error-actions {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
}

/* ============================================================
   STATIC PAGE
============================================================ */
.page-main {
	padding: 32px 0;
	max-width: 800px;
}

.page-header {
	margin-bottom: 32px;
}

.page-header h1 {
	margin: 0;
	font-size: 32px;
}

.page-meta {
	font-size: 13px;
	color: var(--text-2);
	margin: 8px 0 0;
}

.page-body {
	font-size: 16px;
	line-height: 1.7;
	color: var(--text-2);
}

.page-body h2 {
	font-size: 24px;
	margin: 32px 0 16px;
	color: var(--text);
}

.page-body h3 {
	font-size: 18px;
	margin: 24px 0 12px;
	color: var(--text);
}

.page-body p {
	margin: 0 0 16px;
}

.page-body ul,
.page-body ol {
	margin: 0 0 16px 24px;
}

.page-body li {
	margin-bottom: 6px;
}

.page-body a {
	color: var(--primary);
}

.page-pagination {
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid var(--border);
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}

/* ============================================================
   SINGLE POST
============================================================ */
.post-main {
	padding: 32px 0;
	max-width: 760px;
}

.post-header {
	margin-bottom: 24px;
}

.post-category {
	display: inline-block;
	background: var(--primary-light);
	color: var(--primary);
	padding: 4px 12px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	text-decoration: none;
	margin-bottom: 12px;
}

.post h1 {
	margin: 0 0 12px;
	font-size: 36px;
	line-height: 1.2;
}

.post-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	color: var(--text-2);
	font-size: 13px;
}

.post-meta svg {
	vertical-align: middle;
	margin-right: 4px;
}

.post-meta .dot {
	opacity: 0.5;
}

.post-featured-image {
	margin: 24px 0 32px;
	border-radius: 16px;
	overflow: hidden;
}

.post-featured-image img {
	width: 100%;
	height: auto;
	display: block;
}

.post-content {
	font-size: 17px;
	line-height: 1.8;
	color: var(--text-2);
}

.post-content h2 {
	font-size: 26px;
	margin: 40px 0 16px;
	color: var(--text);
}

.post-content h3 {
	font-size: 20px;
	margin: 32px 0 12px;
	color: var(--text);
}

.post-content p {
	margin: 0 0 20px;
}

.post-content blockquote {
	border-left: 4px solid var(--primary);
	padding-left: 20px;
	margin: 24px 0;
	color: var(--text-3);
	font-style: italic;
}

.post-content img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
	margin: 16px 0;
}

.post-content pre {
	background: var(--bg-soft);
	padding: 16px;
	border-radius: 8px;
	overflow-x: auto;
	font-size: 14px;
	margin: 16px 0;
}

.post-content code {
	background: var(--bg-soft);
	padding: 2px 6px;
	border-radius: 4px;
	font-size: 0.9em;
	font-family: var(--font-mono);
}

.post-tags {
	margin: 32px 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
}

.post-tags-label {
	font-size: 13px;
	color: var(--text-2);
	margin-right: 4px;
}

.post-tag {
	background: var(--bg-soft);
	color: var(--text-2);
	padding: 4px 10px;
	border-radius: 4px;
	font-size: 12px;
	text-decoration: none;
}

.post-tag:hover {
	background: var(--primary-light);
	color: var(--primary);
}

.post-author-bio {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	background: var(--bg-soft);
	padding: 20px;
	border-radius: 12px;
	margin: 28px 0 24px;
}

.post-author-avatar {
	border-radius: 50%;
	flex-shrink: 0;
}

.post-author-bio h3 {
	margin: 0 0 8px;
	font-size: 16px;
}

.post-author-bio p {
	margin: 0 0 8px;
	font-size: 14px;
	color: var(--text-2);
}

.post-author-bio a {
	color: var(--primary);
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}

.post-related {
	margin-top: 24px;
	padding-top: 28px;
	border-top: 1px solid var(--border);
}

.post-related h2 {
	margin: 0 0 20px;
	font-size: 22px;
}

.post-related-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
}

.post-related-card {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 12px;
	overflow: hidden;
	transition: transform 0.15s ease;
}

.post-related-card:hover {
	transform: translateY(-2px);
}

.post-related-link {
	text-decoration: none;
	color: inherit;
}

.post-related-link img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	display: block;
}

.post-related-card h3 {
	margin: 12px 12px 6px;
	font-size: 14px;
	font-weight: 700;
}

.post-related-card time {
	display: block;
	margin: 0 12px 12px;
	font-size: 12px;
	color: var(--text-2);
}

/* ============================================================
   ARCHIVE (blog categories / tags / dates)
============================================================ */
.archive-main {
	padding: 32px 0;
}

.archive-header {
	margin-bottom: 32px;
}

.archive-title {
	margin: 0 0 8px;
	font-size: 32px;
}

.archive-desc {
	color: var(--text-2);
	margin: 0 0 12px;
}

.archive-count {
	font-size: 14px;
	color: var(--text-2);
	margin: 0;
}

.archive-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
	margin-bottom: 32px;
}

.archive-card {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 12px;
	overflow: hidden;
	transition: transform 0.15s ease;
}

.archive-card:hover {
	transform: translateY(-2px);
}

.archive-card-image-link {
	display: block;
	line-height: 0;
}

.archive-card-image {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	display: block;
}

.archive-card-body {
	padding: 16px;
}

.archive-card-cat {
	display: inline-block;
	background: var(--primary-light);
	color: var(--primary);
	padding: 2px 10px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	text-decoration: none;
	margin-bottom: 8px;
}

.archive-card-title-link {
	text-decoration: none;
	color: inherit;
}

.archive-card-title {
	margin: 0 0 8px;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
}

.archive-card-title-link:hover .archive-card-title {
	color: var(--primary);
}

.archive-card-excerpt {
	color: var(--text-2);
	font-size: 13px;
	line-height: 1.5;
	margin: 0 0 12px;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.archive-card-meta {
	display: flex;
	gap: 6px;
	font-size: 12px;
	color: var(--text-2);
}

.archive-card-meta .dot {
	opacity: 0.5;
}

.archive-empty {
	text-align: center;
	padding: 60px 20px;
	color: var(--text-2);
}

/* ============================================================
   AUTHOR
============================================================ */
.author-main {
	padding: 32px 0;
}

.author-header {
	margin-bottom: 32px;
}

.author-profile {
	display: flex;
	gap: 24px;
	align-items: flex-start;
	background: var(--surface);
	border: 1px solid var(--border);
	padding: 24px;
	border-radius: 16px;
}

.author-avatar {
	border-radius: 50%;
	flex-shrink: 0;
}

.author-info {
	flex: 1;
	min-width: 0;
}

.author-info h1 {
	margin: 0 0 12px;
	font-size: 28px;
}

.author-bio {
	color: var(--text-2);
	margin: 0 0 12px;
	line-height: 1.6;
}

.author-count {
	font-size: 13px;
	color: var(--text-2);
	margin: 0 0 12px;
}

.author-website {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--primary);
	font-size: 14px;
	text-decoration: none;
	font-weight: 700;
}

/* ============================================================
   PAGINATION (moosoft_pagination output)
============================================================ */
.moosoft-pagination {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 4px;
	margin: 32px 0;
}

.moosoft-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 10px;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 8px;
	color: var(--text);
	text-decoration: none;
	font-size: 14px;
	font-weight: 600;
}

.moosoft-pagination a.page-numbers:hover {
	border-color: var(--primary);
	color: var(--primary);
}

.moosoft-pagination .page-numbers.current {
	background: var(--primary);
	color: #fff;
	border-color: var(--primary);
}

.moosoft-pagination .page-numbers.dots {
	border-color: transparent;
	background: transparent;
}

/* ============================================================
   RESPONSIVE
============================================================ */
@media (max-width: 768px) {
	.search-title,
	.archive-title {
		font-size: 24px;
	}

	.error-code {
		font-size: 56px;
	}

	.error-title {
		font-size: 22px;
	}

	.post h1 {
		font-size: 28px;
	}

	.post-featured-image {
		margin: 16px 0 24px;
		border-radius: 12px;
	}

	.post-content {
		font-size: 16px;
	}

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

	.author-profile {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
}

/* ============================================================
   POPULAR / DEVELOPER / FEATURE LISTINGS
============================================================ */
.popular-main,
.developer-main {
	padding: 32px 0;
}

.popular-crumb,
.developer-crumb {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--text-2);
	margin-bottom: 16px;
	flex-wrap: wrap;
}

.popular-crumb a,
.developer-crumb a {
	color: inherit;
	text-decoration: none;
}

.popular-crumb a:hover,
.developer-crumb a:hover {
	color: var(--primary);
}

.popular-header,
.developer-header {
	margin-bottom: 22px;
}

.popular-header h1,
.developer-header h1 {
	margin: 0 0 6px;
	font-size: 32px;
}

.popular-subtitle,
.developer-count {
	color: var(--text-2);
	font-size: 15px;
	margin: 0;
}

/* Tabs */
.popular-tabs {
	display: flex;
	gap: 4px;
	margin-bottom: 24px;
	border-bottom: 1px solid var(--border);
	overflow-x: auto;
	scrollbar-width: none;
}

.popular-tabs::-webkit-scrollbar {
	display: none;
}

.popular-tab {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 12px 16px;
	text-decoration: none;
	color: var(--text-2);
	font-weight: 600;
	font-size: 14px;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	white-space: nowrap;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.popular-tab:hover {
	color: var(--text);
}

.popular-tab.is-active {
	color: var(--primary);
	border-bottom-color: var(--primary);
}

.popular-tab svg {
	flex-shrink: 0;
}

/* Grid */
.popular-grid,
.developer-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
	gap: 16px;
	margin-bottom: 32px;
}

.popular-card {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
	padding: 16px;
	display: flex;
	gap: 14px;
	position: relative;
	transition: border-color 0.15s ease, transform 0.15s ease;
}

.popular-card:hover {
	border-color: var(--primary);
	transform: translateY(-1px);
}

.popular-rank {
	position: absolute;
	top: 12px;
	right: 12px;
	font-size: 12px;
	font-weight: 800;
	color: var(--text-3);
	background: var(--bg-soft);
	padding: 2px 8px;
	border-radius: var(--r-full);
}

.popular-icon-link {
	flex-shrink: 0;
	line-height: 0;
}

.popular-icon {
	width: 64px;
	height: 64px;
	border-radius: var(--r-md);
	object-fit: cover;
	display: block;
}

.popular-icon-placeholder {
	background: var(--bg-soft);
	color: var(--text-3);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 24px;
}

.popular-info {
	flex: 1;
	min-width: 0;
	padding-right: 36px;
}

.popular-title-link {
	text-decoration: none;
	color: inherit;
}

.popular-title {
	margin: 0 0 4px;
	font-size: 16px;
	font-weight: 700;
	color: var(--text);
}

.popular-title-link:hover .popular-title {
	color: var(--primary);
}

.popular-excerpt {
	margin: 0 0 8px;
	color: var(--text-2);
	font-size: 13px;
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.popular-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	font-size: 12px;
	color: var(--text-2);
}

.popular-meta svg {
	vertical-align: middle;
}

.popular-rating {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: var(--gold);
	font-weight: 700;
}

.popular-rating .popular-votes {
	color: var(--text-3);
	font-weight: 400;
}

.popular-downloads {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.popular-cat {
	display: inline-block;
	background: var(--primary-light);
	color: var(--primary);
	padding: 2px 8px;
	border-radius: 4px;
	text-decoration: none;
	font-weight: 600;
	font-size: 11px;
}

.popular-empty,
.developer-empty {
	text-align: center;
	padding: 60px 20px;
	color: var(--text-2);
}

@media (max-width: 768px) {
	.popular-header h1,
	.developer-header h1 {
		font-size: 24px;
	}

	.popular-grid,
	.developer-grid {
		grid-template-columns: 1fr;
	}

	.popular-card {
		padding: 12px;
		gap: 12px;
	}

	.popular-icon {
		width: 56px;
		height: 56px;
	}

	.popular-info {
		padding-right: 0;
	}

	.popular-rank {
		position: static;
		align-self: flex-start;
	}
}

/* ============================================================
   ABOUT PAGE
============================================================ */
.about-page .about-hero {
	padding: 72px 0 52px;
	text-align: center;
	background: radial-gradient(circle at 30% 30%, var(--primary-glow) 0%, transparent 50%),
		radial-gradient(circle at 70% 60%, rgba(124, 58, 237, 0.08) 0%, transparent 50%);
}

.about-page .hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 14px;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--r-full);
	font-size: 13px;
	font-weight: 600;
	color: var(--text-2);
	margin-bottom: 20px;
	box-shadow: var(--shadow-sm);
}

.about-page .hero-badge svg {
	color: var(--success);
}

.about-page .about-hero h1 {
	font-size: 52px;
	line-height: 1.05;
	margin: 0 auto 18px;
	max-width: 900px;
	font-weight: 800;
}

.about-page .about-hero h1 .gradient {
	background: linear-gradient(135deg, var(--primary), var(--purple), var(--pink));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.about-page .about-subtitle {
	font-size: 19px;
	color: var(--text-2);
	max-width: 680px;
	margin: 0 auto;
	line-height: 1.5;
}

.about-page .stats-row {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--r-2xl);
	padding: 32px;
	margin-top: 32px;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	box-shadow: var(--shadow-md);
}

.about-page .stat {
	text-align: center;
	padding: 0 12px;
	border-right: 1px solid var(--border);
}

.about-page .stat:last-child {
	border-right: 0;
}

.about-page .stat-num {
	font-family: var(--font-display);
	font-size: 44px;
	font-weight: 800;
	line-height: 1;
	background: linear-gradient(135deg, var(--primary), var(--purple));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.about-page .stat-label {
	font-size: 13px;
	color: var(--text-3);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-top: 8px;
}

.about-page .section {
	padding: 60px 0;
}

.about-page .section-alt {
	background: var(--surface);
}

.about-page .section h2 {
	font-size: 34px;
	margin-bottom: 12px;
	text-align: center;
	line-height: 1.1;
}

.about-page .section-subtitle {
	font-size: 17px;
	color: var(--text-2);
	text-align: center;
	max-width: 600px;
	margin: 0 auto 36px;
	line-height: 1.5;
}

.about-page .story-content {
	max-width: 760px;
	margin: 0 auto;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--r-2xl);
	padding: 40px;
	box-shadow: var(--shadow-sm);
	color: var(--text-2);
	line-height: 1.8;
}

.about-page .story-content p {
	margin-bottom: 16px;
}

.about-page .story-content p:last-child {
	margin-bottom: 0;
}

.about-page .features-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}

.about-page .feature-card {
	background: var(--surface);
	border: 1.5px solid var(--border);
	border-radius: var(--r-xl);
	padding: 28px;
	transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.about-page .feature-card:hover {
	border-color: var(--primary);
	transform: translateY(-4px);
	box-shadow: var(--shadow-lg);
}

.about-page .feature-icon {
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: var(--feat-bg, var(--primary-light));
	color: var(--feat-color, var(--primary));
	display: grid;
	place-items: center;
	margin-bottom: 16px;
}

.about-page .feature-card h3 {
	font-size: 18px;
	margin-bottom: 8px;
}

.about-page .feature-card p {
	color: var(--text-2);
	font-size: 14px;
	line-height: 1.6;
	margin: 0;
}

.about-page .feature-card.c1 { --feat-color: var(--success); --feat-bg: var(--success-light); }
.about-page .feature-card.c2 { --feat-color: var(--primary); --feat-bg: var(--primary-light); }
.about-page .feature-card.c3 { --feat-color: var(--purple); --feat-bg: var(--purple-light); }
.about-page .feature-card.c4 { --feat-color: var(--accent); --feat-bg: var(--accent-light); }
.about-page .feature-card.c5 { --feat-color: var(--pink); --feat-bg: var(--pink-light); }
.about-page .feature-card.c6 { --feat-color: var(--gold); --feat-bg: var(--gold-light); }

.about-page .timeline {
	max-width: 760px;
	margin: 0 auto;
	position: relative;
}

.about-page .timeline::before {
	content: '';
	position: absolute;
	left: 35px;
	top: 0;
	bottom: 0;
	width: 2px;
	background: linear-gradient(180deg, var(--primary), var(--purple));
}

.about-page .timeline-item {
	display: grid;
	grid-template-columns: 72px 1fr;
	gap: 24px;
	margin-bottom: 28px;
}

.about-page .timeline-item:last-child {
	margin-bottom: 0;
}

.about-page .timeline-num {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--primary), var(--purple));
	color: #fff;
	font-family: var(--font-display);
	font-size: 28px;
	font-weight: 800;
	display: grid;
	place-items: center;
	position: relative;
	z-index: 1;
}

.about-page .timeline-content {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--r-xl);
	padding: 22px;
}

.about-page .timeline-content h3 {
	font-size: 18px;
	margin-bottom: 6px;
}

.about-page .timeline-content p {
	color: var(--text-2);
	font-size: 14px;
	line-height: 1.6;
	margin: 0;
}

.about-page .values-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
}

.about-page .value-card {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--r-lg);
	padding: 24px 20px;
	text-align: center;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.about-page .value-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-md);
}

.about-page .value-icon {
	display: inline-grid;
	place-items: center;
	width: 56px;
	height: 56px;
	margin-bottom: 12px;
	border-radius: 14px;
	background: var(--primary-light);
	color: var(--primary);
}

.about-page .value-card h4 {
	font-size: 15px;
	margin-bottom: 6px;
	font-weight: 700;
}

.about-page .value-card p {
	font-size: 13px;
	color: var(--text-2);
	line-height: 1.5;
	margin: 0;
}

.about-page .about-cta-wrap {
	margin-top: 48px;
}

.about-page .cta-section {
	background: linear-gradient(135deg, var(--primary) 0%, var(--purple) 100%);
	border-radius: var(--r-2xl);
	padding: 56px 48px;
	color: #fff;
	text-align: center;
	position: relative;
	overflow: hidden;
}

.about-page .cta-section h2 {
	color: #fff;
	font-size: 34px;
	margin-bottom: 12px;
}

.about-page .cta-section p {
	font-size: 17px;
	opacity: 0.92;
	max-width: 500px;
	margin: 0 auto 24px;
	line-height: 1.5;
}

.about-page .cta-actions {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
}

.about-page .cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 13px 26px;
	background: #fff;
	color: var(--primary-dark);
	border-radius: var(--r-md);
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
	transition: transform 0.15s ease;
}

.about-page .cta-btn:hover {
	transform: translateY(-2px);
}

.about-page .cta-btn-outline {
	background: transparent;
	color: #fff;
	border: 2px solid rgba(255, 255, 255, 0.45);
}

@media (max-width: 900px) {
	.about-page .about-hero h1 { font-size: 34px; }
	.about-page .about-subtitle { font-size: 16px; }
	.about-page .stats-row { grid-template-columns: 1fr 1fr; gap: 20px; }
	.about-page .stat { border-right: 0; }
	.about-page .stat-num { font-size: 32px; }
	.about-page .section h2 { font-size: 24px; }
	.about-page .cta-section h2 { font-size: 24px; }
	.about-page .story-content { padding: 24px; }
	.about-page .features-grid { grid-template-columns: 1fr; }
	.about-page .values-grid { grid-template-columns: 1fr 1fr; }
	.about-page .cta-section { padding: 40px 24px; }
	.about-page .timeline-item { grid-template-columns: 56px 1fr; gap: 16px; }
	.about-page .timeline::before { left: 27px; }
	.about-page .timeline-num { width: 56px; height: 56px; font-size: 22px; }
}
