/* Mobile Election Center promo with live odds */
.ec-midterm-promo.ec-promo-mobile {
	display: block;
}

.ec-promo-mobile .ec-promo-button {
	display: block;
	width: 100%;
	margin-top: 14px;
	text-align: center;
}

.ec-promo-mobile .ec-promo-odds {
	display: block;
	width: 100%;
	clear: both;
}

/* Two-row desktop Election Center promo */
.ec-midterm-promo.ec-promo-desktop {
	display: block;
}

@media (max-width: 600px) {
	.ec-promo-mobile .ec-odds-compact-card {
		grid-template-columns: minmax(84px, .75fr) minmax(0, 1.25fr) 86px;
	}

	.ec-promo-mobile .ec-odds-compact-button {
		padding: 7px 3px;
		font-size: 11px;
		white-space: nowrap;
	}
}

.ec-promo-desktop .ec-promo-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	width: 100%;
}

.ec-promo-desktop .ec-promo-copy {
	min-width: 0;
}

.ec-promo-desktop .ec-promo-button {
	flex: 0 0 auto;
}

.ec-promo-desktop .ec-promo-odds {
	display: block;
	width: 100%;
	clear: both;
}

@media (max-width: 700px) {
	.ec-promo-desktop .ec-promo-top {
		display: block;
	}

	.ec-promo-desktop .ec-promo-button {
		display: inline-block;
		margin-top: 12px;
	}
}

/* Compact presentation for 2026 Senate table only */
#tablepress-76_wrapper {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 20px;
  align-items: end;
}

#tablepress-76_wrapper > .clear {
  display: none;
}

#tablepress-76_wrapper .dt-length {
  grid-column: 1;
  justify-self: start;
  text-align: left;
}

#tablepress-76_wrapper .dt-search {
  grid-column: 1;
  justify-self: start;
  text-align: left;
}

#tablepress-76_wrapper .dt-info {
  grid-column: 1;
  justify-self: start;
}

#tablepress-76_wrapper .dt-paging {
  grid-column: 2;
  justify-self: end;
}

.tablepress-id-76 {
  grid-column: 1 / -1;
  width: 100%;
  table-layout: fixed;
  font-size: 14px;
  line-height: 1.25;
  border-collapse: collapse;
}

.tablepress-id-76 th,
.tablepress-id-76 td {
  padding: 5px 7px !important;
  vertical-align: top;
  line-height: 1.25;
  overflow-wrap: break-word;
  word-break: normal;
  border-bottom: 1px solid #d7dee5 !important;
}

.tablepress-id-76 thead th {
  padding-top: 8px !important;
  padding-bottom: 8px !important;
  background: #244a70 !important;
  color: #ffffff !important;
  border-bottom: 2px solid #173550 !important;
  font-size: 14px;
  line-height: 1.2;
}

.tablepress-id-76 thead th,
.tablepress-id-76 thead th * {
  color: #ffffff !important;
}

.tablepress-id-76 tbody tr:nth-child(odd) td {
  background: #ffffff !important;
}

.tablepress-id-76 tbody tr:nth-child(even) td {
  background: #f3f6f8 !important;
}

.tablepress-id-76 tbody tr:hover td {
  background: #e8f1f7 !important;
}

.tablepress-id-76 tbody .column-1 strong {
  color: #173b5e !important;
}

/* TablePress renumbers the five visible columns */
.tablepress-id-76 .column-1 { width: 14%; }
.tablepress-id-76 .column-2 { width: 28%; }
.tablepress-id-76 .column-3 { width: 21%; }
.tablepress-id-76 .column-4 { width: 21%; }
.tablepress-id-76 .column-5 { width: 16%; }

#tablepress-76_wrapper .dt-length,
#tablepress-76_wrapper .dt-search,
#tablepress-76_wrapper .dt-info,
#tablepress-76_wrapper .dt-paging {
  margin: 5px 0;
  font-size: 14px;
  line-height: 1.2;
}

#tablepress-76_wrapper select,
#tablepress-76_wrapper input {
  min-height: 30px;
  padding: 2px 5px;
  border: 1px solid #aebbc7;
  border-radius: 2px;
  background: #ffffff;
  color: #1f2937;
  font-size: 14px;
}

@media (max-width: 600px) {
  #tablepress-76_wrapper {
    grid-template-columns: 1fr;
  }

  #tablepress-76_wrapper .dt-length,
  #tablepress-76_wrapper .dt-search,
  #tablepress-76_wrapper .dt-info,
  #tablepress-76_wrapper .dt-paging {
    grid-column: 1;
    justify-self: stretch;
    text-align: left;
  }
}

