/* Election Wire — theme styles that theme.json can't express. */

:root {
	--ew-ink: var(--wp--preset--color--ink, #18212E);
	--ew-paper: var(--wp--preset--color--paper, #fff);
	--ew-mist: var(--wp--preset--color--mist, #EEF1F4);
	--ew-rule: var(--wp--preset--color--rule, #D5DBE1);
	--ew-muted: var(--wp--preset--color--muted, #566170);
	--ew-link: var(--wp--preset--color--link, #0E5C61);
	--ew-marigold: var(--wp--preset--color--marigold, #E3A21A);
	--ew-on-ink-muted: #C3CCD6;
	--ew-sans: var(--wp--preset--font-family--sans);
}

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; width: 1px; word-wrap: normal !important;
}

:where(a, button, input, summary):focus-visible {
	outline: 3px solid var(--ew-marigold);
	outline-offset: 2px;
	border-radius: 2px;
}

/* Ballot bubbles: the logo is a row of three with one marked; category
   labels carry a single empty bubble. */
.ew-logo a,
.ew-logo {
	color: inherit;
	text-decoration: none;
}
.ew-logo a::before {
	content: "";
	display: inline-block;
	width: 2.35em;
	height: 0.72em;
	margin-right: 0.45em;
	background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 66 20'><ellipse cx='10' cy='10' rx='8.5' ry='6.5' fill='none' stroke='%2318212E' stroke-width='2.2'/><ellipse cx='33' cy='10' rx='8.5' ry='6.5' fill='%23E3A21A' stroke='%2318212E' stroke-width='2.2'/><ellipse cx='56' cy='10' rx='8.5' ry='6.5' fill='none' stroke='%2318212E' stroke-width='2.2'/></svg>") no-repeat center / contain;
	vertical-align: -0.04em;
}
.ew-footer .ew-logo a::before {
	background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 66 20'><ellipse cx='10' cy='10' rx='8.5' ry='6.5' fill='none' stroke='%23FFFFFF' stroke-width='2.2'/><ellipse cx='33' cy='10' rx='8.5' ry='6.5' fill='%23E3A21A' stroke='%23FFFFFF' stroke-width='2.2'/><ellipse cx='56' cy='10' rx='8.5' ry='6.5' fill='none' stroke='%23FFFFFF' stroke-width='2.2'/></svg>");
}
.ew-logo a:hover { text-decoration: none; }

/* Header */
.ew-header {
	border-bottom: 1px solid var(--ew-rule);
	padding-block: 1rem;
}
.ew-header__bar { gap: 1rem 2rem; }
.ew-nav a { color: var(--ew-ink); text-decoration: none; }
.ew-nav .wp-block-navigation-item__content:hover,
.ew-nav .current-menu-item > .wp-block-navigation-item__content {
	text-decoration: underline;
	text-decoration-color: var(--ew-marigold);
	text-decoration-thickness: 3px;
	text-underline-offset: 6px;
}

/* Election Day countdown */
.ew-home > .ew-countdown,
.ew-home .ew-countdown {
	max-width: var(--wp--style--global--wide-size) !important;
}
.ew-countdown {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 0.25rem 2rem;
	margin-block: 2rem 0;
	padding: 1.5rem clamp(1.25rem, 3vw, 2.5rem);
	background: var(--ew-ink);
	color: var(--ew-paper);
	border-radius: 6px;
	font-family: var(--ew-sans);
}
.ew-countdown p { margin: 0; }
.ew-countdown__headline {
	font-size: clamp(1.35rem, 2.6vw, 1.9rem);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.01em;
}
.ew-countdown__num {
	display: inline-block;
	min-width: 1.6em;
	padding: 0.05em 0.35em;
	margin-right: 0.15em;
	border: 3px solid var(--ew-marigold);
	border-radius: 999px;
	color: var(--ew-marigold);
	font-weight: 800;
	text-align: center;
	font-variant-numeric: tabular-nums;
}
.ew-countdown__detail {
	grid-column: 1;
	color: var(--ew-on-ink-muted);
	font-size: 0.95rem;
}
.ew-countdown__link {
	grid-column: 2;
	grid-row: 1 / span 2;
	color: var(--ew-paper) !important;
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--ew-marigold);
	text-decoration-thickness: 2px;
	text-underline-offset: 5px;
	white-space: nowrap;
}
@media (max-width: 640px) {
	.ew-countdown { grid-template-columns: 1fr; }
	.ew-countdown__link { grid-column: 1; grid-row: auto; margin-top: 0.5rem; }
}

/* Category labels: a tinted pill per section, each with an empty ballot
   bubble. Colors avoid party blue and red, which the ratings graphics use. */
.ew-kicker {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	font-family: var(--ew-sans);
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1;
	margin: 0 0 0.6rem;
}
.ew-kicker a {
	--k-ink: #18212E;
	--k-bg: #E6EAEF;
	display: inline-flex;
	align-items: center;
	padding: 0.32rem 0.6rem 0.3rem 0.5rem;
	border-radius: 999px;
	background: var(--k-bg);
	color: var(--k-ink);
	text-decoration: none;
}
.ew-kicker a:hover { box-shadow: inset 0 0 0 1.5px var(--k-ink); text-decoration: none; }
.ew-kicker a::before {
	content: "";
	display: inline-block;
	width: 0.8em;
	height: 0.52em;
	margin-right: 0.35em;
	border: 1.5px solid currentColor;
	border-radius: 50%;
}
.ew-kicker a[href*="/category/explainers/"] { --k-ink: #0B4F53; --k-bg: #DDEFEE; }
.ew-kicker a[href*="/category/elections/"] { --k-ink: #6E4A00; --k-bg: #FBEDCB; }
.ew-kicker a[href*="/category/senate/"] { --k-ink: #4536A3; --k-bg: #E9E5FA; }
.ew-kicker a[href*="/category/facts-and-trivia/"] { --k-ink: #245E26; --k-bg: #E0F0DF; }
.ew-kicker .wp-block-post-terms__separator { display: none; }

/* Story lists */
.ew-home__grid { margin-top: 2.5rem; gap: 3rem; }
.ew-stream .wp-block-post-template { margin: 0; }
.ew-stream .wp-block-post {
	border-top: 1px solid var(--ew-rule);
	padding-block: 1.5rem;
	margin: 0;
}
.ew-story > * { margin-block: 0; }
.ew-story__title {
	font-size: 1.45rem;
	margin: 0 0 0.5rem !important;
}
.ew-story__title a { color: var(--ew-ink); text-decoration: none; }
.ew-story__title a:hover { text-decoration: underline; text-decoration-color: var(--ew-marigold); text-decoration-thickness: 3px; text-underline-offset: 4px; }
.ew-story__dek { color: #2E3846; margin-bottom: 0.6rem !important; }
.ew-story__dek p { margin: 0; }
.ew-story__date { font-family: var(--ew-sans); font-size: 0.85rem; color: var(--ew-muted); }

/* First story on the front page is the lead */
body:not(.paged) .ew-home .ew-stream .wp-block-post:first-child { border-top: 0; padding-top: 0; }
body:not(.paged) .ew-home .ew-stream .wp-block-post:first-child .ew-story__title {
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.02em;
}
body:not(.paged) .ew-home .ew-stream .wp-block-post:first-child .ew-story__dek {
	font-size: 1.25rem;
}

/* Sidebar */
.ew-aside { position: sticky; top: 1.5rem; }
.ew-aside__title {
	font-size: 1.05rem !important;
	padding-top: 0.75rem;
	border-top: 3px solid var(--ew-ink);
	margin: 0 0 0.25rem !important;
}
.ew-aside__title ~ .ew-aside__title { margin-top: 2.25rem !important; }
.ew-aside__note { font-size: 0.95rem; color: var(--ew-muted); margin: 0 0 0.5rem !important; }
.ew-catlist { list-style: none; margin: 0; padding: 0; font-family: var(--ew-sans); }
.ew-catlist li { border-bottom: 1px solid var(--ew-rule); }
.ew-catlist a { display: block; padding: 0.65rem 0; color: var(--ew-ink); font-weight: 600; font-size: 0.98rem; line-height: 1.35; text-decoration: none; }
.ew-catlist a:hover { color: var(--ew-link); }
.ew-catlist__all { font-family: var(--ew-sans); font-size: 0.9rem; margin: 0.6rem 0 0 !important; }

/* Archive heads */
.ew-archive__head { margin-top: 2.5rem; }
.ew-archive__head h1 { margin: 0; }
.ew-archive__head .wp-block-term-description { color: var(--ew-muted); margin-top: 0.5rem; max-width: 60ch; }

.ew-pagination { font-family: var(--ew-sans); font-weight: 600; border-top: 1px solid var(--ew-rule); padding-top: 1.25rem; }

/* Article */
.ew-single { padding-top: clamp(2rem, 5vw, 3.5rem); }
.ew-article__title {
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.02em;
	margin-top: 0 !important;
}
.ew-article__dek { font-size: 1.3rem; line-height: 1.5; color: #2E3846; }
.ew-article__dek p { margin: 0; }
.ew-byline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 1.5rem;
	padding: 0.75rem 1rem;
	border-left: 4px solid var(--ew-marigold);
	border-radius: 0 6px 6px 0;
	background: var(--ew-mist);
	font-family: var(--ew-sans);
	font-size: 0.9rem;
	color: #2E3846;
}
.ew-byline__by { color: #566170; }
.ew-byline__author { color: var(--ew-link); font-weight: 700; text-decoration: none; }
.ew-byline__author:hover { text-decoration: underline; }
.ew-byline__date { color: #566170; }
.ew-byline__date time { color: var(--ew-ink); font-weight: 600; }
.ew-byline__date--updated {
	padding: 0.15rem 0.55rem;
	border-radius: 999px;
	background: #FBEDCB;
	color: #6E4A00;
}
.ew-byline__date--updated time { color: #6E4A00; }

.ew-article__body a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.ew-article__body h2 { margin-top: 2.5rem; }
.ew-article__body h3 { margin-top: 2rem; }
.ew-article__body li + li { margin-top: 0.4rem; }

.ew-article__body .wp-block-table { overflow-x: auto; }
.ew-article__body table { width: 100%; border-collapse: collapse; }
.ew-article__body th,
.ew-article__body td { border: 0; border-bottom: 1px solid var(--ew-rule); padding: 0.6rem 0.75rem; text-align: left; vertical-align: top; }
.ew-article__body thead th { border-bottom: 2px solid var(--ew-ink); font-weight: 700; }
.ew-article__body tbody tr:nth-child(odd) { background: var(--ew-mist); }

/* Sources, notes, error reporting */
.ew-sources {
	margin-top: 3rem !important;
	padding-top: 1rem;
	border-top: 2px solid var(--ew-ink);
	font-family: var(--ew-sans);
	font-size: 0.92rem;
	line-height: 1.5;
}
.ew-sources h2 { font-size: 1rem !important; margin: 0 0 0.75rem !important; }
.ew-sources ul { padding-left: 1.1rem; }

.ew-note {
	padding: 0.9rem 1.15rem;
	background: var(--ew-mist);
	border-left: 4px solid var(--ew-marigold);
	font-family: var(--ew-sans);
	font-size: 0.95rem;
	line-height: 1.5;
}
.ew-note p { margin: 0; }
.ew-note--correction { border-left-color: var(--ew-ink); }

.ew-report {
	margin-top: 2.5rem !important;
	padding: 1rem 1.25rem;
	background: var(--ew-mist);
	border-radius: 6px;
	font-family: var(--ew-sans);
	font-size: 0.95rem;
	line-height: 1.5;
}
.ew-report > * { margin-block: 0; }
.ew-report > * + * { margin-top: 0.5rem; }
.ew-tags { color: var(--ew-muted); }
.ew-tags:empty { display: none; }

/* More stories under an article */
.ew-more-wrap { margin-top: 4rem !important; padding-top: 1.25rem; border-top: 3px solid var(--ew-ink); }
.ew-more__title { font-size: 1.05rem !important; margin: 0 0 1.25rem !important; }
.ew-more .ew-story__title { font-size: 1.2rem; }

/* Pages */
.ew-page { padding-block: clamp(2rem, 5vw, 3.5rem) 4rem; }
.ew-page__title { font-size: var(--wp--preset--font-size--x-large); font-weight: 800; }

/* Footer */
.ew-footer {
	margin-top: 5rem;
	padding-block: 3rem;
	font-family: var(--ew-sans);
}
.ew-footer .ew-logo a { color: var(--ew-paper); }
.ew-footer__mission { color: var(--ew-on-ink-muted); font-size: 0.95rem; max-width: 46ch; }
.ew-footer__links { list-style: none; padding: 0; margin: 0; columns: 2; column-gap: 2rem; }
.ew-footer__links li { margin-bottom: 0.6rem; break-inside: avoid; }
.ew-footer__links a { color: var(--ew-paper); text-decoration: none; font-size: 0.95rem; }
.ew-footer__links a:hover { text-decoration: underline; text-decoration-color: var(--ew-marigold); }

@media (max-width: 781px) {
	.ew-aside { position: static; }
	.ew-home__grid { gap: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
	* { scroll-behavior: auto !important; transition: none !important; }
}
