/*
 * Blog styling for Nelson Family Village.
 *
 * Migrated from nfv_blog_css() inside Code Snippets id 33 on 2026-08-16. The RULES are verbatim;
 * only the delivery changed, from a PHP string concatenated at runtime into a real stylesheet
 * the browser can cache.
 *
 * Snippet 33 itself is deleted rather than migrated. It rendered /blog/ and single posts directly
 * on template_redirect, which is why the footer was uneditable on exactly the two routes the
 * family's researcher publishes into. templates/home.html and templates/single.html replace it.
 * These class names survive because those templates reuse them, so the blog keeps the site's
 * typography rather than falling back to stock Twenty Twenty-Five.
 *
 * The --nfv-* custom properties are defined in nfv_shell_css() (inc/chrome.php), which is
 * enqueued on the 'nfv-bootstrap' handle this stylesheet declares as a dependency.
 */

.nfv-hero { background: var(--nfv-soft); border-color: var(--nfv-line) !important; }
.nfv-hero-title { font-size: clamp(1.9rem, 4vw, 2.7rem); font-weight: 700; letter-spacing: -.02em; color: var(--nfv-ink); }
.nfv-hero-sub { color: var(--nfv-muted); max-width: 44rem; }

.nfv-eyebrow { font-size: .72rem; letter-spacing: .09em; text-transform: uppercase; color: var(--nfv-accent); font-weight: 600; margin-bottom: .4rem; }
.nfv-eyebrow-strong { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--nfv-muted); font-weight: 700; }

.nfv-card { padding-bottom: 2rem; margin-bottom: 2rem; border-bottom: 1px solid var(--nfv-line); }
.nfv-card:last-of-type { border-bottom: 0; }
.nfv-card-title { font-weight: 700; letter-spacing: -.01em; line-height: 1.25; margin: 0 0 .5rem; }
.nfv-card-title a { color: var(--nfv-ink); text-decoration: none; }
.nfv-card-title a:hover { color: var(--nfv-accent); }
.nfv-card-featured .nfv-card-title { font-size: clamp(1.5rem, 3vw, 2rem); }
.nfv-card:not(.nfv-card-featured) .nfv-card-title { font-size: 1.2rem; }
.nfv-excerpt { color: var(--nfv-muted); margin-bottom: .5rem; }
.nfv-rule { border-color: var(--nfv-line); opacity: 1; }

.nfv-side-heading { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--nfv-muted); font-weight: 700; margin-bottom: .6rem; }
.nfv-side-link { color: var(--nfv-ink); text-decoration: none; }
.nfv-side-link:hover { color: var(--nfv-accent); }

.nfv-article { max-width: 44rem; }
.nfv-single-title { font-size: clamp(1.7rem, 3.6vw, 2.4rem); font-weight: 700; letter-spacing: -.02em; }
.nfv-content { font-size: 1.06rem; line-height: 1.75; }
.nfv-content h2, .nfv-content h3 { margin-top: 2rem; font-weight: 700; }

.nfv-pagination ul { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 0; }
.nfv-pagination a, .nfv-pagination span { display: inline-block; padding: .25rem .6rem; border: 1px solid var(--nfv-line); border-radius: .3rem; text-decoration: none; color: var(--nfv-ink); }
.nfv-pagination .current { background: var(--nfv-accent); border-color: var(--nfv-accent); color: #fff; }

@media (min-width: 992px) {
	.nfv-sidebar { position: sticky; top: 1.5rem; }
}

/*
 * Block-path additions. Snippet 33 emitted its own hand-built markup, so these selectors did not
 * need to exist. The core blocks in home.html / single.html carry their own wrappers, and these
 * make them adopt the classes above rather than Twenty Twenty-Five's spacing scale.
 */
.nfv-main .wp-block-post-template { list-style: none; padding-left: 0; margin: 0; }
.nfv-main .wp-block-post-title { margin: 0 0 .5rem; }
.nfv-main .wp-block-post-date { margin: 0; }
.nfv-main .wp-block-post-terms a { color: inherit; text-decoration: none; }
.nfv-main .wp-block-post-terms a:hover { text-decoration: underline; }
.nfv-main .wp-block-query-pagination { gap: .5rem; }
.nfv-main .wp-block-query-pagination a { color: var(--nfv-ink); text-decoration: none; }
.nfv-main .wp-block-query-pagination a:hover { color: var(--nfv-accent); }
.nfv-main .wp-block-post-featured-image img { border-radius: .375rem; }