/* Compact presentation for 2026 House table only */
#tablepress-77_wrapper { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:20px; align-items:end; }
#tablepress-77_wrapper > .clear { display:none; }
#tablepress-77_wrapper .dt-length,
#tablepress-77_wrapper .dt-search,
#tablepress-77_wrapper .dt-info { grid-column:1; justify-self:start; text-align:left; }
#tablepress-77_wrapper .dt-paging { grid-column:2; justify-self:end; }
.tablepress-id-77 { grid-column:1/-1; width:100%; table-layout:fixed; font-size:14px; line-height:1.25; border-collapse:collapse; }
.tablepress-id-77 th,
.tablepress-id-77 td { padding:5px 7px !important; vertical-align:top; line-height:1.25; overflow-wrap:break-word; word-break:normal; border-bottom:1px solid #d7dee5 !important; }
.tablepress-id-77 thead th { padding-top:8px !important; padding-bottom:8px !important; background:#244a70 !important; color:#fff !important; border-bottom:2px solid #173550 !important; font-size:14px; line-height:1.2; }
.tablepress-id-77 thead th,
.tablepress-id-77 thead th * { color:#fff !important; }
.tablepress-id-77 tbody tr:nth-child(odd) td { background:#fff !important; }
.tablepress-id-77 tbody tr:nth-child(even) td { background:#f3f6f8 !important; }
.tablepress-id-77 tbody tr:hover td { background:#e8f1f7 !important; }
.tablepress-id-77 tbody .column-1 { color:#173b5e; font-weight:700; }
.tablepress-id-77 .column-1 { width:18%; }
.tablepress-id-77 .column-2 { width:23%; }
.tablepress-id-77 .column-3 { width:21%; }
.tablepress-id-77 .column-4 { width:21%; }
.tablepress-id-77 .column-5 { width:17%; }
#tablepress-77_wrapper .dt-length,
#tablepress-77_wrapper .dt-search,
#tablepress-77_wrapper .dt-info,
#tablepress-77_wrapper .dt-paging { margin:5px 0; font-size:14px; line-height:1.2; }
#tablepress-77_wrapper select,
#tablepress-77_wrapper input { min-height:30px; padding:2px 5px; border:1px solid #aebbc7; border-radius:2px; background:#fff; color:#1f2937; font-size:14px; }
@media (max-width:600px) {
 #tablepress-77_wrapper { grid-template-columns:1fr; }
 #tablepress-77_wrapper .dt-length,
 #tablepress-77_wrapper .dt-search,
 #tablepress-77_wrapper .dt-info,
 #tablepress-77_wrapper .dt-paging { grid-column:1; justify-self:stretch; text-align:left; }
}


/* Shared 2026 election guide components */
.ec-election-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding: 10px 12px;
  margin: 20px 0 24px;
  background: #f3f6f8;
  border: 1px solid #d7dee5;
  border-radius: 3px;
  font-size: 14px;
  line-height: 1.25;
}
.ec-election-nav a,
.ec-election-nav .ec-current {
  display: inline-block;
  padding: 7px 11px;
  border: 1px solid #b8c7d4;
  border-radius: 3px;
  text-decoration: none;
}
.ec-election-nav a {
  background: #ffffff;
  color: #173b5e;
  font-weight: 600;
}
.ec-election-nav a:hover,
.ec-election-nav a:focus {
  background: #e8f1f7;
  color: #173b5e;
}
.ec-election-nav .ec-current {
  background: #244a70;
  border-color: #244a70;
  color: #ffffff;
  font-weight: 700;
}
.ec-election-glance {
  padding: 14px 18px;
  margin: 0 0 24px;
  background: #f4f7fa;
  border-left: 5px solid #244a70;
}
.ec-election-glance ul {
  margin-top: 0;
  margin-bottom: 0;
}
.ec-election-glance li {
  margin-bottom: 5px;
}
.ec-election-glance li:last-child {
  margin-bottom: 0;
}
.ec-related-guides {
  margin-top: 28px;
}
.ec-related-guides .ec-election-nav {
  margin-top: 10px;
  margin-bottom: 0;
}
@media (max-width: 600px) {
  .ec-election-nav a,
  .ec-election-nav .ec-current {
    flex: 1 1 100%;
    text-align: center;
  }
}


/* 2026 Governor races TablePress table */
.tablepress-id-78 { width:100%; table-layout:fixed; font-size:14px; line-height:1.25; color:#111827; }
.tablepress-id-78 th,
.tablepress-id-78 td { padding:5px 7px !important; vertical-align:top; line-height:1.25; overflow-wrap:break-word; word-break:normal; border-bottom:1px solid #d7dee5 !important; }
.tablepress-id-78 thead th { padding-top:8px !important; padding-bottom:8px !important; background:#244a70 !important; color:#fff !important; border-bottom:2px solid #173550 !important; font-size:14px; line-height:1.2; }
.tablepress-id-78 thead th,
.tablepress-id-78 thead th * { color:#fff !important; }
.tablepress-id-78 tbody tr:nth-child(odd) td { background:#fff !important; }
.tablepress-id-78 tbody tr:nth-child(even) td { background:#f3f6f8 !important; }
.tablepress-id-78 tbody tr:hover td { background:#e8f1f7 !important; }
.tablepress-id-78 tbody .column-1 { color:#173b5e; font-weight:700; }
.tablepress-id-78 .column-1 { width:15%; }
.tablepress-id-78 .column-2 { width:27%; }
.tablepress-id-78 .column-3 { width:21%; }
.tablepress-id-78 .column-4 { width:21%; }
.tablepress-id-78 .column-5 { width:16%; }
#tablepress-78_wrapper .dt-search { margin:5px 0 8px; font-size:14px; line-height:1.2; justify-self:start; text-align:left; }
#tablepress-78_wrapper .dt-search input { min-height:30px; padding:2px 5px; border:1px solid #aebbc7; border-radius:2px; background:#fff; color:#1f2937; font-size:14px; }
@media (max-width:600px) {
 #tablepress-78_wrapper { grid-template-columns:1fr; }
 #tablepress-78_wrapper .dt-search { grid-column:1; justify-self:stretch; text-align:left; }
}


/* Homepage 2026 Election Center promotion */
.ec-midterm-promo {
	box-sizing: border-box;
	background: linear-gradient(135deg, #173b5e 0%, #2b567f 100%);
	border-left: 5px solid #b22234;
	border-radius: 4px;
	color: #fff;
	margin: 0 0 18px;
	padding: 18px 20px;
	box-shadow: 0 2px 7px rgba(17, 35, 53, 0.14);
}

.ec-promo-desktop {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 25px;
}

.ec-promo-copy {
	flex: 1 1 auto;
}

.ec-promo-label {
	display: block;
	margin-bottom: 4px;
	color: #dce8f2;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.2;
}

.ec-midterm-promo h2 {
	margin: 0 0 5px;
	color: #fff;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
}

.ec-midterm-promo p {
	margin: 0;
	color: #fff;
	font-size: 16px;
	line-height: 1.45;
}

.ec-promo-button {
	display: inline-block;
	flex: 0 0 auto;
	padding: 11px 16px;
	background: #fff;
	border: 1px solid #fff;
	border-radius: 3px;
	color: #173b5e !important;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
}

.ec-promo-button:hover,
.ec-promo-button:focus {
	background: #edf3f7;
	border-color: #edf3f7;
	color: #173b5e !important;
}

/* Hide mobile version on larger screens */
.ec-promo-mobile,
.ec-promo-mobile-wrap {
	display: none;
}

@media (max-width: 767px) {
	/* Hide desktop version */
	.ec-promo-desktop {
		display: none !important;
	}

	/* Constrain after-header mobile element to site width */
	.ec-promo-mobile-wrap {
		display: block;
		box-sizing: border-box;
		width: 100%;
		max-width: 1100px;
		margin: 12px auto 0;
		padding: 0 15px;
	}

	.ec-promo-mobile {
		display: block;
		margin-bottom: 12px;
		padding: 15px 16px 16px;
	}

	.ec-midterm-promo h2 {
		font-size: 21px;
	}

	.ec-midterm-promo p {
		font-size: 15px;
		line-height: 1.4;
	}

	.ec-promo-button {
		display: block;
		width: 100%;
		box-sizing: border-box;
		margin-top: 13px;
		padding: 11px 12px;
		white-space: normal;
	}
}

/* Compact presentation for 2026 Midterm Voting Guide table only */
#tablepress-79_wrapper {
  display: grid;
  grid-template-columns: 1fr;
  align-items: end;
}

#tablepress-79_wrapper > .clear {
  display: none;
}

#tablepress-79_wrapper .dt-search {
  grid-column: 1;
  justify-self: start;
  text-align: left;
  margin: 5px 0 8px;
  font-size: 14px;
  line-height: 1.2;
}

#tablepress-79_wrapper .dt-search input {
  min-height: 30px;
  padding: 2px 5px;
  border: 1px solid #aebbc7;
  border-radius: 2px;
  background: #ffffff;
  color: #1f2937;
  font-size: 14px;
}

.tablepress-id-79 {
  grid-column: 1;
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 14px;
  line-height: 1.25;
}

.tablepress-id-79 th,
.tablepress-id-79 td {
  padding: 5px 7px !important;
  vertical-align: top;
  line-height: 1.25;
  overflow-wrap: break-word;
  word-break: normal;
  border-bottom: 1px solid #d7dee5 !important;
}

.tablepress-id-79 thead th {
  padding-top: 8px !important;
  padding-bottom: 8px !important;
  background: #244a70 !important;
  color: #ffffff !important;
  border-bottom: 2px solid #173550 !important;
  font-size: 14px;
  line-height: 1.2;
}

.tablepress-id-79 thead th,
.tablepress-id-79 thead th * {
  color: #ffffff !important;
}

.tablepress-id-79 tbody tr:nth-child(odd) td {
  background: #ffffff !important;
}

.tablepress-id-79 tbody tr:nth-child(even) td {
  background: #f3f6f8 !important;
}

.tablepress-id-79 tbody tr:hover td {
  background: #e8f1f7 !important;
}

.tablepress-id-79 tbody .column-1,
.tablepress-id-79 tbody .column-1 a {
  color: #173b5e !important;
  font-weight: 700;
}

.tablepress-id-79 .column-1 { width: 13%; }
.tablepress-id-79 .column-2 { width: 17%; }
.tablepress-id-79 .column-3 { width: 18%; }
.tablepress-id-79 .column-4 { width: 17%; }
.tablepress-id-79 .column-5 { width: 18%; }
.tablepress-id-79 .column-6 { width: 17%; }

@media (max-width: 600px) {
  #tablepress-79_wrapper {
    grid-template-columns: 1fr;
  }

  #tablepress-79_wrapper .dt-search {
    grid-column: 1;
    justify-self: stretch;
    text-align: left;
  }

  #tablepress-79_wrapper .dt-search input {
    width: min(100%, 220px);
  }
}


/* In-article 2026 Election Center callout */
.ec26-hub-callout {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	width: 100%;
	margin: 24px 0;
	padding: 20px 22px;
	border-left: 5px solid #c8203f;
	border-radius: 4px;
	background: #28577f;
	color: #fff;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
	box-sizing: border-box;
}

.ec26-hub-content {
	flex: 1 1 auto;
	min-width: 0;
}

.ec26-hub-label {
	margin-bottom: 4px;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.3;
}

.ec26-hub-title {
	margin-bottom: 5px;
	color: #fff;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.25;
}

.ec26-hub-description {
	max-width: 650px;
	color: #fff;
	font-size: 15px;
	line-height: 1.5;
}

.ec26-hub-button {
	display: inline-block;
	flex: 0 0 auto;
	padding: 12px 18px;
	border: 2px solid #fff;
	border-radius: 3px;
	background: #fff;
	color: #153f65;
	font-family: Arial, sans-serif;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	box-sizing: border-box;
}

.ec26-hub-button:visited {
	color: #153f65;
}

.ec26-hub-button:hover,
.ec26-hub-button:focus {
	background: transparent;
	color: #fff;
	text-decoration: none;
}

@media only screen and (max-width: 700px) {
	.ec26-hub-button {
		display: block;
		width: 100%;
		margin-top: 15px;
	}
}

/* Mobile */
@media only screen and (max-width: 700px) {
	.ec26-hub-callout {
		display: block;
		margin: 20px 0;
		padding: 18px;
	}

	.ec26-hub-title {
		font-size: 20px;
	}

	.ec26-hub-description {
		font-size: 14px;
	}

.ec26-hub-button {
		display: block;
		width: 100%;
		margin-top: 15px;
	}
}

/* Election Central support widget */
.ec-support-card {
	padding: 5px 2px;
	background: transparent;
	box-sizing: border-box;
}

.ec-support-title {
	margin: 0 0 7px;
	color: #173b68;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.25;
}

.ec-support-card p {
	margin: 0 0 13px;
	color: #263746;
	font-size: 14px;
	line-height: 1.45;
}

.ec-support-card a {
	display: block;
	padding: 11px 14px;
	border-radius: 3px;
	background: #28577f;
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	text-decoration: none;
	box-sizing: border-box;
}

.ec-support-card a:visited {
	color: #fff;
}

.ec-support-card a:hover,
.ec-support-card a:focus {
	background: #173b68;
	color: #fff;
	text-decoration: none;
}

/* Election Central email subscription box */
#email_sub {
	margin: 22px 0;
	padding: 20px;
	border: 1px solid #c8d5e2;
	border-top: 4px solid #28577f;
	border-radius: 3px;
	background: #f4f7fa;
	box-sizing: border-box;
}

#email_sub h2,
#email_sub h3 {
	margin: 0 0 6px;
	color: #173b68;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.25;
}

#email_sub #subscribe-text,
#email_sub #subscribe-text p {
	margin: 0 0 14px;
	color: #263746;
	font-size: 15px;
	line-height: 1.45;
}

#email_sub form {
	display: flex;
	align-items: stretch;
	width: 100%;
	margin: 0;
}

#email_sub #subscribe-email {
	flex: 1 1 auto;
	margin: 0;
}

#email_sub #subscribe-email input {
	width: 100%;
	height: 44px;
	margin: 0;
	padding: 9px 12px;
	border: 1px solid #aebccc;
	border-radius: 3px 0 0 3px;
	background: #fff;
	color: #202b36;
	font-size: 15px;
	box-sizing: border-box;
}

#email_sub #subscribe-submit {
	flex: 0 0 auto;
	margin: 0;
}

#email_sub #subscribe-submit button,
#email_sub #subscribe-submit input[type="submit"] {
	height: 44px;
	margin: 0;
	padding: 9px 20px;
	border: 1px solid #28577f;
	border-radius: 0 3px 3px 0;
	background: #28577f;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	box-sizing: border-box;
}

