/**
 * Est. 1973 blog-family component layer (Wave 3.4).
 *
 * Re-skins the EXISTING blog DOM (index.php listing + partials/loop-content,
 * partials/search-bar [.search_bar — the real index/archive filter row],
 * partials/blog-title-bar [.blog_title_bar/.right-title-bar — rendered only
 * on single.php, always display:none there per ccs-cleanup.css; styled here
 * only for selector parity with the critical-CSS variants, not because it is
 * ever visible], partials/pagination [fx_load_more_pagination / wp-pagenavi],
 * partials/popular-posts, partials/table-of-contents, and single.php's
 * .blog-single-container article) onto the Est. 1973 tokens. No
 * content, heading text, or links are introduced by this file, and no new
 * markup is added — the masthead kicker/seal on the index are the only
 * additive markup, and those are gated in partials/masthead.php exactly like
 * the service/city waves.
 *
 * Scoped under body.ccs-est1973 AND only enqueued on ccs_is_blog_family()
 * requests (see ccs-est1973-flag.php), so this never reaches service/city/
 * combo pages before their own wave.
 */

/* ---- index: title bar / filter + search row ---- */
body.ccs-est1973 .blog_title_bar h2 {
	font-family: var(--e73-font-slab);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .015em;
	color: var(--e73-ink);
}

body.ccs-est1973 .search_bar select,
body.ccs-est1973 .right-title-bar select,
body.ccs-est1973 .blog_title_bar select,
body.ccs-est1973 .search_form input.search_bar_input {
	font-family: var(--e73-font-serif);
	background: var(--e73-porcelain);
	border-color: var(--e73-line);
	border-radius: var(--e73-radius-sm);
	color: var(--e73-body);
}

body.ccs-est1973 .search_form input.search_bar_submit {
	font-family: var(--e73-font-slab);
	letter-spacing: .06em;
	background: var(--e73-teal);
	border-color: var(--e73-teal);
	color: var(--e73-porcelain);
}

/* ---- index + popular-posts: card grid ---- */
body.ccs-est1973 .blog-post__item {
	background: var(--e73-porcelain);
	border: 2.5px solid var(--e73-line);
	border-radius: var(--e73-radius-lg);
	box-shadow: var(--e73-shadow-card);
}

body.ccs-est1973 .blog-post__img-container.blog-post__img--fallback {
	background: linear-gradient(135deg, var(--e73-dark) 0%, var(--e73-teal-2) 55%, var(--e73-teal) 100%);
}

body.ccs-est1973 .blog-post__tag {
	font-family: var(--e73-font-slab);
	font-weight: 700;
	font-size: 11px;
	letter-spacing: .1em;
	background: var(--e73-teal);
	color: var(--e73-porcelain);
	padding: 5px 10px;
	border-radius: var(--e73-radius-sm);
}

body.ccs-est1973 .blog-post__title,
body.ccs-est1973 .blog-post__title a {
	font-family: var(--e73-font-slab);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .015em;
	color: var(--e73-ink);
}

body.ccs-est1973 .blog-post__excerpt,
body.ccs-est1973 .blog-post__excerpt a {
	font-family: var(--e73-font-serif);
	color: var(--e73-body);
}

body.ccs-est1973 .blog-post__bottom {
	background: var(--e73-dark);
	color: #D9CDB4;
	border-top-color: #453A2B;
}

body.ccs-est1973 .blog-post__bottom__date,
body.ccs-est1973 .blog-post__bottom__reading_time {
	font-family: var(--e73-font-slab);
	letter-spacing: .04em;
}

body.ccs-est1973 .popular-posts h2 {
	font-family: var(--e73-font-slab);
	color: var(--e73-ink);
	text-transform: uppercase;
	letter-spacing: .015em;
}

body.ccs-est1973 .popular-posts h2::after {
	content: "";
	display: block;
	width: 64px;
	border-bottom: 2.5px dotted var(--e73-brass);
	margin-top: 10px;
}

/* ---- pagination (fx_load_more_pagination shortcode: .load-more__btn +
   wp_pagenavi() markup) ---- */
body.ccs-est1973 .load-more {
	/* The legacy widget reveals its counter, progress, and 52px action at
	   window.load. Reserve that final footprint so cold visits do not move the
	   listing or footer when the controls initialize. */
	min-height: 125px;
}

body.ccs-est1973 .load-more__btn {
	font-family: var(--e73-font-slab);
	letter-spacing: .06em;
	border-radius: var(--e73-radius-sm);
	background: var(--e73-teal);
	box-shadow: var(--e73-shadow-btn-teal);
}

body.ccs-est1973 .wp-pagenavi .page,
body.ccs-est1973 .wp-pagenavi .nextpostslink,
body.ccs-est1973 .wp-pagenavi .previouspostslink {
	font-family: var(--e73-font-slab);
	border-color: var(--e73-line);
	border-radius: var(--e73-radius-sm);
	color: var(--e73-ink);
	background: var(--e73-porcelain);
}

body.ccs-est1973 .wp-pagenavi span.current {
	font-family: var(--e73-font-slab);
	background: var(--e73-teal);
	border-color: var(--e73-teal);
	color: var(--e73-porcelain);
}

