/*
 * Election Intelligence — public surfaces.
 *
 * Deliberately plain. This sits inside whatever theme the site is running
 * (Divi, here), so it sets spacing, state colours and the locked-control
 * treatment, and leaves fonts and body colour to the theme. A stylesheet that
 * imposes its own typography looks like a widget bolted on rather than part of
 * the page.
 *
 * Every colour below is checked against WCAG AA on white (4.5:1 for text).
 */

.tapei {
	margin: 1.5em 0;
	line-height: 1.5;
}

.tapei h2,
.tapei h3,
.tapei h4 {
	margin: 0 0 .35em;
}

.tapei-empty {
	color: #55595c;
	font-style: italic;
}

/* ── Staff preview banner ───────────────────────────────────────────────── */

/*
 * Loud on purpose. Somebody looking at a preview must never be in any doubt
 * that this is not what the public sees — the expensive mistake is assuming a
 * page is live when it is not, or the reverse.
 */
.tapei-preview-banner {
	background: #fff4e5;
	border-left: 4px solid #a15c00;
	color: #4a3000;
	padding: .7em .9em;
	margin: 0 0 1.2em;
	font-size: .92em;
}

/* ── Seeded marker ──────────────────────────────────────────────────────── */

.tapei-seeded {
	background: #8a1f11;
	color: #fff;
	border-radius: 3px;
	padding: .05em .45em;
	font-size: .68em;
	letter-spacing: .04em;
	vertical-align: middle;
	white-space: nowrap;
}

/* ── Elections ──────────────────────────────────────────────────────────── */

.tapei-election-card {
	border: 1px solid #d8dadc;
	border-radius: 4px;
	padding: 1em 1.15em;
	margin: 0 0 1em;
}

.tapei-when {
	margin: 0 0 .6em;
	color: #44484b;
	font-weight: 600;
}

.tapei-deadlines {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .35em 1.4em;
	font-size: .92em;
}

.tapei-deadlines li {
	margin: 0;
}

.tapei-deadline-label {
	color: #55595c;
}

/* ── Incomplete ballot ──────────────────────────────────────────────────── */

/*
 * Warning colours rather than informational ones. A ballot missing its district
 * races is not a note — it is a gap the reader has to know about before they
 * rely on the page.
 */
.tapei-incomplete {
	background: #fff4e5;
	border-left: 4px solid #a15c00;
	color: #4a3000;
	padding: .7em .9em;
	margin: 0 0 1.2em;
}

/* ── Contests ───────────────────────────────────────────────────────────── */

.tapei-contests,
.tapei-candidates {
	list-style: none;
	margin: 0;
	padding: 0;
}

.tapei-contest {
	padding: .7em 0;
	border-top: 1px solid #e6e8ea;
}

.tapei-district {
	color: #55595c;
	font-weight: 400;
	font-size: .88em;
}

.tapei-seats {
	margin: 0 0 .3em;
	font-size: .9em;
	color: #55595c;
}

.tapei-candidates li {
	padding: .18em 0;
}

.tapei-party,
.tapei-incumbent {
	font-size: .85em;
	color: #55595c;
}

.tapei-incumbent::before {
	content: "· ";
}

.tapei-summary {
	margin: .3em 0 0;
	font-size: .93em;
	color: #33373a;
}

/* ── Locked subscriber controls ─────────────────────────────────────────── */

/*
 * Visibly unavailable rather than visibly broken. The button is genuinely
 * disabled — not styled to look it — so it cannot be activated by keyboard or
 * script, and aria-disabled means a screen reader says so instead of offering
 * it as an action.
 */
.tapei-locked-set {
	margin-top: 1.5em;
	padding-top: 1em;
	border-top: 1px solid #e6e8ea;
}

.tapei-locked {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .5em;
	margin: 0 0 .5em;
}

.tapei-locked-btn {
	background: #f1f2f3;
	border: 1px solid #cfd2d5;
	border-radius: 3px;
	color: #44484b;
	padding: .45em .8em;
	font: inherit;
	font-size: .95em;
	cursor: not-allowed;
}

.tapei-lock {
	margin-right: .2em;
}