#email_sub #subscribe-submit button:hover,
#email_sub #subscribe-submit input[type="submit"]:hover {
	border-color: #173b68;
	background: #173b68;
}

#email_sub .email-sub-note {
	margin-top: 8px;
	color: #607080;
	font-size: 12px;
	line-height: 1.3;
}

/* Mobile */
@media only screen and (max-width: 600px) {
	#email_sub {
		padding: 16px;
	}

	#email_sub h2,
	#email_sub h3 {
		font-size: 20px;
	}

	#email_sub form {
		display: block;
	}

	#email_sub #subscribe-email input {
		border-radius: 3px;
	}

	#email_sub #subscribe-submit {
		margin-top: 8px;
	}

	#email_sub #subscribe-submit button,
	#email_sub #subscribe-submit input[type="submit"] {
		width: 100%;
		border-radius: 3px;
	}
}

#email_sub {
	background: #f4f7fa !important;
	font-family: Arial, sans-serif;
}

#email_sub #subscribe-text,
#email_sub #subscribe-text p,
#email_sub .email-sub-note {
	font-family: Arial, sans-serif;
}

/* ========================================
   Unified article footer
   ======================================== */

/* Email section */
#email_sub {
	margin: 24px 0 0 !important;
	padding: 18px !important;
	border: 1px solid #c8d5e2 !important;
	border-top: 4px solid #28577f !important;
	border-bottom: 0 !important;
	border-radius: 3px 3px 0 0 !important;
	background: #f4f7fa !important;
	font-family: Arial, sans-serif;
	box-sizing: border-box;
}