/* ---- single post: typography + meta row ---- */
body.ccs-est1973 .blog-single-container h1,
body.ccs-est1973 .single-post h1,
body.ccs-est1973 .single h1 {
	font-family: var(--e73-font-slab);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .015em;
	color: var(--e73-ink);
}

body.ccs-est1973 .blog-single-container h2,
body.ccs-est1973 .popular-posts h2.toc-title {
	font-family: var(--e73-font-slab);
	color: var(--e73-ink);
	text-transform: uppercase;
	letter-spacing: .015em;
}

body.ccs-est1973 .blog-single-container h2::after {
	content: "";
	display: block;
	width: 64px;
	border-bottom: 2.5px dotted var(--e73-brass);
	margin-top: 10px;
}

body.ccs-est1973 .blog-single-container h3 {
	font-family: var(--e73-font-slab);
	color: var(--e73-teal);
	letter-spacing: .01em;
}

body.ccs-est1973 .blog-single-container p,
body.ccs-est1973 .blog-single-container li {
	font-family: var(--e73-font-serif);
	color: var(--e73-body);
}

body.ccs-est1973 .blog-single-meta {
	border-bottom: 1.5px dashed var(--e73-line);
	padding-bottom: 20px;
}

body.ccs-est1973 .blog-meta__reading_time,
body.ccs-est1973 .blog-meta__date {
	font-family: var(--e73-font-slab);
	letter-spacing: .04em;
	color: var(--e73-muted);
}

body.ccs-est1973 .blog-meta__divider {
	fill: var(--e73-brass);
}

/* ---- single post: prev/next pagination ---- */
body.ccs-est1973 .post-pagination .btn-post-pagination {
	background: var(--e73-porcelain);
	border: 2px solid var(--e73-line);
	border-radius: var(--e73-radius-md);
	color: var(--e73-ink);
}

body.ccs-est1973 .post-pagination .btn-post-pagination strong {
	font-family: var(--e73-font-slab);
	letter-spacing: .04em;
}

/* ---- table of contents ---- */
body.ccs-est1973 .toc-container {
	background: var(--e73-porcelain);
	border: 2px solid var(--e73-line);
	border-left: 2px solid var(--e73-line);
	border-radius: var(--e73-radius-lg);
}

body.ccs-est1973 .toc-container h2,
body.ccs-est1973 .toc-container h3,
body.ccs-est1973 .toc-container .toc-title {
	font-family: var(--e73-font-slab);
	letter-spacing: .14em;
	color: var(--e73-muted);
}

body.ccs-est1973 .toc-container a {
	font-family: var(--e73-font-serif);
	color: var(--e73-teal);
}

/* ---- focus states ---- */
body.ccs-est1973 .blog-post-container :where(a, button):focus-visible,
body.ccs-est1973 .blog-single-container :where(a, button):focus-visible,
body.ccs-est1973 .toc-container a:focus-visible {
	outline: 3px solid var(--e73-teal);
	outline-offset: 3px;
}

/* Visual pass: single posts sat under the fixed chrome; index cards
   inherited a 420px max-width that left a one-card hole on desktop. */
body.ccs-est1973.blog,
body.ccs-est1973.single-post,
body.ccs-est1973 .blog-listing-container,
body.ccs-est1973 .popular-posts,
body.ccs-est1973 .blog-single-container {
	background: var(--e73-cream);
}

body.ccs-est1973.single-post .blog-single-container,
body.ccs-est1973.single .blog-single-container {
	margin-top: calc(var(--ccs-header-offset, 199px) + 12px) !important;
}

@media (max-width: 767px) {
	body.ccs-est1973.single-post .blog-single-container {
		margin-top: calc(var(--ccs-header-offset, 240px) + 8px) !important;
	}
}

body.ccs-est1973 .blog-single-container h1,
body.ccs-est1973.single-post h1,
body.ccs-est1973 .single h1 {
	color: var(--e73-ink) !important;
	font-family: var(--e73-font-slab) !important;
}

body.ccs-est1973 .blog-post__item {
	max-width: none;
}

body.ccs-est1973 .popular-posts .blog-listing,
body.ccs-est1973 .blog-listing.js-load-more-posts {
	display: flex;
	flex-wrap: wrap;
}

body.ccs-est1973 .ccs-growth-links a:not([class*="button"]):not([class*="btn"]) {
	color: var(--e73-teal) !important;
}

/* ═══ Blog floors (2026-08-17): category folds, footer folds, article lists ═══ */
body.ccs-est1973 #main .ccs-post-paths h3,
body.ccs-est1973 .ccs-footer-growth-links__grid summary h3,
body.ccs-est1973 .footer-seo-services h3 {
	font-size: var(--e73-fs-base) !important;
	line-height: 1.3;
}

body.ccs-est1973.single-post .blog-single-container li {
	font-size: 16px;
	line-height: 1.6;
}

/* Card titles clipped 3px at the cap-height. */
body.ccs-est1973 .blog-post__title {
	line-height: 1.45;
}
