/* Non-cast content components — posts, archives, search, 404, comments.
 *
 * Styled with the design tokens from the theme base style.css (PLAN.md §5b /
 * AI_GUIDE.md §2). This stylesheet is enqueued only on non-cast pages
 * (inc/setup.php — cast pages render slots, never these classes), so it never
 * ships on a cast page.
 */

/* ---- Singular entry -------------------------------------------------- */
.entry { padding-block: var(--space-8); }
.entry-header { margin-bottom: var(--space-6); }
.entry-title { font-size: var(--text-3xl); line-height: var(--leading-tight); margin: 0; }
.entry-content { font-size: var(--text-base); line-height: 1.7; }
.entry-content > * + * { margin-top: var(--space-4); }
.entry-content h2 { font-size: var(--text-2xl); margin-top: var(--space-8); }
.entry-content h3 { font-size: var(--text-xl); margin-top: var(--space-6); }
.entry-content a { color: var(--color-primary); }
.entry-content img { border-radius: var(--radius-lg); margin-block: var(--space-4); }
.entry-content blockquote {
	border-left: 3px solid var(--color-primary);
	padding-left: var(--space-4);
	color: var(--color-muted);
	margin: var(--space-6) 0;
}
.entry-content pre,
.entry-content code {
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	background: var(--color-surface);
	border-radius: var(--radius);
}
.entry-content code { padding: 0.1em 0.4em; }
.entry-content pre { padding: var(--space-4); overflow-x: auto; }
.entry-content pre code { padding: 0; background: none; }

/* wp_link_pages output. */
.page-links { margin-top: var(--space-8); clear: both; }
.page-links a,
.page-links > span {
	display: inline-block;
	padding: var(--space-1) var(--space-3);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	margin-inline: var(--space-1);
}
.page-links a { color: var(--color-primary); text-decoration: none; }

/* ---- Listing --------------------------------------------------------- */
.post-list { padding-block: var(--space-8); display: flex; flex-direction: column; gap: var(--space-8); }
.post-list__header { margin-bottom: var(--space-4); }
.post-list__title { font-size: var(--text-3xl); line-height: var(--leading-tight); margin: 0; }
.post-list__title span { color: var(--color-muted); }
.post-list__desc { color: var(--color-muted); margin-top: var(--space-2); }

.post-card {
	padding: var(--space-6);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	background: var(--color-bg);
}
.post-card__header { display: flex; flex-direction: column; gap: var(--space-2); }
.post-card__title { font-size: var(--text-xl); margin: 0; line-height: var(--leading-tight); }
.post-card__title a { color: var(--color-text); text-decoration: none; }
.post-card__title a:hover { color: var(--color-primary); }
.post-card__meta { font-size: var(--text-sm); color: var(--color-muted); }
.post-card__excerpt { margin-top: var(--space-4); color: var(--color-text); }
.post-card__excerpt p { margin: 0; }

/* the_posts_pagination() emits .pagination > .nav-links > .page-numbers. */
.pagination { margin-top: var(--space-8); }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.pagination .page-numbers {
	display: inline-block;
	padding: var(--space-1) var(--space-3);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	text-decoration: none;
	color: var(--color-text);
}
.pagination a.page-numbers:hover { color: var(--color-primary); border-color: var(--color-primary); }
.pagination .page-numbers.current {
	background: var(--color-primary);
	color: var(--color-primary-text);
	border-color: var(--color-primary);
}

/* ---- 404 / no-results + search form --------------------------------- */
.no-results { padding-block: var(--space-12); text-align: center; }
.no-results__title { font-size: var(--text-3xl); margin: 0 0 var(--space-4); }

.search-form { display: flex; gap: var(--space-2); max-width: 32rem; margin: var(--space-6) auto 0; }
.search-form .search-field {
	flex: 1;
	padding: var(--space-2) var(--space-3);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	font: inherit;
}
.search-form .search-submit {
	padding: var(--space-2) var(--space-4);
	border: 0;
	border-radius: var(--radius);
	background: var(--color-primary);
	color: var(--color-primary-text);
	font: inherit;
	cursor: pointer;
}
.search-form .search-submit:hover { opacity: 0.9; }

/* ---- Comments (comments_template) — minimal -------------------------- */
.comments-area { margin-top: var(--space-12); }
.comments-title,
.comment-reply-title { font-size: var(--text-xl); margin: 0 0 var(--space-4); }
.comment-list { list-style: none; padding: 0; margin: 0 0 var(--space-8); display: flex; flex-direction: column; gap: var(--space-4); }
.comment-body { padding: var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius); }
.comment-author { font-weight: var(--weight-medium); }
.comment-form label { display: block; font-size: var(--text-sm); color: var(--color-muted); margin-bottom: var(--space-1); }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	width: 100%;
	padding: var(--space-2) var(--space-3);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	font: inherit;
}
.comment-form .submit {
	padding: var(--space-2) var(--space-6);
	border: 0;
	border-radius: var(--radius);
	background: var(--color-primary);
	color: var(--color-primary-text);
	font: inherit;
	cursor: pointer;
}