#email_sub h2,
#email_sub h3 {
	margin: 0 0 6px;
	color: #173b68;
	font-family: Arial, sans-serif;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.25;
}

#email_sub #subscribe-text,
#email_sub #subscribe-text p {
	margin: 0 0 13px;
	color: #263746;
	font-family: Arial, sans-serif;
	font-size: 15px;
	line-height: 1.45;
}

#email_sub form {
	display: flex;
	align-items: stretch;
	width: 100%;
	margin: 0;
}

#email_sub #subscribe-email {
	flex: 1 1 auto;
	margin: 0;
}

#email_sub #subscribe-email input {
	width: 100%;
	height: 44px;
	margin: 0;
	padding: 9px 12px;
	border: 1px solid #aebccc;
	border-radius: 3px 0 0 3px;
	background: #fff;
	font-family: Arial, sans-serif;
	font-size: 15px;
	box-sizing: border-box;
}

#email_sub #subscribe-submit {
	flex: 0 0 auto;
	margin: 0;
}

#email_sub #subscribe-submit button,
#email_sub #subscribe-submit input[type="submit"] {
	height: 44px;
	margin: 0;
	padding: 9px 20px;
	border: 1px solid #28577f;
	border-radius: 0 3px 3px 0;
	background: #28577f;
	color: #fff;
	font-family: Arial, sans-serif;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	box-sizing: border-box;
}

