/* Archive / search / 404 templates (mobile audit 2026-09-15, H1-H4).
 *
 * templates/archive.html, search.html and 404.html reuse the single-post
 * hero (.cmp-post-hero) and the News page card (.cmp-news-card, styled in
 * cmp-news.css). This partial covers only what those templates add: the
 * pagination row (audit H4 measured 9x20px number targets), the site search
 * form on the 404 and empty-search states, and the excerpt line the cards
 * gain on archives.
 */

.cmp-archive-hero {
	padding-bottom: 0 !important;
}

.cmp-archive-hero .wp-block-query-title {
	text-wrap: balance;
	overflow-wrap: anywhere;
}

/* Excerpt inside the card: keep the card's flex column from stretching it */
.cmp-news-card .cmp-news-excerpt p {
	margin: 0;
}

.cmp-news-card .cmp-news-excerpt .wp-block-post-excerpt__more-text {
	display: none;
}

/* Pagination: every target at least 44px, white outline on navy */
.cmp-archive-pagination {
	gap: 8px !important;
	margin-top: var(--wp--preset--spacing--50);
	font-family: var(--wp--preset--font-family--dm-sans);
	font-weight: 700;
	font-size: 0.875rem;
}

.cmp-archive-pagination .wp-block-query-pagination-numbers {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 8px;
}

.cmp-archive-pagination .page-numbers,
.cmp-archive-pagination .wp-block-query-pagination-previous,
.cmp-archive-pagination .wp-block-query-pagination-next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid rgb(255 255 255 / 35%);
	border-radius: 4px;
	color: var(--wp--preset--color--theme-01);
	text-decoration: none;
	transition: border-color 160ms ease, background-color 160ms ease;
}

.cmp-archive-pagination a.page-numbers:hover,
.cmp-archive-pagination a.page-numbers:focus-visible,
.cmp-archive-pagination .wp-block-query-pagination-previous:hover,
.cmp-archive-pagination .wp-block-query-pagination-next:hover,
.cmp-archive-pagination .wp-block-query-pagination-previous:focus-visible,
.cmp-archive-pagination .wp-block-query-pagination-next:focus-visible {
	border-color: var(--wp--preset--color--theme-01);
	background-color: var(--wp--preset--color--theme-04);
}

.cmp-archive-pagination .page-numbers.current {
	border-color: var(--cmp-accent-blue, #1897ff);
	background-color: var(--cmp-accent-blue, #1897ff);
	color: var(--wp--preset--color--theme-02);
}

.cmp-archive-pagination .page-numbers.dots {
	border-color: transparent;
	min-width: 24px;
	padding: 0;
}

/* Site search form (404 + empty search): dark field, filled button */
.cmp-site-search .wp-block-search__inside-wrapper {
	border: 1px solid rgb(255 255 255 / 35%);
	border-radius: 4px;
	background-color: var(--wp--preset--color--theme-04);
	padding: 4px;
}

.cmp-site-search .wp-block-search__input {
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--theme-01);
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: 1rem;
	min-height: 44px;
	padding: 0 12px;
}

.cmp-site-search .wp-block-search__input::placeholder {
	color: var(--wp--preset--color--theme-05);
}

.cmp-site-search .wp-block-search__input:focus-visible {
	outline: 2px solid var(--cmp-accent-blue, #1897ff);
	outline-offset: 2px;
}

.cmp-site-search .wp-block-search__button {
	margin-left: 4px;
	min-height: 44px;
	padding: 0 20px;
	border: 0;
	border-radius: 4px;
	background-color: var(--cmp-accent-blue, #1897ff);
	color: var(--wp--preset--color--theme-02);
	font-family: var(--wp--preset--font-family--dm-sans);
	font-weight: 700;
	font-size: 0.875rem;
	cursor: pointer;
}

.cmp-site-search .wp-block-search__button:hover,
.cmp-site-search .wp-block-search__button:focus-visible {
	background-color: var(--wp--preset--color--theme-01);
}

.cmp-search-empty,
.cmp-404-body {
	margin-left: auto;
	margin-right: auto;
}

@media (max-width: 781px) {
	.cmp-archive-pagination .wp-block-query-pagination-previous,
	.cmp-archive-pagination .wp-block-query-pagination-next {
		flex-basis: calc(50% - 4px);
	}

	.cmp-archive-pagination .wp-block-query-pagination-numbers {
		flex-basis: 100%;
		justify-content: center;
		order: -1;
	}
}