.tapei-locked-tag {
	background: #e8eef6;
	color: #1c3f66;
	border-radius: 3px;
	padding: .15em .5em;
	font-size: .74em;
	letter-spacing: .03em;
	text-transform: uppercase;
}

.tapei-subscribe {
	font-weight: 600;
}

/* ── Living Poll vs official results ────────────────────────────────────── */

/*
 * Side by side, never stacked into one "results" area. Keeping them adjacent
 * and equally weighted is what stops an opinion survey being mistaken for a
 * count of votes — which is the single most damaging confusion this site could
 * cause.
 */
.tapei-results-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.2em;
	margin: 1.5em 0 0;
}

.tapei-results-split > div {
	border: 1px solid #d8dadc;
	border-radius: 4px;
	padding: .9em 1em;
}

@media (max-width: 640px) {
	.tapei-results-split {
		grid-template-columns: 1fr;
	}
}

/* ── Official-source notice ─────────────────────────────────────────────── */

.tapei-official-notice {
	margin: 1.4em 0 0;
	padding-top: .8em;
	border-top: 1px solid #e6e8ea;
	font-size: .9em;
	color: #55595c;
}

/* ── Screen-reader text ─────────────────────────────────────────────────── */

/*
 * Defined here rather than relied on from the theme. WordPress core and most
 * themes provide .screen-reader-text, but "most" is not good enough for the
 * element that explains why a button cannot be pressed.
 */
.tapei .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ── Visitor profile form ───────────────────────────────────────────────── */

/*
 * The disclosure sits ABOVE the fields and is styled to be read, not skimmed
 * past. A privacy notice a person reaches after filling the form in has been
 * shown too late to inform anything.
 */
.tapei-disclosure {
	background: #f4f6f8;
	border-left: 4px solid #1c3f66;
	padding: .9em 1.1em;
	margin: 0 0 1.4em;
	font-size: .93em;
}

.tapei-disclosure h3 { margin: 0 0 .4em; font-size: 1em; }
.tapei-disclosure ul { margin: 0 0 0 18px; }
.tapei-disclosure li { margin: .25em 0; }

.tapei-field { margin: 0 0 1em; }

.tapei-field label {
	display: block;
	font-weight: 600;
	margin-bottom: .2em;
}

.tapei-field input[type="text"],
.tapei-field input[type="tel"],
.tapei-field select {
	width: 100%;
	max-width: 26em;
	padding: .4em .5em;
}

.tapei-field input[type="checkbox"] { margin-right: .4em; }

.tapei-field-note {
	display: block;
	font-size: .88em;
	color: #55595c;
	margin-top: .2em;
}