#email_sub #subscribe-submit button:hover,
#email_sub #subscribe-submit input[type="submit"]:hover {
	border-color: #173b68;
	background: #173b68;
}

#email_sub .email-sub-note {
	margin-top: 8px;
	color: #607080;
	font-family: Arial, sans-serif;
	font-size: 12px;
	line-height: 1.3;
}

/* Share section */
.ec-post-share {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 15px;
	margin: 0;
	padding: 13px 18px;
	border: 1px solid #c8d5e2;
	border-bottom: 0;
	background: #fff;
	font-family: Arial, sans-serif;
	box-sizing: border-box;
}

.ec-post-share-label {
	color: #263746;
	font-size: 14px;
	font-weight: 700;
}

.ec-post-share-links {
	display: flex;
	gap: 8px;
}

.ec-post-share-links a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-height: 36px;
	padding: 7px 13px;
	border-radius: 3px;
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	box-sizing: border-box;
}

.ec-post-share-links a:visited {
	color: #fff;
}

.ec-post-share-links a:hover,
.ec-post-share-links a:focus {
	color: #fff;
	opacity: 0.88;
	text-decoration: none;
}

.ec-share-facebook {
	background: #365899;
}

.ec-share-facebook span {
	font-size: 20px;
	font-weight: 700;
}

