/* TXKtoday brand tokens — modern news palette */
:root {
	--brand-blue: #4db2ec;
	--brand-blue-dark: #2f97d4;
	--brand-orange: #ff9000;
	--brand-ink: #32373c;
}

/* ---- Homepage (lead + category blocks) ---- */
.txk-lead { padding-block: 1.5rem 1rem; }
.txk-lead .wp-block-post-title { margin-top: .5rem; line-height: 1.15; }
.txk-toprow { padding-block: .5rem 1rem; }
.txk-section-title {
	border-left: 5px solid var(--brand-orange);
	padding-left: .6rem;
	margin: 1.75rem 0 1rem;
	font-size: 1.35rem;
	text-transform: uppercase;
	letter-spacing: .02em;
	color: var(--brand-ink);
}
.txk-cat-section { padding-block: .25rem 1rem; }
.txk-cat-section .wp-block-post-title a,
.txk-toprow .wp-block-post-title a,
.txk-lead .wp-block-post-title a { color: var(--brand-ink); text-decoration: none; }
.txk-cat-section .wp-block-post-title a:hover,
.txk-toprow .wp-block-post-title a:hover,
.txk-lead .wp-block-post-title a:hover { color: var(--brand-blue); }
.txk-cat-section .wp-block-post-date, .txk-toprow .wp-block-post-date { color: #7a8893; }
.txk-ad-slot {
	background: #f2f5f7; border: 1px dashed #c9d4dd;
	padding: 1.1rem; margin: 1.5rem auto; max-width: 970px; text-align: center;
}
.txk-ad-label { color: #9aa7b2; font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; margin: 0; }
.wp-block-query .wp-block-post-featured-image img { border-radius: 6px; object-fit: cover; width: 100%; }

/* ===== Mobile-first (80%+ of TXKtoday traffic) ===== */
img { max-width: 100%; height: auto; }
body { -webkit-text-size-adjust: 100%; }

@media (max-width: 781px) {
	/* Category + top-stories grids -> compact thumb+headline list */
	.txk-cat-section .wp-block-post-template,
	.txk-toprow .wp-block-post-template { display: block; }
	.txk-cat-section .wp-block-post-template > .wp-block-post,
	.txk-toprow .wp-block-post-template > .wp-block-post {
		display: grid;
		grid-template-columns: 112px 1fr;
		gap: .8rem;
		align-items: start;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: .7rem 0;
		border-bottom: 1px solid #e6ebef;
	}
	.txk-cat-section .wp-block-post .wp-block-post-featured-image,
	.txk-toprow .wp-block-post .wp-block-post-featured-image { margin: 0; }
	.txk-cat-section .wp-block-post .wp-block-post-featured-image img,
	.txk-toprow .wp-block-post .wp-block-post-featured-image img { aspect-ratio: 4/3; }
	.txk-cat-section .wp-block-post-title,
	.txk-toprow .wp-block-post-title { font-size: 1rem; line-height: 1.25; margin: 0; }
	.txk-cat-section .wp-block-post-date,
	.txk-toprow .wp-block-post-date { font-size: .72rem; margin-top: .25rem; }

	/* Lead story: scale down headline on phones */
	.txk-lead .wp-block-post-title { font-size: 1.55rem; line-height: 1.18; }
	.txk-section-title { font-size: 1.15rem; }
	.txk-ad-slot { max-width: 100%; }
}

/* ===== Single article — mobile-first readability ===== */
.single .entry-content {
	font-size: 1.12rem;      /* ~18px, comfortable on phones */
	line-height: 1.75;
}
.single .entry-content p { margin: 0 0 1.3em; }
.single .entry-content a { color: var(--brand-blue-dark); text-underline-offset: 2px; }
.single .entry-content h2 { margin-top: 1.7em; line-height: 1.25; }
.single .entry-content h3 { margin-top: 1.4em; line-height: 1.3; }
.single .entry-content img { height: auto; border-radius: 6px; }
.single .entry-content figure { margin-inline: 0; }
.single .entry-content figcaption { font-size: .85rem; color: #7a8893; }
.single .entry-content blockquote {
	border-left: 4px solid var(--brand-blue);
	padding: .25rem 0 .25rem 1rem; margin-inline: 0;
	color: #3a4654; font-style: italic;
}
.single .entry-content ul, .single .entry-content ol { margin: 0 0 1.3em 1.25em; }
@media (min-width: 1000px) {
	.single .entry-content { font-size: 1.075rem; line-height: 1.7; }
}

/* ===== Archive / Search / 404 — brand consistency (mobile-first) ===== */
.entry-card .entry-title a,
.search .entry-card .entry-title a { color: var(--brand-ink); text-decoration: none; }
.entry-card .entry-title a:hover,
.search .entry-card .entry-title a:hover { color: var(--brand-blue); }
.entry-card .ct-meta-element-categories a,
.entry-card .meta-categories a { color: var(--brand-blue-dark); font-weight: 600; }
.ct-archive .page-title,
.archive .page-title,
.search .page-title {
	border-left: 5px solid var(--brand-orange);
	padding-left: .6rem;
}
@media (max-width: 781px) {
	.entry-card { margin-bottom: 1.1rem; }
	.entry-card .entry-title { font-size: 1.12rem; line-height: 1.25; }
}

/* ===== Broadstreet ad slots (reserve space -> no CLS) ===== */
.single .entry-content broadstreet-zone { display:block; margin:1.4rem auto; min-height:100px; text-align:center; }
broadstreet-zone:empty { min-height:0; }              /* unfilled zones collapse, no gap */
.broadstreet-zone-label, .bs-ad-label { color:#9aa7b2; font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; text-align:center; }
/* Sticky mobile anchor (Sneaker) */
.txk-sneaker { position:fixed; left:0; right:0; bottom:0; z-index:9999; background:#fff; border-top:1px solid #e1e8ed; box-shadow:0 -2px 10px rgba(0,0,0,.08); text-align:center; padding:4px 0; min-height:54px; }
.txk-sneaker-close { position:absolute; top:-22px; right:8px; width:24px; height:24px; border:none; border-radius:50% 50% 0 0; background:#32373c; color:#fff; font-size:16px; line-height:22px; cursor:pointer; }
@media (min-width:1000px){ .txk-sneaker { display:none; } }   /* mobile anchor only */

/* Footer + River ad slots (reserve space) */
.txk-ad-footer { text-align:center; padding:1rem 0; min-height:90px; }
.txk-ad-river { margin:1.5rem auto; }
.txk-ctx-zone { display:block; margin:0 0 1.2rem; min-height:90px; text-align:center; }

/* ===== Footer branding ===== */
[data-footer] .ct-footer-bottom, .ct-footer [data-row="bottom"] { background: var(--brand-ink); }
[data-footer] .ct-footer-bottom a, .ct-footer [data-row="bottom"] a { color: #cfe7f7; }
[data-footer] .ct-footer-bottom a:hover { color: var(--brand-blue); }
.ct-footer .ct-widget-title { color:#fff; border-bottom:2px solid var(--brand-blue); padding-bottom:.3rem; }

/* ===== Homepage fixes (review 1) ===== */
/* 1) Collapse the redundant front-page "Home" title BAND (hero-section), not just the
      text, and trim Blocksy's content-area top padding so the top ad sits near the menu. */
.home .hero-section { display: none; }
.home .ct-container-full[data-vertical-spacing] { padding-top: 1rem; }
/* 2) Clean masthead: bigger logo, drop duplicate text wordmark */
.ct-header .site-title-container .site-title { display: none; }
.ct-header .site-logo-container img, .ct-header [data-id="logo"] img { max-height: 64px; width: auto; }
/* 3) Lead image: cap height + crop (no giant blurry blow-up) */
.txk-lead .wp-block-post-featured-image img { max-height: 460px; width: 100%; object-fit: cover; border-radius: 8px; }
.txk-lead .wp-block-post-title { margin-top: .6rem; }
@media (max-width: 781px) { .txk-lead .wp-block-post-featured-image img { max-height: 240px; } }
/* 4) Sticky sneaker: mobile/tablet only, never desktop */
@media (min-width: 992px) { .txk-sneaker { display: none !important; } }

/* ===== Magazine hero (desktop 2-col; stacks on mobile) ===== */
.txk-hero { padding-block: 1.25rem .5rem; }
.txk-hero-cols { gap: 1.25rem; align-items: stretch; }
.txk-hero-cover { border-radius: 8px; overflow: hidden; display: flex; align-items: flex-end; height: 100%; }
.txk-hero-cover .wp-block-cover__background { background: linear-gradient(to top, rgba(0,0,0,.78) 0%, rgba(0,0,0,.25) 50%, rgba(0,0,0,0) 100%) !important; }
.txk-hero-cover .wp-block-cover__inner-container { width: 100%; }
.txk-hero-cover .wp-block-post-title { font-size: clamp(1.6rem, 2.3vw, 2.3rem); line-height: 1.12; margin: .35rem 0 0; }
.txk-hero-cover .wp-block-post-title a { color: #fff; text-decoration: none; }
.txk-hero-cat a { color: #ffcf99; text-transform: uppercase; font-weight: 700; font-size: .72rem; letter-spacing: .06em; text-decoration: none; }
.txk-hero-secondary { display: flex; flex-direction: column; gap: 1rem; }
.txk-hero-secondary > .wp-block-post { display: grid; grid-template-columns: 120px 1fr; gap: .75rem; align-items: start; margin: 0; }
.txk-hero-secondary .wp-block-post-featured-image img { border-radius: 6px; }
.txk-hero-secondary .wp-block-post-title { font-size: 1rem; line-height: 1.22; margin: 0; }
.txk-hero-secondary .wp-block-post-title a { color: var(--brand-ink); text-decoration: none; }
.txk-hero-secondary .wp-block-post-title a:hover { color: var(--brand-blue); }
@media (max-width: 781px) {
	.txk-hero-cover .wp-block-post-title { font-size: 1.5rem; }
	.txk-hero-cover { min-height: 300px !important; }
}

/* ===== Solo big hero ===== */
.txk-hero-solo .wp-block-query, .txk-hero-solo .wp-block-post { margin:0; }
.txk-hero-solo .txk-hero-cover .wp-block-post-title { font-size: clamp(1.9rem, 3.4vw, 3.1rem); max-width: 60ch; }
.txk-hero-excerpt { color:#e8eef3; font-size:1.02rem; line-height:1.5; max-width:60ch; margin:.5rem 0 0; }
.txk-hero-excerpt .wp-block-post-excerpt__more-link { display:none; }
@media (max-width:781px){
	.txk-hero-solo .txk-hero-cover { min-height:330px !important; }
	.txk-hero-solo .txk-hero-cover .wp-block-post-title { font-size:1.6rem; }
	.txk-hero-excerpt { display:none; }
}

/* ===== 2-col hero: one big featured + side list (overrides) ===== */
.txk-hero-cols { align-items: flex-start !important; }
.txk-hero-cover { height: auto !important; min-height: 440px !important; }
.txk-hero-secondary > .wp-block-post { grid-template-columns: 84px 1fr; gap: .7rem; padding-bottom: .9rem; border-bottom: 1px solid #e6ebef; }
.txk-hero-secondary > .wp-block-post:last-child { border-bottom: 0; }
.txk-hero-secondary .wp-block-post-featured-image img { aspect-ratio: 1/1; object-fit: cover; }
.txk-hero-secondary .wp-block-post-title { font-size: .98rem; }
@media (max-width: 781px) { .txk-hero-cover { min-height: 300px !important; } }

/* ===== Hero / side-list division ===== */
.txk-hero-cols { gap: 1.75rem; }
.txk-side-title { font-size: 1.05rem; text-transform: uppercase; letter-spacing: .03em; border-left: 4px solid var(--brand-orange); padding-left: .5rem; margin: 0 0 1rem; color: var(--brand-ink); }
@media (min-width: 782px) {
	.txk-hero-cols > .wp-block-column:last-child { border-left: 1px solid #e1e8ed; padding-left: 1.75rem; }
}

/* ===== Hero headline size fix (override xx-large preset) ===== */
.txk-hero-cover .wp-block-post-title,
.txk-hero-cover .wp-block-post-title.has-xx-large-font-size {
	font-size: clamp(1.5rem, 2.1vw, 2.15rem) !important;
	line-height: 1.12;
	font-weight: 800;
	max-width: 92%;
}
.txk-hero-cover .wp-block-cover__inner-container { padding: 1.1rem 1.3rem; }
@media (max-width: 781px) {
	.txk-hero-cover .wp-block-post-title,
	.txk-hero-cover .wp-block-post-title.has-xx-large-font-size { font-size: 1.4rem !important; }
}

/* ===== Newsroom patterns ===== */
.txk-standfirst { font-size: 1.22rem; line-height: 1.6; font-weight: 500; color: #3a4654; border-left: 4px solid var(--brand-blue); padding-left: 1rem; }
.txk-pullquote { border-left: 4px solid var(--brand-orange); padding: .2rem 0 .2rem 1.2rem; margin-inline: 0; font-size: 1.3rem; font-style: italic; color: #2b3642; }
.txk-pullquote cite { display:block; font-size: .9rem; font-style: normal; color: #7a8893; margin-top: .4rem; }
.txk-callout { background: #f2f8fc; border: 1px solid #d6e9f7; border-radius: 8px; padding: 1rem 1.3rem; }
.txk-callout h3 { margin-top: 0; color: var(--brand-blue-dark); }
.txk-source { font-size: .85rem; color: #7a8893; font-style: italic; }
.txk-inline-ad { text-align: center; margin: 1.6rem 0; min-height: 100px; }

/* Top leaderboard ad (Broadstreet zone 42905, "TOP BAR HEADER") — directly under the
   header / menu bar, above the featured hero. min-height reserves space to limit the
   layout shift (CLS) this zone is known for; tune to the ad's real dimensions. */
.txk-ad-top { margin-top: 0; min-height: 90px; }
@media (max-width: 781px) { .txk-ad-top { min-height: 100px; } }

/* Single post: pull the top ad (zone 190205, .txk-ad-above-featured) up to almost
   touch the menu bar — kill Blocksy content-area top spacing + the .txk-ad-slot
   1.5rem top margin. (2026-06-03, per Field) */
.single .ct-container-full[data-vertical-spacing] { padding-top: .5rem; }
.single .txk-ad-above-featured { margin-top: 0; }

/* Header masthead with ad zone 42905 — vertically center the ad with the logo, kill its wrapper
   spacing, and trim the header middle-row vertical padding (was a big gap). (2026-06-03) */
#header [data-row="middle"] .ct-header-text { display: flex; align-items: center; margin-block: 0; }
#header [data-row="middle"] .ct-header-text .entry-content { margin: 0; padding: 0; line-height: 0; }
#header [data-row="middle"] .ct-header-text broadstreet-zone { display: block; line-height: 0; }
#header [data-row="middle"] .ct-container { padding-top: .45rem; padding-bottom: .45rem; }
/* ===== Homepage hero: headline BELOW the image (not overlaid) — 2026-06-04 ===== */
.txk-hero-cover {
	display: block !important;
	height: auto !important;
	min-height: 0 !important;
	background: none !important;
	overflow: visible !important;
}
.txk-hero-cover .wp-block-cover__image-background {
	position: relative !important;
	inset: auto !important;
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 1200 / 630;
	object-fit: cover;
	border-radius: 8px;
}
.txk-hero-cover .wp-block-cover__background { display: none !important; }
.txk-hero-cover .wp-block-cover__inner-container {
	position: relative !important;
	z-index: 1;
	width: 100%;
	padding: .65rem 0 0 !important;
}
.txk-hero-cover .wp-block-post-title,
.txk-hero-cover .wp-block-post-title.has-xx-large-font-size { margin: .2rem 0 0 !important; }
.txk-hero-cover .wp-block-post-title a { color: var(--brand-ink) !important; }
.txk-hero-cover .wp-block-post-title a:hover { color: var(--brand-blue) !important; }
.txk-hero-cat a { color: var(--brand-orange) !important; }

/* ===== Top full-width banner band (Broadstreet zone via Ad Zones admin). Edge-to-edge, flush to top.
   Creative is 2000x250 (8:1). The band takes that aspect-ratio at full width, so it scales responsively
   at ANY width and reserves its own space (CLS ~ 0) with no breakpoints. The whole Broadstreet chain is
   forced to fill it; object-fit cover keeps it edge-to-edge even if a creative isn't exactly 8:1. 2026-06-04 */
.txk-top-video { width: 100%; aspect-ratio: 2000 / 250; overflow: hidden; margin: 0; line-height: 0; font-size: 0; }
.txk-top-video broadstreet-zone-container,
.txk-top-video broadstreet-zone,
.txk-top-video broadstreet-zone div,
.txk-top-video broadstreet-zone span,
.txk-top-video broadstreet-zone a { display: block; width: 100%; height: 100%; }
.txk-top-video img { display: block; width: 100% !important; height: 100% !important; object-fit: cover; }

/* Pull the menu (bottom) row up closer to the logo+ad row above it. 2026-06-05 */
#header [data-row="bottom"] { margin-top: -34px; }

/* Top banner (zone 190205): desktop = full-width 2000x250 (8:1, above). Mobile = centered 300x250
   medium rectangle at natural size (undo the desktop full-bleed stretch). Space reserved (250px) so
   the rectangle fills pre-allocated space with no layout shift. 2026-06-05 */
@media (max-width: 767px) {
	.txk-top-video { aspect-ratio: auto; min-height: 250px; display: flex; align-items: center; justify-content: center; line-height: normal; font-size: initial; }
	.txk-top-video broadstreet-zone-container,
	.txk-top-video broadstreet-zone,
	.txk-top-video broadstreet-zone div,
	.txk-top-video broadstreet-zone span,
	.txk-top-video broadstreet-zone a { display: inline-block; width: auto; height: auto; }
	.txk-top-video img { width: auto !important; height: auto !important; max-width: 100%; max-height: 250px; object-fit: contain; }
}

/* ── Top banner: scroll-reveal ("curtain") REMOVED 2026-06-07. The fixed banner + #main-container
   margin pushed the header down ~180px, which fought Blocksy's sticky header (the sticky clone snapped
   to top:0 on the first scroll = a jarring jump, most visible logged-out) and had earlier caused an iOS
   mobile logo-paint bug. The top banner (.txk-top-video) now sits in NORMAL FLOW above the header
   everywhere, so the sticky header behaves normally. Re-introduce the curtain later only with a
   sticky-header-compatible technique if desired. ── */

/* ── Homepage sidebar (DESKTOP ONLY), below the featured hero. The hero stays full-width; everything
   below it is wrapped at render time (functions.php) in .txk-home-belowhero columns: existing sections
   (left) + a fixed 320px sidebar (right). Hidden < 1000px so mobile is unchanged (zero CLS). 2026-06-07 ── */
.txk-home-belowhero { display: flex; align-items: flex-start; gap: 32px; }
.txk-home-belowhero > .wp-block-column { margin: 0; }
.txk-home-belowhero > .wp-block-column:not(.txk-home-sidebar) { flex: 1 1 auto; min-width: 0; }
.txk-home-belowhero > .txk-home-sidebar { flex: 0 0 320px; width: 320px; max-width: 320px; }

/* sidebar sticks below the sticky header as the page scrolls */
.txk-home-sidebar-inner { position: sticky; top: 110px; }

.txk-home-sidebar .txk-side-widget { margin-bottom: 28px; }
.txk-home-sidebar .txk-side-widget:last-child { margin-bottom: 0; }
.txk-home-sidebar .txk-side-title {
	font-size: 1.05rem; line-height: 1.2; margin: 0 0 12px; padding-bottom: 8px;
	border-bottom: 3px solid #ff9000;   /* orange category accent (brand) */
	text-transform: uppercase; letter-spacing: .02em; font-weight: 700; color: #32373c;
}

/* latest-posts list */
.txk-side-list { list-style: none; margin: 0; padding: 0; }
.txk-side-item { margin: 0 0 14px; padding: 0 0 14px; border-bottom: 1px solid #e6e9ec; }
.txk-side-item:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.txk-side-link { display: flex; gap: 10px; align-items: flex-start; text-decoration: none; color: inherit; }
.txk-side-thumb { flex: 0 0 72px; line-height: 0; }
.txk-side-thumb img { width: 72px; height: 72px; object-fit: cover; border-radius: 4px; display: block; }
.txk-side-text { display: flex; flex-direction: column; }
.txk-side-headline { font-weight: 600; font-size: .92rem; line-height: 1.3; color: #32373c; }
.txk-side-link:hover .txk-side-headline { color: #2f97d4; }
.txk-side-date { font-size: .75rem; color: #8a9199; margin-top: 4px; }

.txk-home-ad { text-align: center; }

/* newsletter card */
.txk-side-news { background: #f1f5f8; border: 1px solid #e0e6eb; border-radius: 8px; padding: 18px; }
.txk-side-news .txk-side-title { border-bottom-color: #4db2ec; }
.txk-side-news-sub { font-size: .85rem; color: #5a6169; margin: 0 0 12px; }
.txk-news-form { display: flex; flex-direction: column; gap: 8px; }
.txk-news-email { padding: 10px 12px; border: 1px solid #cdd5dd; border-radius: 6px; font-size: .9rem; width: 100%; box-sizing: border-box; }
.txk-news-btn { padding: 10px 12px; border: 0; border-radius: 6px; background: #4db2ec; color: #fff; font-weight: 700; cursor: pointer; }
.txk-news-btn:hover { background: #2f97d4; }

/* DESKTOP ONLY — collapse below 1000px: drop the sidebar, sections take full width */
@media (max-width: 999.98px) {
	.txk-home-belowhero { display: block; }
	.txk-home-belowhero > .txk-home-sidebar { display: none; }
}
