/* ==========================================================================
   Generic page / legal / 404 / search: page.php, 404.php, search.php,
   index.php (safety-net loop).

   Loaded after industry.css (see inc/page.php), so <main> always carries
   BOTH .wf-industry and .wf-page -- the hero, card grid and FAQ primitives
   come from industry.css; everything scoped .wf-page / .wf-prose below is
   this template family's own.

   SPECIFICITY NOTE -- same as industry.css: Elementor's kit stylesheet ships
   element rules at 0-1-1 (.elementor-kit-6 a / img), so the `body .wf-page`
   prefix on the resets below is load-bearing, not cosmetic.
   ========================================================================== */

/* ---------- Scope resets ---------- */
body .wf-page a {
	color: var(--wf-blue);
}

body .wf-page a:hover,
body .wf-page a:focus-visible {
	color: var(--wf-cyan);
}

.wf-page img {
	border-radius: 0;
}

/* ---------- "Last updated" line (legal pages) ---------- */
.wf-page__updated {
	margin: 0;
	padding-block: 20px;
	font: 500 .9375rem/1.5 var(--wf-font-body);
	color: var(--wf-text-mute);
}

/* ---------- Prose column (the_content() + legal blocks) ---------- */
.wf-prose {
	max-width: 780px;
	margin-inline: auto;
}

.wf-prose > :first-child {
	margin-top: 0;
}

.wf-prose > :last-child {
	margin-bottom: 0;
}

.wf-prose p,
.wf-prose li {
	font: 400 1.0625rem/1.7 var(--wf-font-body);
	color: var(--wf-text);
}

.wf-prose p {
	margin: 0 0 1.25em;
}

.wf-prose h2 {
	font: 700 clamp(1.75rem, 3.5vw, 2.5rem)/1.1 var(--wf-font-display);
	color: var(--wf-text-dark);
	margin: 1.8em 0 .6em;
}

.wf-prose h3 {
	font: 700 1.5rem/1.2 var(--wf-font-display);
	color: var(--wf-text-dark);
	margin: 1.5em 0 .5em;
}

.wf-prose ul,
.wf-prose ol {
	margin: 0 0 1.25em;
	padding-left: 1.5em;
}

.wf-prose li + li {
	margin-top: .4em;
}

.wf-page .wf-prose a {
	color: var(--wf-blue);
	text-decoration: underline;
}

.wf-page .wf-prose a:hover,
.wf-page .wf-prose a:focus-visible {
	color: var(--wf-cyan);
}

.wf-prose blockquote,
.wf-prose .wp-block-quote {
	margin: 1.75em 0;
	padding: 4px 0 4px 24px;
	border-left: 3px solid var(--wf-blue);
	font-style: italic;
	color: var(--wf-text-dark);
}

.wf-prose .wp-block-quote cite {
	display: block;
	margin-top: .5em;
	font: 600 .875rem/1.4 var(--wf-font-body);
	font-style: normal;
	color: var(--wf-text-mute);
}

.wf-prose hr {
	margin: 2.5em 0;
	border: 0;
	border-top: 1px solid var(--wf-border);
}

.wf-prose img,
.wf-prose .wp-block-image img {
	display: block;
	max-width: 100%;
	height: auto;
	border-radius: var(--wf-radius-md);
}

.wf-prose figure {
	margin: 1.75em 0;
}

.wf-prose figcaption {
	margin-top: .6em;
	font: 400 .875rem/1.5 var(--wf-font-body);
	color: var(--wf-text-mute);
	text-align: center;
}

.wf-prose .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	font: 600 1rem/1 var(--wf-font-body);
	text-transform: uppercase;
	letter-spacing: .02em;
	padding: 12px 20px;
	border-radius: var(--wf-radius-sm);
	background: linear-gradient(90deg, var(--wf-blue) 0%, var(--wf-cyan) 100%);
	color: var(--wf-white);
	text-decoration: none;
	transition: background var(--wf-dur) var(--wf-ease), color var(--wf-dur) var(--wf-ease);
}

.wf-prose .wp-block-button__link:hover,
.wf-prose .wp-block-button__link:focus-visible {
	background: var(--wf-gold);
	color: var(--wf-navy);
}

/* Tables: wrapped in .wf-table-wrap by inc/page.php's the_content filter so a
   wide table scrolls instead of breaking the layout. */
.wf-table-wrap {
	overflow-x: auto;
	margin: 1.75em 0;
}

.wf-prose table {
	width: 100%;
	border-collapse: collapse;
	font: 400 .9375rem/1.6 var(--wf-font-body);
}

.wf-prose th,
.wf-prose td {
	padding: 10px 14px;
	border: 1px solid var(--wf-border);
	text-align: left;
	vertical-align: top;
}

.wf-prose th {
	background: var(--wf-bg);
	color: var(--wf-text-dark);
	font-weight: 700;
}

/* ---------- Search form (searchform.php) ---------- */
.wf-page__search {
	margin-top: 24px;
}

.wf-search-form {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	max-width: 480px;
}

.wf-search-form input[type="search"] {
	flex: 1 1 220px;
	min-width: 0;
	padding: 12px 16px;
	font: 400 1rem/1.4 var(--wf-font-body);
	color: var(--wf-text-dark);
	background: var(--wf-white);
	border: 1px solid var(--wf-border);
	border-radius: var(--wf-radius-sm);
}

.wf-search-form input[type="search"]:focus-visible {
	outline: 2px solid var(--wf-cyan);
	outline-offset: 2px;
	border-color: var(--wf-blue);
}

/* ---------- Search / archive results (search.php, index.php) ---------- */
.wf-page__results {
	display: grid;
	gap: 32px;
	max-width: 780px;
}

.wf-page__result {
	padding-bottom: 32px;
	border-bottom: 1px solid var(--wf-border);
}

.wf-page__result:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.wf-page__result-type {
	margin: 0 0 8px;
}

.wf-page__result-title {
	margin: 0;
}

.wf-page__result-title a {
	color: var(--wf-text-dark);
}

.wf-page__result-title a:hover,
.wf-page__result-title a:focus-visible {
	color: var(--wf-blue);
}

.wf-page__result-excerpt {
	margin: 12px 0 0;
	font: 400 1.0625rem/1.7 var(--wf-font-body);
	color: var(--wf-text);
}

.wf-page__result-date {
	margin: 10px 0 0;
	font: 400 .875rem/1.2 var(--wf-font-body);
	color: var(--wf-text-mute);
}

/* ---------- Pagination (template-parts/page/pagination.php) ---------- */
.wf-page__pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: clamp(32px, 4vw, 48px);
}

.wf-page__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.25rem;
	height: 2.25rem;
	padding: 0 .75rem;
	border: 1px solid var(--wf-border);
	border-radius: var(--wf-radius-sm);
	font: 600 .875rem/1 var(--wf-font-body);
	color: var(--wf-text);
	transition: border-color var(--wf-dur) var(--wf-ease), color var(--wf-dur) var(--wf-ease);
}

.wf-page__pagination a.page-numbers:hover,
.wf-page__pagination a.page-numbers:focus-visible {
	border-color: var(--wf-blue);
	color: var(--wf-blue);
}

.wf-page__pagination .page-numbers.current {
	font-weight: 800;
	color: var(--wf-text-dark);
	border-color: var(--wf-text-dark);
}

.wf-page__pagination .page-numbers.dots {
	border-color: transparent;
}