.ec-share-x {
	background: #111;
}

.ec-share-x span {
	font-size: 17px;
}

/* Author section */
.ec-post-author {
	margin: 0 0 24px;
	padding: 17px 18px;
	border: 1px solid #c8d5e2;
	border-radius: 0 0 3px 3px;
	background: #f8fafc;
	font-family: Arial, sans-serif;
	box-sizing: border-box;
}

.ec-post-author-label {
	margin-bottom: 5px;
	color: #607080;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.3;
	text-transform: uppercase;
}

.ec-post-author-name {
	margin-bottom: 5px;
	color: #173b68;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
}

.ec-post-author .dynamic-author-description {
	color: #263746;
	font-size: 14px;
	line-height: 1.55;
}

/* Mobile */
@media only screen and (max-width: 600px) {
	#email_sub {
		padding: 16px !important;
	}

	#email_sub h2,
	#email_sub h3 {
		font-size: 20px;
	}

	#email_sub form {
		display: block;
	}

	#email_sub #subscribe-email input {
		border-radius: 3px;
	}

	#email_sub #subscribe-submit {
		margin-top: 8px;
	}

	#email_sub #subscribe-submit button,
	#email_sub #subscribe-submit input[type="submit"] {
		width: 100%;
		border-radius: 3px;
	}

	.ec-post-share {
		align-items: flex-start;
		flex-direction: column;
		gap: 9px;
		padding: 14px 16px;
	}

	.ec-post-share-links {
		width: 100%;
	}

	.ec-post-share-links a {
		flex: 1 1 50%;
	}

	.ec-post-author {
		padding: 16px;
	}
}

.ec-post-author .ec-post-author-description,
.ec-post-author .dynamic-author-description {
	color: #263746;
	font-size: 14px;
	line-height: 1.55;
}

/* Close the unified footer when pages have no author section */
.page .ec-post-share {
	border-bottom: 1px solid #c8d5e2;
	border-radius: 0 0 3px 3px;
}

@media only screen and (min-width: 601px) {
	#email_sub #subscribe-text {
		padding-right: 18px;
		box-sizing: border-box;
	}
}

.ec-post-title {
	margin: 0 0 10px;
	color: #111;
	font-size: 42px;
	font-weight: 500;
	letter-spacing: -0.015em;
	line-height: 1.08;
}

.ec-post-byline {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 7px;
	color: #596775;
	font-family: Arial, sans-serif;
	font-size: 14px;
	line-height: 1.4;
}

@media only screen and (max-width: 768px) {
	.ec-post-title {
		font-size: 36px;
	}
}

@media only screen and (max-width: 480px) {
	.ec-post-title {
		font-size: 30px;
	}
}

/* Compact single-post hero spacing */
.single-post .ec-post-byline {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 0;
	margin: 6px 0 20px;
	padding: 0;
	line-height: 1.35;
}

.single-post .featured-image.page-header-image.single {
	margin-top: 0;
	margin-bottom: 24px;
}

.single-post .featured-image.page-header-image.single img {
	display: block;
	width: 100%;
	height: auto;
}

/* 2026 Midterm Hub cards */
.entry-content .ec-hub-table {
    width: 100% !important;
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    margin: 0 0 14px !important;
}

.entry-content .ec-hub-table tr,
.entry-content .ec-hub-table td {
    border: 0 !important;
    background: transparent !important;
}

.entry-content .ec-hub-table td {
    box-sizing: border-box !important;
    width: 50% !important;
    vertical-align: top !important;
    padding: 0 8px 16px 0 !important;
}

.entry-content .ec-hub-table td + td {
    padding-left: 8px !important;
    padding-right: 0 !important;
}

.entry-content a.ec-hub-card {
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    min-height: 180px !important;
    border: 1px solid #cbd5df !important;
    border-radius: 4px !important;
    padding: 20px !important;
    background: #2b567f !important;
    color: #fff !important;
    text-decoration: none !important;
}

.entry-content a.ec-hub-card strong {
    display: block !important;
    margin: 0 0 14px !important;
    color: #fff !important;
    font-size: 20px !important;
    line-height: 1.25 !important;
}

.entry-content a.ec-hub-card:link,
.entry-content a.ec-hub-card:visited,
.entry-content a.ec-hub-card:focus {
    background: #2b567f !important;
    color: #fff !important;
    text-decoration: none !important;
}

.entry-content a.ec-hub-card:link strong,
.entry-content a.ec-hub-card:visited strong,
.entry-content a.ec-hub-card:focus strong {
    color: #fff !important;
}

