/**
 * CT Updates — homepage primary section overrides.
 *
 * Reuses .ct-updates-hub layout from updates.css; this file scopes the
 * homepage container, heading, and footer link.
 */

.ct-home-updates {
	margin: 32px 0;
	padding: 0;
}

@media (min-width: 768px) {
	.ct-home-updates { margin: 48px 0; }
}

/* ------------------------------------------------------------------
 * 2-col layout — Whatfinger-style. Left column carries the freshness
 * buckets (and sticky block, when present); right column is the full
 * sources directory. On mobile, the sidebar stacks beneath the main
 * column with a rule separator.
 * ------------------------------------------------------------------ */
.ct-home-updates__cols {
	display: block;
}

.ct-home-updates__main {
	min-width: 0;  /* allow flex/grid children to shrink for long headlines */
}

@media (min-width: 768px) {
	.ct-home-updates__cols {
		display: grid;
		grid-template-columns: minmax(0, 2fr) minmax(180px, 1fr);
		gap: 40px;
		align-items: start;
	}
}

.ct-home-updates__header {
	margin: 0 0 20px;
}

.ct-home-updates__heading {
	font-size: 22px;
	line-height: 1.25;
	letter-spacing: -0.012em;
	margin: 0;
	color: var(--ct-ink, #0e1a2b);
	font-weight: 600;
}

.ct-home-updates__footer {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid #e5e5e5;
	text-align: right;
}

.ct-home-updates__see-all {
	display: inline-block;
	font-size: 0.95rem;
	color: #1A365D;
	font-weight: 600;
	min-height: 44px;
	line-height: 44px;
}

.ct-home-updates__see-all:focus-visible {
	outline: 2px solid #2563EB;
	outline-offset: 2px;
}

/* ------------------------------------------------------------------
 * News teaser — styled as a single funnel-cluster, not a callout box.
 * Mirrors .ct-funnel__cluster / .ct-funnel__topic / .ct-funnel__list
 * defined in ct_homepage_styles(): 1px ct-rule on top, 17px ink topic
 * title, 13.5px ink-2 question-style links, hover→alert. The section
 * break to the funnel's 22px "Common questions" H2 below creates the
 * natural visual divider — no need for a callout treatment here.
 * Eyebrow is a styled <p> (not a heading) so the page outline stays
 *   H1 (hero) → H2 (Common questions) → H2 (Latest immigration news).
 * ------------------------------------------------------------------ */
.ct-news-teaser {
	margin: 0 0 30px;
	padding: 12px 0 0;
	border-top: 1px solid var(--ct-rule, #c5cdd9);
}

.ct-news-teaser__eyebrow {
	margin: 0 0 8px;
	font-size: 17px;
	font-weight: 700;
	color: var(--ct-ink, #0e1a2b);
	letter-spacing: -0.005em;
	line-height: 1.25;
}

.ct-news-teaser__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ct-news-teaser__item {
	padding: 4px 0;
	line-height: 1.35;
	margin: 0;
	border: 0;
}

.ct-news-teaser__headline {
	font-size: 13.5px;
	color: var(--ct-ink-2, #2d3a4e);
	text-decoration: none;
	display: block;
}

.ct-news-teaser__headline:hover,
.ct-news-teaser__headline:focus {
	color: var(--ct-alert, #a52822);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.ct-news-teaser__headline:focus-visible {
	outline: 2px solid var(--ct-navy, #0e2a4a);
	outline-offset: 2px;
}

.ct-news-teaser__meta {
	display: block;
	font-size: 11px;
	color: var(--ct-muted, #6b7889);
	margin-top: 2px;
	line-height: 1.3;
}

.ct-news-teaser__source { font-weight: 600; }

.ct-news-teaser__cta {
	display: inline-block;
	margin-top: 8px;
	font-size: 13.5px;
	color: var(--ct-ink-2, #2d3a4e);
	text-decoration: none;
}

.ct-news-teaser__cta:hover,
.ct-news-teaser__cta:focus {
	color: var(--ct-alert, #a52822);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.ct-news-teaser__cta:focus-visible {
	outline: 2px solid var(--ct-navy, #0e2a4a);
	outline-offset: 2px;
}

/* ------------------------------------------------------------------
 * Freshness buckets — homepage replacement for source-grouped IA.
 * /updates/ deep archive still uses .ct-source-groups; this view is
 * homepage-only. Section header is the "when," so per-item time stamps
 * collapse into a screen-reader-only <time> for parsers + a11y.
 * ------------------------------------------------------------------ */
.ct-freshness-buckets {
	margin: 0;
}

.ct-bucket-section {
	margin: 0 0 28px;
}

.ct-bucket-section:last-child {
	margin-bottom: 0;
}

.ct-bucket-section__heading {
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin: 0 0 10px;
	padding: 0 0 6px;
	color: var(--ct-muted, #6b7889);
	font-weight: 700;
	border-bottom: 1px solid var(--ct-rule, #c5cdd9);
}

.ct-headline-list--bucketed {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ct-headline-list--bucketed .ct-headline-item {
	display: block;
	grid-template-columns: none;
	padding: 7px 0;
	border-bottom: 1px solid #f0f0f0;
	line-height: 1.4;
}

.ct-headline-list--bucketed .ct-headline-item:last-child {
	border-bottom: none;
}

.ct-headline-list--bucketed .ct-headline-link {
	display: inline;
	color: var(--ct-ink, #0e1a2b);
	font-weight: 500;
}

.ct-headline-list--bucketed .ct-headline-link:hover,
.ct-headline-list--bucketed .ct-headline-link:focus {
	color: var(--ct-alert, #a52822);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.ct-headline-list--bucketed .ct-headline-source {
	display: inline;
	margin-left: 8px;
	font-size: 0.85rem;
	color: var(--ct-muted, #6b7889);
	font-weight: 400;
}

.ct-headline-list--bucketed .ct-paywall-affordance {
	margin-left: 6px;
	font-size: 0.78rem;
	color: var(--ct-muted, #6b7889);
	font-style: italic;
}

/* Visually hidden, accessibility-preserved (WCAG technique). */
.ct-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ------------------------------------------------------------------
 * Sources directory — right rail, Whatfinger-style.
 * Dense scannable list of all 62 publishers, each linking out.
 * ------------------------------------------------------------------ */
.ct-home-sources {
	margin: 32px 0 0;
	padding: 14px 0 0;
	border-top: 1px solid var(--ct-rule, #c5cdd9);
}

@media (min-width: 768px) {
	.ct-home-sources {
		margin: 0;
		padding: 0;
		border-top: none;
	}
}

.ct-home-sources__heading {
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin: 0 0 10px;
	padding: 0 0 6px;
	color: var(--ct-muted, #6b7889);
	font-weight: 700;
	border-bottom: 1px solid var(--ct-rule, #c5cdd9);
}

.ct-home-sources__list {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.85rem;
	line-height: 1.35;
}

.ct-home-sources__item {
	margin: 0;
	padding: 3px 0;
}

.ct-home-sources__list a {
	color: var(--ct-ink-2, #2d3a4e);
	text-decoration: none;
}

.ct-home-sources__list a:hover,
.ct-home-sources__list a:focus {
	color: var(--ct-alert, #a52822);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.ct-home-sources__list a:focus-visible {
	outline: 2px solid var(--ct-navy, #0e2a4a);
	outline-offset: 2px;
}

/* Smooth-scroll only for users who haven't requested reduced motion. */
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}