/* Required is marked with a symbol AND announced to a screen reader. */
.tapei-required { color: #8a1f11; }

/*
 * The candidate picker.
 *
 * It has to look like part of the page rather than like the theme's own search
 * box sitting a few inches below it — a reader who cannot tell them apart uses
 * whichever is nearer, and the theme's one searches blog posts.
 */
.tapei-picker {
	margin: 0 0 1em;
	padding: .8em 1em;
	background: #f6f7f7;
	border-left: 3px solid #2271b1;
}

.tapei-picker label {
	display: block;
	font-weight: 600;
	margin-bottom: .35em;
}

.tapei-picker select,
.tapei-picker input[type="search"] {
	max-width: 26em;
	width: 100%;
	padding: .4em .5em;
	margin-bottom: .4em;
}

.tapei-picker-results {
	list-style: none;
	margin: 0 0 1em;
	padding: 0;
}

.tapei-picker-results li {
	padding: .35em 0;
	border-bottom: 1px solid #e6e7e8;
}

/*
 * Where a contest stands — every candidate as a share of 100%.
 *
 * DELIBERATELY NOT PARTY-COLOURED. Filling a bar red or blue would put a
 * party's own branding on our measurement, and in a contest with twenty
 * candidates most of them have no colour anybody recognises. One neutral fill
 * for all of them, and the name does the identifying.
 */
.tapei-standing {
	margin: 1em 0;
}

.tapei-standing-list {
	list-style: none;
	margin: 0 0 .6em;
	padding: 0;
}

.tapei-standing-row {
	display: grid;
	grid-template-columns: minmax(8em, 1fr) auto;
	grid-template-areas:
		"name pct"
		"bar  bar"
		"n    n";
	gap: .15em .6em;
	margin-bottom: .7em;
}

.tapei-standing-name { grid-area: name; font-weight: 600; }

.tapei-standing-pct  { grid-area: pct; font-weight: 700; font-variant-numeric: tabular-nums; }

.tapei-standing-bar {
	grid-area: bar;
	display: block;
	height: 8px;
	background: #e6e7e8;
	border-radius: 4px;
	overflow: hidden;
}

.tapei-standing-bar > span {
	display: block;
	height: 100%;
	background: #50575e;
	border-radius: 4px;
}

.tapei-standing-n {
	grid-area: n;
	font-size: .85em;
	color: #55595c;
	font-variant-numeric: tabular-nums;
}

.tapei-standing-total {
	margin: 0 0 .4em;
	font-variant-numeric: tabular-nums;
}

/*
 * The sentence saying what these numbers are. It travels with every rendering
 * and must not be the thing a reader's eye skips, so it is not shrunk further
 * than the note style already is.
 */
.tapei-standing-label {
	border-left: 3px solid #c3c4c7;
	padding-left: .7em;
}

/*
 * The other slot: what the state counted. The same row layout as a Living
 * Poll standing so the two read as comparable, and a different bar colour
 * plus its own heading so they are never mistaken for one another — one is
 * an opinion survey of subscribers, the other is the certified count.
 */
.tapei-certified {
	margin: 1em 0;
	padding: .6em .9em .2em;
	border: 1px solid #d8dadc;
	border-left: 4px solid #1d4e89;
	border-radius: 4px;
	background: #f8fafc;
}

.tapei-certified-label {
	margin: 0 0 .6em;
	font-weight: 700;
	letter-spacing: .02em;
	text-transform: uppercase;
	font-size: .82em;
	color: #1d4e89;
}

.tapei-certified-list .tapei-standing-bar > span {
	background: #1d4e89;
}

.tapei-certified-list .tapei-party {
	font-weight: 400;
}

/*
 * The invitation to subscribe, shown only to somebody who cannot already take
 * part. Deliberately quieter than the label above it: the label is the thing a
 * reader must not miss, and an advert competing with it for attention would win
 * and teach them to skip both.
 */
.tapei-standing-invite {
	border-left: 3px solid #c3c4c7;
	padding-left: .7em;
	font-style: italic;
}

/* Where a closed or archived poll stands in its life — plain, under the total. */
.tapei-standing-status {
	color: #55595c;
}

/*
 * People on file with the FEC who are not statutory candidates. Prose, not a
 * list — a second column of names would read as a second column of candidates.
 */
.tapei-registered {
	margin: .3em 0 0;
	color: #55595c;
}

/* Qualified with the state, not on its ballot: one quiet line, named. */
.tapei-off-ballot {
	margin: .3em 0 0;
	color: #55595c;
}

/* The state's ballot carries no measure — said from its document, with the link. */
.tapei-no-measures {
	margin: .8em 0 0;
	color: #55595c;
}

/* The Congressional Record, as printed: the transcript's own line breaks kept. */
.tapei-statements .tapei-statement {
	margin: .4em 0;
}

.tapei-record {
	white-space: pre-wrap;
	font-family: Georgia, "Times New Roman", serif;
	font-size: .95em;
	line-height: 1.45;
	margin: .4em 0;
	padding: .6em .9em;
	background: #fbfaf7;
	border-left: 3px solid #c3c4c7;
	overflow-x: auto;
}

.tapei-record-page {
	color: #8a8f94;
	font-size: .85em;
}

/*
 * A heading over a candidate list saying which source it came from. Small and
 * unbolded: the names are the content, this is the label on the drawer. The
 * filings list under a qualified list is quieter still.
 */
.tapei-list-heading {
	margin: .6em 0 .2em;
	font-size: .85em;
	color: #55595c;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.tapei-filings {
	color: #55595c;
	font-size: .95em;
}

/*
 * The standings under one calendar card — a fold, closed, whose summary says
 * how many and how many are still open; each contest a sub-heading inside,
 * and the notice once at the bottom of the group rather than under every one
 * — see standing_notice().
 */
.tapei-calendar-polls {
	margin-top: 1em;
}

.tapei-calendar-poll {
	margin: 0 0 .8em;
}

.tapei-calendar-poll > h5 {
	margin: 0;
	font-size: .95em;
}

.tapei-calendar-poll .tapei-standing {
	margin: .4em 0 .6em;
}

.tapei-calendar-more {
	margin: .2em 0 .8em;
}

/*
 * The "promises made, promises kept" announcement.
 *
 * Deliberately quiet: a bordered aside, not a banner. It sits at the FOOT of a
 * page carrying real records, and anything that competes with them for
 * attention would be an announcement about work not done shouting over work
 * that is. Muted text, normal size, one rule above it.
 */
.tapei-coming-soon {
	border-top: 1px solid #d6d8da;
	margin-top: 2.4em;
	padding-top: 1.2em;
	color: #3c4043;
}

.tapei-coming-soon h2 {
	font-size: 1.15em;
	margin: 0 0 .5em;
}

.tapei-coming-soon p {
	margin: 0 0 .8em;
	max-width: 44em;
}

.tapei-saved {
	background: #e8f5ec;
	border-left: 4px solid #046b2d;
	color: #14361f;
	padding: .7em .9em;
	margin: 0 0 1.2em;
}

.tapei-tap-id {
	background: #f4f6f8;
	padding: .6em .9em;
	border-radius: 4px;
}

.tapei-submit {
	background: #1c3f66;
	color: #fff;
	border: 0;
	border-radius: 3px;
	padding: .55em 1.1em;
	font: inherit;
	cursor: pointer;
}

.tapei-submit:hover { background: #16334f; }

/* ── Living Poll voting control ─────────────────────────────────────────── */

.tapei-poll {
	background: #f8f9fa;
	border: 1px solid #d8dadc;
	border-radius: 4px;
	padding: .9em 1.1em;
	margin: .7em 0;
}

.tapei-poll-q {
	margin: 0 0 .6em;
	font-weight: 600;
}

.tapei-poll fieldset {
	border: 0;
	margin: 0;
	padding: 0;
}

/*
 * Each option is a full-width label wrapping its radio, so the whole row is a
 * target rather than the 13-pixel circle. That matters most on a phone, which
 * is where most of these will be answered.
 */
.tapei-poll-option {
	display: block;
	padding: .4em .2em;
	border-bottom: 1px solid #e6e8ea;
	cursor: pointer;
}

.tapei-poll-option:last-of-type { border-bottom: 0; }

.tapei-poll-option input[disabled] { cursor: not-allowed; }
.tapei-poll-option input[disabled] + * { color: #55595c; }

/* ── Citations ──────────────────────────────────────────────────────────── */

/*
 * Footnote markers rather than a source line under every row. A ballot can
 * carry forty candidates from one source; forty repetitions of the same
 * attribution is wallpaper, and a reader stops seeing it by the third.
 */
.tapei-cite {
	font-size: .72em;
	margin-left: .15em;
}

.tapei-cite a {
	text-decoration: none;
	color: #1c3f66;
}

.tapei-cite a:hover,
.tapei-cite a:focus {
	text-decoration: underline;
}

.tapei-sources {
	margin: 1.6em 0 0;
	padding-top: .9em;
	border-top: 1px solid #e6e8ea;
	font-size: .9em;
}

.tapei-sources h3 {
	font-size: 1em;
	margin: 0 0 .4em;
}

.tapei-sources ol {
	margin: 0 0 0 1.4em;
	padding: 0;
}

.tapei-sources li {
	margin: .25em 0;
}

.tapei-retrieved {
	color: #55595c;
}

/*
 * Stated, not hidden. A row with no citation and a row whose citation the
 * reader missed look identical, so the page says which it is.
 */
.tapei-unsourced {
	color: #8a1f11;
	font-style: italic;
}

/* ── The candidate record, and the button that reaches it ─────────────────
 *
 * The button is a link styled as a button, not a <button> in a form. It
 * navigates, so it is an anchor — a screen reader announcing "button" for
 * something that changes the page is a small lie that costs real people time.
 */
.tapei-record-btn {
	display: inline-block;
	margin-left: 0.5em;
	padding: 0.15em 0.7em;
	border: 1px solid #1d4e89;
	border-radius: 3px;
	background: #f3f7fc;
	color: #1d4e89;
	font-size: 0.85em;
	line-height: 1.7;
	text-decoration: none;
	white-space: nowrap;
}

.tapei-record-btn:hover,
.tapei-record-btn:focus {
	background: #1d4e89;
	color: #fff;
}

/* Focus must be visible on its own, never only as a colour change. */
.tapei-record-btn:focus {
	outline: 2px solid #1d4e89;
	outline-offset: 2px;
}

.tapei-candidate .tapei-finance dl {
	display: grid;
	grid-template-columns: max-content auto;
	gap: 0.15em 1em;
	margin: 0.4em 0;
}

.tapei-candidate .tapei-finance dt {
	font-weight: 600;
}

.tapei-candidate .tapei-finance dd {
	margin: 0;
	font-variant-numeric: tabular-nums;
}

.tapei-vote-counts {
	list-style: none;
	margin: 0.5em 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em 1.5em;
}

.tapei-vote-counts strong {
	font-variant-numeric: tabular-nums;
}

.tapei-votes {
	width: 100%;
	border-collapse: collapse;
	margin: 0.5em 0;
}

.tapei-votes th,
.tapei-votes td {
	padding: 0.3em 0.6em;
	border-bottom: 1px solid #ddd;
	text-align: left;
	vertical-align: top;
}

/* Wide tables scroll inside themselves rather than pushing the page sideways. */
.tapei-candidate {
	overflow-x: auto;
}

.tapei-became-law {
	font-weight: 600;
}

/*
 * "withdrawn" and "cosponsor" are facts, not warnings. Muted rather than
 * coloured, because a red badge next to a politician's name is an editorial
 * act nobody authorised.
 */
.tapei-role,
.tapei-withdrawn,
.tapei-verification {
	color: #555;
	font-size: 0.9em;
}

/* ── Where you are: district maps ─────────────────────────────────────────
 *
 * SVG written by this server from the Census Bureau's boundary files, inline
 * in the page. No tiles, no script, no request from the reader's browser to
 * any map service — a tile request would tell that service what part of the
 * world the reader is looking at, which on a page headed "My Ballot" is
 * where they live.
 *
 * Colours: the reader's own district in the site red; a district offered as
 * a choice in amber, because amber is a question and red is an answer.
 */
.tapei-districts {
	margin: 0 0 1.4em;
}

.tapei-districts > h3 {
	margin: 0 0 .5em;
}

.tapei-map-row {
	display: flex;
	flex-wrap: wrap;
	gap: 1em;
	align-items: flex-start;
}

.tapei-map {
	margin: 0;
	max-width: 100%;
}

.tapei-map-row .tapei-map {
	flex: 1 1 240px;
	max-width: 320px;
}

.tapei-map-svg {
	display: block;
	width: 100%;
	height: auto;
	background: #f4f7fa;
	border: 1px solid #d7dde3;
	border-radius: 6px;
}

.tapei-map figcaption {
	font-size: .82em;
	color: #55595c;
	margin-top: .4em;
	line-height: 1.4;
}

.tapei-map-d {
	fill: #e8eef4;
	stroke: #3a5a7a;
	stroke-width: 1.2;
	stroke-linejoin: round;
	vector-effect: non-scaling-stroke;
}

.tapei-map-d:hover {
	fill: #d5e2ee;
}

.tapei-map-d.is-mine {
	fill: #c8102e;
	fill-opacity: .85;
	stroke: #7a0a1c;
	stroke-width: 2;
}

.tapei-map-d.is-choice {
	fill: #f2b134;
	fill-opacity: .85;
	stroke: #8a5a00;
	stroke-width: 2;
}

.tapei-map-county {
	fill: none;
	stroke: #7d8b99;
	stroke-width: .7;
	stroke-dasharray: 4 3;
	pointer-events: none;
	vector-effect: non-scaling-stroke;
}

.tapei-map-labels text {
	fill: #1d2b3a;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	font-weight: 600;
	paint-order: stroke;
	stroke: #fff;
	stroke-width: 3px;
	stroke-linejoin: round;
	pointer-events: none;
}

.tapei-map-labels text.is-mine {
	fill: #fff;
	stroke: #7a0a1c;
}

.tapei-map-labels text.is-choice {
	fill: #3a2600;
	stroke: #fff;
}

/* A whole-state map on its own page can take the width it is given. */
.tapei-map-page .tapei-map {
	max-width: 900px;
}

/* ── The question a split ZIP puts to the reader ───────────────────────── */

.tapei-picker {
	margin: .8em 0 0;
	padding: .8em 1em;
	background: #fff8e8;
	border-left: 4px solid #a15c00;
}

.tapei-picker fieldset {
	border: 0;
	margin: 0;
	padding: 0;
}

.tapei-picker legend {
	font-weight: 600;
	margin-bottom: .2em;
}

.tapei-pick-option {
	display: block;
	padding: .25em 0;
	cursor: pointer;
}

.tapei-pick-share {
	color: #55595c;
	font-size: .9em;
}

.tapei-button {
	display: inline-block;
	margin-top: .5em;
	padding: .35em .9em;
	border: 1px solid #1d4e89;
	border-radius: 3px;
	background: #1d4e89;
	color: #fff;
	font-size: .92em;
	cursor: pointer;
}

.tapei-button:hover,
.tapei-button:focus {
	background: #163c6a;
}

.tapei-button:focus {
	outline: 2px solid #1d4e89;
	outline-offset: 2px;
}

.tapei-button-quiet {
	background: transparent;
	color: #1d4e89;
}

.tapei-button-quiet:hover,
.tapei-button-quiet:focus {
	background: #f3f7fc;
}

/* ── Contests we cannot yet place the reader in ────────────────────────── */

.tapei-unplaced {
	margin-top: 1em;
	background: #fafbfc;
}

.tapei-unplaced .tapei-contests {
	margin-top: .5em;
}

/* ── Folded sections ─────────────────────────────────────────────────────── */

/*
 * "Our pages are getting long" — owner, 12 September 2026. Every long section
 * is a native <details>: no script, keyboard and screen reader for free, and
 * every word still in the page for search, print and readers with scripts
 * off. The summary line is the part that earns its place — a title and, after
 * it, what is inside as a count — so a reader can decide NOT to open it.
 *
 * The disclosure marker is the browser's own, kept. It is the one affordance
 * every reader already knows, and replacing it with an icon of ours would be
 * trading that for nothing.
 */
.tapei-fold {
	margin: 0 0 .6em;
	border: 1px solid #e6e8ea;
	border-radius: 4px;
	background: #fff;
}

.tapei-fold > summary {
	cursor: pointer;
	padding: .55em .9em;
	line-height: 1.4;
}

.tapei-fold > summary:hover {
	background: #f3f7fc;
}

.tapei-fold > summary:focus-visible {
	outline: 2px solid #1d4e89;
	outline-offset: -2px;
}

.tapei-fold[open] > summary {
	border-bottom: 1px solid #e6e8ea;
}

.tapei-fold-title {
	font-weight: 600;
}

.tapei-fold-sum {
	color: #55595c;
	font-size: .9em;
}

.tapei-fold-sum::before {
	content: "— ";
}

.tapei-fold-body {
	padding: .7em .9em .5em;
}

.tapei-fold-body > .tapei-contests,
.tapei-fold-body > .tapei-terms,
.tapei-fold-body > .tapei-bills,
.tapei-fold-body > .tapei-evidence,
.tapei-fold-body > .tapei-committees {
	margin-top: 0;
}

/* Folds inside a fold — the offices inside an election card. */
.tapei-fold-body > .tapei-fold {
	background: #fafbfc;
}

.tapei-fold-body > .tapei-fold:last-child {
	margin-bottom: .2em;
}

/* An election card is itself a fold whose summary is its heading. */
.tapei-fold.tapei-election-card {
	padding: 0;
	margin: 0 0 1em;
	border-color: #d8dadc;
}

.tapei-fold.tapei-election-card > summary .tapei-fold-title {
	font-size: 1.15em;
}

/* The maps live in "Where you are"; give them their room at the foot. */
.tapei-districts > .tapei-fold-body {
	padding-bottom: .9em;
}