.entry-content a.ec-hub-card:hover {
    background: #244a70 !important;
    color: #fff !important;
    text-decoration: none !important;
}

.entry-content a.ec-hub-card:hover strong {
    color: #fff !important;
}

@media (max-width: 600px) {
    .entry-content .ec-hub-table,
    .entry-content .ec-hub-table tbody,
    .entry-content .ec-hub-table tr,
    .entry-content .ec-hub-table td {
        display: block !important;
        width: 100% !important;
    }

    .entry-content .ec-hub-table td,
    .entry-content .ec-hub-table td + td {
        padding: 0 0 16px !important;
    }

    .entry-content a.ec-hub-card {
        min-height: 0 !important;
    }
}

/* Compact presentation for 2026 Senate polling table */
#tablepress-80_wrapper {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 20px;
  align-items: end;
}

#tablepress-80_wrapper > .clear {
  display: none;
}

#tablepress-80_wrapper .dt-length,
#tablepress-80_wrapper .dt-search,
#tablepress-80_wrapper .dt-info {
  grid-column: 1;
  justify-self: start;
  text-align: left;
}

#tablepress-80_wrapper .dt-paging {
  grid-column: 2;
  justify-self: end;
}

.tablepress-id-80 {
  grid-column: 1 / -1;
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  color: #111827;
  font-size: 14px;
  line-height: 1.25;
}

.tablepress-id-80 th,
.tablepress-id-80 td {
  padding: 5px 7px !important;
  vertical-align: top;
  line-height: 1.25;
  overflow-wrap: break-word;
  word-break: normal;
  border-bottom: 1px solid #d7dee5 !important;
}

.tablepress-id-80 thead th {
  padding-top: 8px !important;
  padding-bottom: 8px !important;
  background: #244a70 !important;
  color: #ffffff !important;
  border-bottom: 2px solid #173550 !important;
  font-size: 14px;
  line-height: 1.2;
}

.tablepress-id-80 thead th,
.tablepress-id-80 thead th * {
  color: #ffffff !important;
}

.tablepress-id-80 tbody tr:nth-child(odd) td {
  background: #ffffff !important;
}

.tablepress-id-80 tbody tr:nth-child(even) td {
  background: #f3f6f8 !important;
}

.tablepress-id-80 tbody tr:hover td {
  background: #e8f1f7 !important;
}

.tablepress-id-80 tbody .column-1 {
  color: #173b5e;
  font-weight: 700;
}

/* Seven polling-table columns */
.tablepress-id-80 .column-1 { width: 12%; }
.tablepress-id-80 .column-2 { width: 15%; }
.tablepress-id-80 .column-3 { width: 18%; }
.tablepress-id-80 .column-4 { width: 18%; }
.tablepress-id-80 .column-5 { width: 13%; }
.tablepress-id-80 .column-6 { width: 14%; }
.tablepress-id-80 .column-7 { width: 10%; }

/* Keep and center the View Polls link */
.tablepress-id-80 th.column-7,
.tablepress-id-80 td.column-7 {
  text-align: center;
}

.tablepress-id-80 td.column-7 a {
  white-space: nowrap;
  font-size: 13px;
  font-weight: 600;
}

#tablepress-80_wrapper .dt-length,
#tablepress-80_wrapper .dt-search,
#tablepress-80_wrapper .dt-info,
#tablepress-80_wrapper .dt-paging {
  margin: 5px 0;
  font-size: 14px;
  line-height: 1.2;
}

#tablepress-80_wrapper select,
#tablepress-80_wrapper input {
  min-height: 30px;
  padding: 2px 5px;
  border: 1px solid #aebbc7;
  border-radius: 2px;
  background: #ffffff;
  color: #1f2937;
  font-size: 14px;
}

#tablepress-80_wrapper .dt-search input {
  width: 200px;
  max-width: 100%;
}

@media (max-width: 767px) {
  #tablepress-80_wrapper {
    display: block;
    width: 100%;
  }

  #tablepress-80_wrapper .dt-length,
  #tablepress-80_wrapper .dt-search,
  #tablepress-80_wrapper .dt-info,
  #tablepress-80_wrapper .dt-paging {
    display: block;
    width: 100%;
    margin: 8px 0;
    text-align: left;
  }

  #tablepress-80_wrapper .dt-search input {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
  }

  #tablepress-80_wrapper .dt-layout-table {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .tablepress-id-80 {
    min-width: 850px;
    table-layout: fixed;
  }
}

/* ========================================
   FINAL TABLEPRESS LAYOUT FIX
   Tables 76-80: preserve desktop styling and
   allow TablePress horizontal scrolling on mobile.
   Keep this block at the END of the stylesheet.
   ======================================== */

