/* **************************************** */
/* * By-election Directory and Area Notices */
/* **************************************** */
.by-election-summary,
.by-election-links,
.by-election-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px 24px;
}

.by-election-summary {
    margin: 24px 0;
}

.by-election-summary > div {
    flex: 1 1 160px;
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.by-election-summary strong {
    display: block;
    font-size: 2rem;
    color: var(--brand);
}

.by-election-summary span,
.by-election-date span,
.by-election-table small {
    display: block;
    color: var(--muted);
}

.by-election-filters {
    margin: 24px 0 12px;
    padding: 20px;
    border-radius: 8px;
    background: #fff;
}

.by-election-filters[hidden] {
    display: none;
}

.by-election-filters label {
    flex: 1 1 230px;
    font-weight: 700;
}

.by-election-filters input,
.by-election-filters select {
    display: block;
    width: 100%;
    margin-top: 6px;
    padding: 12px;
    border: 1px solid #aabecb;
    border-radius: 6px;
    font: inherit;
    color: var(--ink);
    background: #fff;
}

.by-election-table-wrap {
    overflow-x: auto;
    margin: 18px 0 32px;
}

.by-election-table {
    min-width: 880px;
}

.by-election-table caption {
    text-align: left;
    margin-bottom: 10px;
    color: var(--muted);
}

.by-election-table a {
    display: block;
    margin: 4px 0;
}

.by-election-table time {
    white-space: nowrap;
}

.ward-page .by-election-notice {
    margin: 24px 0 32px;
    padding: clamp(18px, 3vw, 30px);
    border-left: 4px solid var(--accent);
}

.by-election-notice h2,
.by-election-detail h3 {
    margin-top: 0;
}

.by-election-detail + .by-election-detail {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
}

.by-election-date strong {
    font-size: 1.3rem;
}

.by-election-links {
    margin: 18px 0;
}

.ward-page .by-election-links .regular-btn {
    display: inline-flex;
    align-items: center;
    padding: 12px 18px;
    color: #fff;
    background: var(--brand);
}

.by-election-table tr:target {
    background: #f8f0dd;
}

.by-election-table tr,
.by-election-notice {
    scroll-margin-top: 150px;
}
