/* Live coverage in the paper's own style: ink, hairline rules, the paper tone for panels,
   burgundy labels, and red kept for the live mark alone. The theme's colours and faces are used
   where it defines them; the values after them stand in on any other theme. */

.tlv-pill {
	display: inline-flex;
	flex: none;
	align-items: center;
	gap: 6px;
	padding: 3px 8px 3px 7px;
	border-radius: 2px;
	font: 700 11.5px/1.2 var(--sans, "Helvetica Neue", Arial, sans-serif);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: nowrap;
}

.tlv-pill--live {
	background: var(--live, #b3002d);
	color: #fff;
}

.tlv-pill--live::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: currentColor;
}

.tlv-pill--upcoming {
	box-shadow: inset 0 0 0 1px var(--maroon, #660033);
	color: var(--maroon, #660033);
}

.tlv-pill--ended {
	background: var(--band-2, #ece7df);
	color: var(--text-2, #484848);
}

/* The top of a live article. */
.tlv-head {
	margin: 0 0 1.4em;
}

.tlv-head__inner > * + * {
	margin-top: 16px;
}

.tlv-status {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
	margin: 0;
	font: 500 14px/1.4 var(--sans, "Helvetica Neue", Arial, sans-serif);
	color: var(--text-2, #484848);
}

.tlv-status__count {
	font-weight: 700;
	color: var(--maroon, #660033);
}

/* Scoreboard. */
.tlv-score {
	padding: 14px 18px 16px;
	border-top: 2px solid var(--ink, #161616);
	background: var(--band, #f6f3ee);
	text-align: center;
}

.tlv-score__competition {
	margin: 0 0 8px;
	font: 700 12px/1.3 var(--sans, "Helvetica Neue", Arial, sans-serif);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--maroon, #660033);
}

.tlv-score__board {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	gap: 12px;
	align-items: center;
}

.tlv-score__side {
	display: flex;
	align-items: center;
	gap: 14px;
	min-width: 0;
}

.tlv-score__side--home {
	justify-content: flex-end;
	text-align: right;
}

.tlv-score__side--away {
	flex-direction: row-reverse;
	justify-content: flex-end;
	text-align: left;
}

.tlv-score__name {
	min-width: 0;
	font: 700 19px/1.25 var(--head, Georgia, "Times New Roman", serif);
	color: var(--ink, #161616);
	overflow-wrap: anywhere;
}

.tlv-score__figure {
	font: 700 40px/1 var(--display, Georgia, "Times New Roman", serif);
	color: var(--ink, #161616);
	font-variant-numeric: tabular-nums lining-nums;
}

.tlv-score__sep {
	font: 400 24px/1 var(--display, Georgia, serif);
	color: var(--muted, #6b6b6b);
}

.tlv-score__clock {
	margin: 10px 0 0;
	font: 600 13px/1.4 var(--sans, "Helvetica Neue", Arial, sans-serif);
	color: var(--text-2, #484848);
}

.tlv-score--compact {
	padding: 12px 14px;
}

.tlv-score--compact .tlv-score__name {
	font-size: 16px;
}

.tlv-score--compact .tlv-score__figure {
	font-size: 30px;
}

@media (max-width: 520px) {
	.tlv-score__side {
		flex-direction: column-reverse;
		gap: 6px;
	}

	.tlv-score__side--home,
	.tlv-score__side--away {
		align-items: center;
		justify-content: flex-end;
		text-align: center;
	}

	.tlv-score__name {
		font-size: 15px;
	}

	.tlv-score__figure {
		font-size: 34px;
	}
}

/* Election results. */
.tlv-results {
	display: grid;
	gap: 18px;
}

.tlv-results__table {
	padding-top: 10px;
	border-top: 2px solid var(--ink, #161616);
}

.tlv-results__title {
	margin: 0 0 8px;
	font: 700 18px/1.3 var(--head, Georgia, serif);
	color: var(--ink, #161616);
}

.tlv-results__progress {
	display: grid;
	gap: 6px;
	margin: 0 0 12px;
	font: 500 13.5px/1.4 var(--sans, "Helvetica Neue", Arial, sans-serif);
	color: var(--text-2, #484848);
}

.tlv-results__progress strong {
	color: var(--ink, #161616);
}

.tlv-results__progress-detail {
	color: var(--muted, #6b6b6b);
}

.tlv-results__bar,
.tlv-results__share-bar {
	display: block;
	height: 6px;
	background: var(--band-2, #ece7df);
}

.tlv-results__bar span,
.tlv-results__share-bar span {
	display: block;
	height: 100%;
	background: var(--maroon, #660033);
}

.tlv-results__share-bar {
	height: 4px;
	margin-top: 5px;
}

.tlv-results__share-bar span {
	background: var(--ink, #161616);
}

table.tlv-results__grid {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font: 400 14.5px/1.35 var(--sans, "Helvetica Neue", Arial, sans-serif);
	font-variant-numeric: tabular-nums lining-nums;
}

.tlv-results__grid thead th {
	padding: 0 8px 6px 0;
	border: 0;
	border-bottom: 1px solid var(--rule, #dcd8d1);
	background: none;
	font: 600 11.5px/1.2 var(--sans, "Helvetica Neue", Arial, sans-serif);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted, #6b6b6b);
	text-align: left;
}

.tlv-results__grid tbody th,
.tlv-results__grid td {
	padding: 9px 8px 9px 0;
	border: 0;
	border-bottom: 1px solid var(--rule, #dcd8d1);
	background: none;
	vertical-align: top;
	text-align: left;
}

.tlv-results__grid tbody th {
	width: 55%;
	font-weight: 600;
	color: var(--ink, #161616);
}

.tlv-results__grid .num {
	padding-right: 0;
	padding-left: 8px;
	text-align: right;
	white-space: nowrap;
}

.tlv-results__grid tbody tr:first-child th {
	font-weight: 700;
}

.tlv-results__source {
	margin: 0;
	font: 400 12.5px/1.45 var(--sans, "Helvetica Neue", Arial, sans-serif);
	color: var(--muted, #6b6b6b);
}

.tlv-results__table.is-compact table.tlv-results__grid {
	font-size: 13.5px;
}

.tlv-results__table.is-compact .tlv-results__grid tbody th,
.tlv-results__table.is-compact .tlv-results__grid td {
	padding-top: 7px;
	padding-bottom: 7px;
}

@media (min-width: 768px) {
	.tlv-results.is-several {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px 28px;
	}

	.tlv-results.is-several .tlv-results__source {
		grid-column: 1 / -1;
	}
}

/* Event details. */
.tlv-event {
	display: grid;
	gap: 8px 28px;
	margin: 0;
	padding: 12px 16px;
	border-top: 2px solid var(--ink, #161616);
	background: var(--band, #f6f3ee);
	font: 400 14.5px/1.4 var(--sans, "Helvetica Neue", Arial, sans-serif);
}

@media (min-width: 600px) {
	.tlv-event {
		grid-template-columns: repeat(2, minmax(0, max-content));
	}
}

.tlv-event dt {
	font: 600 11.5px/1.3 var(--sans, "Helvetica Neue", Arial, sans-serif);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--muted, #6b6b6b);
}

.tlv-event dd {
	margin: 2px 0 0;
	color: var(--ink, #161616);
	font-weight: 600;
}

/* The feed of updates. */
.tlv-feed {
	position: relative;
	margin-top: 2.2em;
	padding-top: 12px;
	border-top: 2px solid var(--ink, #161616);
}

.tlv-feed [hidden] {
	display: none !important;
}

.tlv-feed h2.tlv-feed__heading {
	margin: 0 0 16px;
	font: 700 13px/1.2 var(--sans, "Helvetica Neue", Arial, sans-serif);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink, #161616);
}

.tlv-keys {
	margin: 0 0 20px;
	padding: 14px 18px 16px;
	background: var(--band, #f6f3ee);
}

.tlv-feed h3.tlv-keys__title {
	margin: 0 0 8px;
	font: 700 12px/1.2 var(--sans, "Helvetica Neue", Arial, sans-serif);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--maroon, #660033);
}

.tlv-keys ol {
	margin: 0;
	padding: 0;
	list-style: none;
	font: 400 15px/1.4 var(--sans, "Helvetica Neue", Arial, sans-serif);
}

.tlv-keys li + li {
	margin-top: 6px;
}

.tlv-keys a {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr);
	gap: 8px;
	color: var(--ink, #161616);
	text-decoration: none;
}

.tlv-keys a:hover span,
.tlv-keys a:hover {
	color: var(--maroon, #660033);
}

.tlv-keys time {
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.tlv-feed__new {
	position: sticky;
	top: calc(var(--head-offset, 0px) + 12px);
	z-index: 5;
	display: block;
	margin: 0 auto 16px;
	padding: 9px 18px;
	border: 0;
	border-radius: 999px;
	background: var(--ink, #161616);
	color: #fff;
	font: 600 14px/1.2 var(--sans, "Helvetica Neue", Arial, sans-serif);
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
}

.tlv-feed__new:hover,
.tlv-feed__new:focus-visible {
	background: var(--maroon, #660033);
}

.tlv-feed__new:focus-visible {
	outline: 2px solid var(--maroon, #660033);
	outline-offset: 3px;
}

.tlv-feed__notice {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.tlv-update {
	padding: 16px 0 20px;
	border-top: 1px solid var(--rule, #dcd8d1);
	scroll-margin-top: calc(var(--head-offset, 0px) + 80px);
}

.tlv-update:first-child {
	border-top: 0;
	padding-top: 4px;
}

.tlv-update.is-key {
	padding-left: 16px;
	box-shadow: inset 3px 0 0 var(--maroon, #660033);
}

.tlv-update:target {
	background: var(--band, #f6f3ee);
}

.tlv-update:focus {
	outline: none;
}

.tlv-update__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
	margin: 0 0 6px;
	font: 400 13px/1.3 var(--sans, "Helvetica Neue", Arial, sans-serif);
}

a.tlv-update__time {
	color: var(--ink, #161616);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	text-decoration: none;
}

a.tlv-update__time:hover,
a.tlv-update__time:focus-visible {
	color: var(--maroon, #660033);
	text-decoration: underline;
}

.tlv-update__label {
	font: 700 11.5px/1.2 var(--sans, "Helvetica Neue", Arial, sans-serif);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--maroon, #660033);
}

.tlv-feed h3.tlv-update__title {
	margin: 0 0 8px;
	font: 700 1.1em/1.3 var(--head, Georgia, serif);
	color: var(--ink, #161616);
}

.tlv-update__photo {
	margin: 0 0 12px;
}

.tlv-update__photo img {
	display: block;
	width: 100%;
	height: auto;
}

.tlv-update__photo figcaption {
	margin-top: 6px;
	font: 400 13px/1.45 var(--sans, "Helvetica Neue", Arial, sans-serif);
	color: var(--muted, #6b6b6b);
}

.tlv-update__body > * {
	margin: 0;
}

.tlv-update__body > * + * {
	margin-top: 0.9em;
}

.tlv-feed__empty {
	margin: 0;
	color: var(--muted, #6b6b6b);
	font-style: italic;
}

/* The strip at the top of every page. */
.tlv-strip {
	border-bottom: 1px solid var(--rule, #dcd8d1);
	background: var(--band, #f6f3ee);
	font: 400 13.5px/1.35 var(--sans, "Helvetica Neue", Arial, sans-serif);
}

.tlv-strip__inner {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 28px;
	align-items: center;
	max-width: calc(var(--wrap, 1240px) + 2 * var(--gutter, 16px));
	margin: 0 auto;
	padding: 9px var(--gutter, 16px);
}

.tlv-strip__item {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	max-width: 100%;
	color: var(--ink, #161616);
	text-decoration: none;
}

.tlv-strip__title {
	min-width: 0;
	overflow: hidden;
	font-weight: 700;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.tlv-strip__summary {
	flex: none;
	color: var(--text-2, #484848);
	white-space: nowrap;
}

.tlv-strip__item:hover .tlv-strip__title {
	color: var(--maroon, #660033);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.tlv-strip__all {
	flex: none;
	margin-left: auto;
	color: var(--maroon, #660033);
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.tlv-strip__all:hover {
	text-decoration: underline;
}

/* Phones: the first coverage on one line, and a link to the rest. */
@media (max-width: 767px) {
	.tlv-strip__inner {
		flex-wrap: nowrap;
		gap: 14px;
	}

	.tlv-strip__item {
		flex: 1;
	}

	.tlv-strip__item + .tlv-strip__item,
	.tlv-strip__summary {
		display: none;
	}

	.tlv-strip__all {
		flex: none;
	}
}

/* The feature on the front page and section fronts. */
.tlv-feature {
	display: grid;
	gap: 18px 32px;
	width: min(calc(100% - 2 * var(--gutter, 16px)), var(--wrap, 1240px));
	margin: 20px auto 8px;
	padding: 16px 0 20px;
	border-top: 3px solid var(--live, #b3002d);
	border-bottom: 1px solid var(--rule, #dcd8d1);
}

@media (min-width: 900px) {
	.tlv-feature.has-panel {
		grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
		align-items: start;
	}
}

.tlv-feature__status,
.tlv-listing__status {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
	margin: 0 0 10px;
	font: 500 13.5px/1.4 var(--sans, "Helvetica Neue", Arial, sans-serif);
	color: var(--text-2, #484848);
}

.tlv-feature__count,
.tlv-listing__count {
	margin: 0 0 8px;
	font: 700 14px/1.3 var(--sans, "Helvetica Neue", Arial, sans-serif);
	color: var(--maroon, #660033);
}

.tlv-feature__title {
	margin: 0;
	font: 700 26px/1.2 var(--display, Georgia, serif);
	letter-spacing: -0.005em;
	text-wrap: balance;
}

@media (min-width: 768px) {
	.tlv-feature__title {
		font-size: 32px;
	}
}

.tlv-feature__title a,
.tlv-listing__title a {
	color: var(--ink, #161616);
	text-decoration: none;
}

.tlv-feature__title a:hover,
.tlv-listing__title a:hover {
	color: var(--maroon, #660033);
}

.tlv-feature__excerpt,
.tlv-listing__excerpt {
	margin: 10px 0 0;
	font: 430 16px/1.55 var(--serif, Georgia, serif);
	color: var(--text-2, #484848);
}

.tlv-latest {
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
	font: 400 14.5px/1.4 var(--sans, "Helvetica Neue", Arial, sans-serif);
}

.tlv-latest li {
	padding: 8px 0;
	border-top: 1px solid var(--rule, #dcd8d1);
}

.tlv-latest a {
	display: grid;
	grid-template-columns: 50px minmax(0, 1fr);
	gap: 8px;
	color: var(--ink, #161616);
	text-decoration: none;
}

.tlv-latest time {
	font-weight: 700;
	color: var(--live, #b3002d);
	font-variant-numeric: tabular-nums;
}

.tlv-latest a:hover span {
	color: var(--maroon, #660033);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.tlv-feature__more {
	margin: 12px 0 0;
	font: 600 14px/1.3 var(--sans, "Helvetica Neue", Arial, sans-serif);
}

.tlv-feature__more a {
	color: var(--maroon, #660033);
	text-decoration: none;
}

.tlv-feature__more a::after {
	content: " ›";
}

.tlv-feature__more a:hover {
	text-decoration: underline;
}

/* The live page. */
.tlv-page {
	max-width: calc(var(--wrap, 1240px) + 2 * var(--gutter, 16px));
	margin: 0 auto;
	padding: 28px var(--gutter, 16px) 48px;
}

.tlv-page__head {
	padding-bottom: 4px;
}

.tlv-page__kicker {
	margin: 0 0 8px;
	font: 700 12px/1.2 var(--sans, "Helvetica Neue", Arial, sans-serif);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--maroon, #660033);
}

.tlv-page__title {
	margin: 0;
	font: 700 34px/1.15 var(--display, Georgia, serif);
	color: var(--ink, #161616);
}

@media (min-width: 768px) {
	.tlv-page__title {
		font-size: 42px;
	}
}

.tlv-page__lede {
	max-width: 640px;
	margin: 10px 0 0;
	font: 430 18px/1.55 var(--serif, Georgia, serif);
	color: var(--text-2, #484848);
}

.tlv-page__group {
	margin-top: 32px;
}

.tlv-page__group-title {
	margin: 0 0 6px;
	padding-top: 10px;
	border-top: 2px solid var(--ink, #161616);
	font: 700 13px/1.2 var(--sans, "Helvetica Neue", Arial, sans-serif);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink, #161616);
}

.tlv-page__empty {
	margin: 12px 0 0;
	font: 430 16px/1.5 var(--serif, Georgia, serif);
	color: var(--muted, #6b6b6b);
}

.tlv-listing {
	display: grid;
	gap: 14px 32px;
	padding: 18px 0;
	border-bottom: 1px solid var(--rule, #dcd8d1);
}

@media (min-width: 900px) {
	.tlv-listing.has-panel {
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
		align-items: start;
	}
}

.tlv-listing__title {
	margin: 0;
	font: 700 22px/1.25 var(--head, Georgia, serif);
	text-wrap: balance;
}