/* Do not turn the DataTables wrapper into a grid.
   TablePress/DataTables creates its own layout rows. */
#tablepress-76_wrapper,
#tablepress-77_wrapper,
#tablepress-78_wrapper,
#tablepress-79_wrapper,
#tablepress-80_wrapper {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

/* Keep generated DataTables rows inside the article width without
   forcing the desktop control cells to stack. */
#tablepress-76_wrapper .dt-layout-row,
#tablepress-77_wrapper .dt-layout-row,
#tablepress-78_wrapper .dt-layout-row,
#tablepress-79_wrapper .dt-layout-row,
#tablepress-80_wrapper .dt-layout-row {
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box;
}

#tablepress-76_wrapper .dt-layout-cell,
#tablepress-77_wrapper .dt-layout-cell,
#tablepress-78_wrapper .dt-layout-cell,
#tablepress-79_wrapper .dt-layout-cell,
#tablepress-80_wrapper .dt-layout-cell {
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box;
}

/* Keep the controls usable without affecting the table viewport. */
#tablepress-76_wrapper .dt-length,
#tablepress-76_wrapper .dt-search,
#tablepress-76_wrapper .dt-info,
#tablepress-76_wrapper .dt-paging,
#tablepress-77_wrapper .dt-length,
#tablepress-77_wrapper .dt-search,
#tablepress-77_wrapper .dt-info,
#tablepress-77_wrapper .dt-paging,
#tablepress-78_wrapper .dt-length,
#tablepress-78_wrapper .dt-search,
#tablepress-78_wrapper .dt-info,
#tablepress-78_wrapper .dt-paging,
#tablepress-79_wrapper .dt-length,
#tablepress-79_wrapper .dt-search,
#tablepress-79_wrapper .dt-info,
#tablepress-79_wrapper .dt-paging,
#tablepress-80_wrapper .dt-length,
#tablepress-80_wrapper .dt-search,
#tablepress-80_wrapper .dt-info,
#tablepress-80_wrapper .dt-paging {
  grid-column: auto !important;
  justify-self: auto !important;
  max-width: 100%;
  box-sizing: border-box;
}

/* The DataTables scroll viewport must stay inside the article width. */
#tablepress-76_wrapper .dt-layout-table,
#tablepress-77_wrapper .dt-layout-table,
#tablepress-78_wrapper .dt-layout-table,
#tablepress-79_wrapper .dt-layout-table,
#tablepress-80_wrapper .dt-layout-table,
#tablepress-76_wrapper .dt-layout-table .dt-layout-cell,
#tablepress-77_wrapper .dt-layout-table .dt-layout-cell,
#tablepress-78_wrapper .dt-layout-table .dt-layout-cell,
#tablepress-79_wrapper .dt-layout-table .dt-layout-cell,
#tablepress-80_wrapper .dt-layout-table .dt-layout-cell,
#tablepress-76_wrapper .dt-scroll,
#tablepress-77_wrapper .dt-scroll,
#tablepress-78_wrapper .dt-scroll,
#tablepress-79_wrapper .dt-scroll,
#tablepress-80_wrapper .dt-scroll {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: hidden;
  box-sizing: border-box;
}

#tablepress-76_wrapper .dt-scroll-body,
#tablepress-77_wrapper .dt-scroll-body,
#tablepress-78_wrapper .dt-scroll-body,
#tablepress-79_wrapper .dt-scroll-body,
#tablepress-80_wrapper .dt-scroll-body {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch;
}

/* Remove the old grid placement from the actual tables. */
.tablepress-id-76,
.tablepress-id-77,
.tablepress-id-78,
.tablepress-id-79,
.tablepress-id-80 {
  grid-column: auto !important;
  max-width: none !important;
}

@media (max-width: 767px) {
  /* A real minimum width prevents words and names from being crushed.
     TablePress's scroll viewport exposes the rest with a horizontal swipe. */
  .tablepress-id-76,
  .tablepress-id-77,
  .tablepress-id-78,
  .tablepress-id-79,
  .tablepress-id-80 {
    width: 900px !important;
    min-width: 900px !important;
    table-layout: fixed !important;
  }

  #tablepress-76_wrapper .dt-scroll-headInner,
  #tablepress-77_wrapper .dt-scroll-headInner,
  #tablepress-78_wrapper .dt-scroll-headInner,
  #tablepress-79_wrapper .dt-scroll-headInner,
  #tablepress-80_wrapper .dt-scroll-headInner {
    min-width: 900px !important;
  }

  #tablepress-76_wrapper .dt-search input,
  #tablepress-77_wrapper .dt-search input,
  #tablepress-78_wrapper .dt-search input,
  #tablepress-79_wrapper .dt-search input,
  #tablepress-80_wrapper .dt-search input {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }
}
