.article-grid:has(.ec-masthead) { display: block; }
.article-grid:has(.ec-masthead) .article-body { max-width: 980px; }
.article-grid:has(.ec-masthead) > .side { display: none; }

.ec-masthead { margin: 6px 0 22px; padding: 14px 18px; background: var(--navy); border-bottom: 4px solid var(--gold); }
.ec-masthead p { margin: 0; }
.ec-logo-slot { display: block; min-height: 64px; line-height: 64px; font-family: var(--cond); font-weight: 700; font-size: 30px; letter-spacing: .02em; text-transform: uppercase; color: #fff; }
.ec-masthead:has(.ec-logo-slot img) { padding: 0; }
.ec-logo-slot:has(img) { min-height: 0; line-height: 0; }
.ec-logo-slot img { display: block; width: 100%; height: auto; }

.ec-status { border-top: 3px solid var(--navy); border-bottom: 1px solid var(--rule); padding: 12px 0 14px; margin: 0 0 30px; }
.ec-status h2 { font-family: var(--cond); font-weight: 700; font-size: 15px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); margin: 0 0 6px; }
.ec-status p { font-family: var(--sans); font-size: 18px; font-weight: 600; color: var(--navy); margin: 0 0 12px; }
.ec-jump, .ec-town-jump { display: flex; flex-wrap: wrap; gap: 0 4px; font-family: var(--cond); font-weight: 600; font-size: 18px; }
.ec-jump a, .ec-town-jump a { display: inline-block; min-height: 44px; line-height: 44px; padding: 0 12px 0 0; margin-right: 8px; color: var(--link); text-decoration: none; border-bottom: 2px solid transparent; }
.ec-jump a:hover, .ec-town-jump a:hover, .ec-jump a:focus-visible, .ec-town-jump a:focus-visible { border-bottom-color: var(--gold-deep); }

.ec-updates { border-left: 4px solid var(--gold); padding: 4px 0 4px 16px; margin: 0 0 30px; }
.ec-updates h2 { font-family: var(--cond); font-weight: 700; font-size: 22px; color: var(--navy); }
.ec-updates p { font-family: var(--sans); font-size: 17px; }

.ec-group { margin: 40px 0 10px; }
.ec-group > h2 { font-family: var(--cond); font-weight: 700; font-size: 30px; text-transform: uppercase; letter-spacing: .02em; color: var(--navy); border-top: 6px solid var(--navy); padding-top: 10px; margin-bottom: 6px; }
.ec-group > p { font-family: var(--sans); font-size: 16px; color: var(--ink-3); }

.ec-contest { margin: 26px 0 34px; padding-top: 4px; scroll-margin-top: 12px; }
.ec-contest h3 { font-family: var(--serif); font-weight: 600; font-size: 25px; color: var(--ink); margin: 0 0 4px; }
.ec-contest > p, .ec-town > p, .ec-oneline > p { font-family: var(--sans); font-size: 15px; line-height: 1.45; color: var(--ink-2); margin: 6px 0; max-width: 760px; }
.ec-contest > p:last-of-type, .ec-town > p:last-of-type { color: var(--ink-3); }
.ec-question h3 { font-size: 22px; }

.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 10px 0 8px; border-top: 1px solid var(--rule); }
.table-scroll:focus-visible { outline: 3px solid var(--gold-deep); outline-offset: 2px; }
.article-body .table-scroll table.plain { max-width: none; margin: 0; }
.article-body table.ec-table { font-variant-numeric: tabular-nums lining-nums; font-size: 16px; min-width: 100%; }
.article-body table.ec-table caption { font-size: 15px; font-weight: 600; color: var(--ink-3); border-bottom: 3px solid var(--navy); padding: 8px 0; }
.article-body table.ec-table thead th { font-size: 14px; line-height: 1.2; text-transform: uppercase; letter-spacing: .02em; color: var(--ink-2); vertical-align: bottom; padding: 10px 14px 8px 0; }
.article-body table.ec-table tbody th { width: auto; min-width: 9em; font-size: 18px; white-space: nowrap; }
.article-body table.ec-table td { text-align: right; white-space: nowrap; padding-right: 18px; }
.article-body table.ec-table td:last-child { text-align: left; font-family: var(--sans); font-size: 14px; color: var(--ink-3); white-space: normal; min-width: 9em; }
.article-body table.ec-table tbody tr:last-child th, .article-body table.ec-table tbody tr:last-child td { border-bottom: 2px solid var(--navy); }

.article-body table.ec-cands td, .article-body table.ec-cands td:last-child { text-align: left; white-space: normal; font-family: var(--sans); font-size: 16px; color: var(--ink-2); }
.article-body table.ec-cands tbody th { font-family: var(--cond); font-weight: 700; font-size: 19px; letter-spacing: .01em; color: var(--navy); white-space: normal; }

.article-body table.ec-turnout-table td { min-width: 8em; }
.article-body table.ec-turnout-table td:last-child { text-align: right; font-family: inherit; font-size: inherit; color: inherit; }

.ec-oneline ul.plain { font-family: var(--sans); font-size: 16px; columns: 2 360px; column-gap: 40px; }
.ec-oneline ul.plain li { break-inside: avoid; margin: 0 0 12px; }
.ec-oneline ul.plain strong { display: block; font-family: var(--cond); font-size: 18px; color: var(--navy); }

.ec-town { margin: 28px 0 36px; padding: 16px 0 0; border-top: 3px solid var(--navy); scroll-margin-top: 12px; }
.ec-town h3 { font-family: var(--cond); font-weight: 700; font-size: 30px; text-transform: uppercase; letter-spacing: .02em; color: var(--navy); margin: 0 0 6px; }
.article-body table.ec-town-table tbody th { white-space: normal; min-width: 12em; font-family: var(--sans); font-weight: 600; font-size: 15px; color: var(--ink); }
.article-body table.ec-town-table td, .article-body table.ec-town-table td:last-child { text-align: left; white-space: normal; font-size: 15px; color: var(--ink-2); }

.ec-how { background: var(--mist); padding: 4px 22px 18px; margin-top: 44px; }
.ec-how > h2 { border-top: 0; font-size: 24px; }
.ec-how p { font-family: var(--sans); font-size: 16px; }
.ec-how ul.town-links { font-family: var(--sans); font-size: 16px; }

@media (max-width: 640px) {
  .ec-masthead { margin-left: -16px; margin-right: -16px; padding: 12px 16px; }
  .ec-logo-slot { font-size: 24px; min-height: 52px; line-height: 52px; }
  .ec-masthead:has(.ec-logo-slot img) { padding: 0; }
  .ec-logo-slot:has(img) { min-height: 0; line-height: 0; }
  .ec-group > h2 { font-size: 25px; }
  .ec-contest h3 { font-size: 22px; }
  .ec-town h3 { font-size: 25px; }
  .article-body table.ec-table tbody th { font-size: 16px; min-width: 7.5em; }
  .ec-how { margin-left: -16px; margin-right: -16px; padding: 4px 16px 16px; }
}

@media print {
  .ec-jump, .ec-town-jump { display: none; }
  .table-scroll { overflow: visible; }
}
