.e2018_banner {

  width: 100%;
  height: 80px;
  text-align: center;

  font-family: "Times New Roman", Times, serif;
  font-size: 50px;
  text-transform: uppercase;
  color: #fff;
  line-height: 80px;

  margin: -20px 0 5px;

  background: #DC0000;
  background: -moz-linear-gradient(top, #DC0000 0%, #b50012 100%);
  background: -webkit-linear-gradient(top, #DC0000 0%,#b50012 100%);
  background: linear-gradient(to bottom, #DC0000 0%,#b50012 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#DC0000', endColorstr='#b50012',GradientType=0 );
}
.e2018_banner .text span {
  text-shadow: -2px 2px 3px rgba(0, 0, 0, 1);
}

.e2018_top_results {
  box-sizing: border-box;
  overflow: auto;
  font: 11px "Times New Roman",Times,serif;
}
.e2018_top_results * {
  box-sizing: border-box;
}
.e2018_top_results a {
  color: inherit;
}
.e2018_top_results .dem {
  color: #0000cc;
}
.e2018_top_results .gop {
  color: #cc0000;
}
  .e2018_top_results .top_result {
    float: left;
    border: 1px solid #999;
    width: calc(100% / 3);
  }
  .e2018_top_results .top_result:not(:first-child) {
    border-left: none;
  }
    .e2018_top_results .top_result > .title {
      background: #555;
      color: #fff;
      font-size: 20px;
      font-weight: bold;
      letter-spacing: 1px;
      padding: 2px 0 3px;
      text-transform: uppercase;
      text-align: center;
    }
    .e2018_top_results .top_result > .score {
      overflow: auto;
      padding: 3px 0;
      min-height: 44px;
      position: relative;
    }
      .e2018_top_results .top_result > .score > .party {
        float: left;
        width: 50%;
        text-align: center;
        font-size: 14px;
        font-weight: bold;
      }
        .e2018_top_results .top_result > .score > .party > .score {
          font-size: 18px;
        }
  .e2018_stars {
    color: #666;
    font: 10px "Times New Roman",Times,serif;
    letter-spacing: 10px;
    margin: 0 0 -2px;
    padding: 4px 0 0;
    text-align: center;
  }

.e2018_spinner {
  display: table;
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(255,255,255,0.75);
}
.e2018_spinner > div {
  display: table-cell;
  vertical-align: middle;
}
.e2018_spinner > div > div {
  margin: 0 auto;
  height: 28px;
  width: 28px;
  animation: spinner_rotate 0.8s infinite linear;
  border: 6px solid #666;
  border-right-color: transparent;
  border-radius: 50%;
}
.e2018_spinner.light > div > div {
  border-color: #fff;
}

@keyframes spinner_rotate {
  0%    { transform: rotate(0deg); }
  100%  { transform: rotate(360deg); }
}

.e2018_results_blocks * {
  box-sizing: border-box;
}
.e2018_results_blocks a {
  color: inherit;
}
.e2018_results_blocks .dem {
  color: #0000cc;
}
.e2018_results_blocks .gop {
  color: #cc0000;
}

  .e2018_results_blocks .results_block {
    border: 1px solid #ccc;
    margin-top: 5px;
    position: relative;
    min-height: 100px;
  }

    .e2018_results_blocks .results_block > .title {
      background: #666;
      padding: 2px 0 3px;
      position: relative;
    }

      .e2018_results_blocks .results_block > .title .text {
        font: 20px "Times New Roman",Times,serif;
        font-weight: bold;
        color: #fff;
        letter-spacing: 1px;
        text-transform: uppercase;
        text-align: center;
      }

      .e2018_results_blocks .results_block > .title .refresh {
        background: url('/images/icon-reload.png') 0 0 no-repeat;
        color: #fff;
        font-size: 12px;
        padding: 1px 0px 2px 16px;
        position: absolute;
        right: 8px;
        top: 7px;
        cursor: pointer;
      }

    .e2018_results_blocks .results_block > .overview {
      margin: 0;
      padding: 2px 0;
      font: normal 20px Arial, Helvetica, sans-serif;
      font-weight: bold;
      text-align: center;
    }
      .e2018_results_blocks .results_block > .overview > span:first-child {
        padding-right: 5px;
      }

    .e2018_results_blocks .results_block > table.races {
      font: 11px "Times New Roman",Times,serif;
      width: 100%;
      border-collapse: collapse;
    }
      .e2018_results_blocks .results_block > table.races > tbody > tr > th,
      .e2018_results_blocks .results_block > table.races > tbody > tr > td {
        padding: 0;
      }
      .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th {
        background: #dedede;
        border-top: 1px solid #ccc;
        border-bottom: 1px solid #ccc;
        text-align: center;
        padding: 1px 0 2px;
      }
      .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:first-child {
        width: 25%;
      }
      .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:nth-child(2) {
        width: 18%;
      }
      .e2018_results_blocks .results_block > table.races > tbody > tr:first-child > th:nth-child(3) {
        width: 18%;
      }
      .e2018_results_blocks .results_block > table.races > tbody > tr > td {
        text-align: center;
        border-bottom: 1px solid #eee;
        padding: 1px 0 2px;
      }
      .e2018_results_blocks .results_block > table.races > tbody > tr > td.name {
        text-align: left;
        padding-left: 3px;
      }
      .e2018_results_blocks .results_block > table.races > tbody > tr > td.spacer {
        
      }
      .e2018_results_blocks .results_block > table.races > tbody > tr > td.hold {
        width: 67px;
      }
      .e2018_results_blocks .results_block > table.races > tbody > tr > td.percent_in {
        width: 44px;
      }
      .e2018_results_blocks .results_block > table.races > tbody > tr.pickup > td {
        font-weight: bold;
      }
      .e2018_results_blocks .results_block > table.races > tbody > tr.winner > td.name {
        padding-left: 17px;
        background: url('/images/electoral_check_v2.gif') 3px 3px no-repeat;
      }
      .e2018_results_blocks .results_block > table.races > tbody > tr.winner.gop > td.name {
        background: url('/images/electoral_check_gop.gif') 3px 3px no-repeat;
      }
      .e2018_results_blocks .results_block > table.races > tbody > tr.winner.dem > td.name {
        background: url('/images/electoral_check_dem.gif') 3px 3px no-repeat;
      }
    
    .e2018_results_blocks .results_block > .footer {
      font: 10px Verdana, Arial, Helvetica, sans-serif;
      text-align: center;
      padding: 3px;
      background: #eee;
      color: #d30015;
    }

.e2018_map_widget {
  margin-bottom: 10px;
}
.e2018_map_widget * {
  box-sizing: border-box;
}
.e2018_map_widget a {
  color: inherit;
  font-weight: bold;
}
.e2018_map_widget .dem {
  color: #0000cc;
}
.e2018_map_widget .gop {
  color: #cc0000;
}
.e2018_map_widget > .title {
  background: #dc0000;
  font-size: 1.2em;
  font-weight: bold;
  padding: 8px 0;
  text-align: center;
  color: #fff;
}
.e2018_map_widget > ul.nav {
  padding: 5px 5px 5px 0;
  margin: 0;
  list-style: none;
  overflow: auto;
  background: #dc0000;
  font-size: 14px;
}
  .e2018_map_widget > ul.nav > li {
    float: left;
    width: calc((100% / 3) - 5px);
    text-align: center;
    margin-left: 5px;
    background: #eee;
    padding: 5px 0;
    cursor: pointer;
  }
  .e2018_map_widget > ul.nav > li.active,
  .e2018_map_widget > ul.nav > li:hover {
    color: #fff;
    background: rgba(68,68,68,1);
    background: -moz-linear-gradient(top, rgba(68,68,68,1) 0%, rgba(102,102,102,1) 53%, rgba(102,102,102,1) 100%);
    background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(68,68,68,1)), color-stop(53%, rgba(102,102,102,1)), color-stop(100%, rgba(102,102,102,1)));
    background: -webkit-linear-gradient(top, rgba(68,68,68,1) 0%, rgba(102,102,102,1) 53%, rgba(102,102,102,1) 100%);
    background: -o-linear-gradient(top, rgba(68,68,68,1) 0%, rgba(102,102,102,1) 53%, rgba(102,102,102,1) 100%);
    background: -ms-linear-gradient(top, rgba(68,68,68,1) 0%, rgba(102,102,102,1) 53%, rgba(102,102,102,1) 100%);
    background: linear-gradient(to bottom, rgba(68,68,68,1) 0%, rgba(102,102,102,1) 53%, rgba(102,102,102,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#444444", endColorstr="#666666", GradientType=0 );
  }
.e2018_map_widget > .pages {
  border: 1px solid #eee;
  font-size: 14px;
}
  .e2018_map_widget > .pages > .page {
    position: relative;
  }
    .e2018_map_widget > .pages > .page > .score {
      background: #f4f4f4;
      overflow: auto;
      padding: 4px 0;
    }
      .e2018_map_widget > .pages > .page > .score > .party {
        float: left;
        width: 50%;
      }
      .e2018_map_widget > .pages > .page > .score > .party.dem {
        text-align: right;
        padding-right: 5px;
      }
      .e2018_map_widget > .pages > .page > .score > .party.gop {
        text-align: left;
        padding-left: 5px;
      }
    .e2018_map_widget > .pages > .page > .map {
      overflow: hidden;
      height: 0px;
      width: 100%;
      padding-top: 61%;
      position: relative;
    }
      .e2018_map_widget > .pages > .page > .map img {
        width: 100%;
        position: absolute;
        top: 0;
        left: 0;
      }

.e2018_details * {
  box-sizing: border-box;
}
.e2018_details a {
  color: inherit;
}
.e2018_details .dem {
  color: #0000cc;
}
.e2018_details .gop {
  color: #cc0000;
}
  .e2018_details .house_pages_nav {
    text-align: center;
    margin: 20px 0;
  }
    .e2018_details .house_pages_nav > a.active {
      text-decoration: underline;
    }
  .e2018_details > .map {
    overflow: auto;
    position: relative;
  }
    .e2018_details > .map img.map_image {
      margin: 20px auto;
      display: block;
      width: 100%;
    }
  .e2018_details > .title > h2 {
    font-size: 32px;
    letter-spacing: 4px;
    margin: 10px 0 6px;
    text-transform: uppercase;
  }
  .e2018_details > .title > h3 {
    text-align: center;
  }
    .e2018_details > .title > h2 > span.year {
      font-size: 40px;
    }
    .e2018_details > .title > h2 > span.first {
      font-size: 40px;
    }
  .e2018_details > ul.top_nav {
    border-bottom: 3px double #ccc;
    border-top: 3px double #ccc;
    font: 12px "Lucida Grande", Tahoma, sans-serif;
    list-style: none;
    margin: 18px 0 8px;
    padding: 0;
    text-transform: uppercase;
    overflow: auto;
    text-align: center;
  }
    .e2018_details > ul.top_nav > li {
      list-style: none;
      float: left;
      width: calc(100% / 3);
      padding: 8px 0 7px;
    }
      .e2018_details > ul.top_nav > li > .top {
        color: #cc0000;
        display: block;
      }
      .e2018_details > ul.top_nav > li > .bottom {
        color: #999;
        display: block;
        font-size: 10px;
      }
  .e2018_details .top_results {
    margin-bottom: 5px;
    overflow: auto;
  }
  .e2018_details .top_results .result {
    font: 12px "Times New Roman", Times, serif;
    float: left;
    border: 1px solid #999;
    width: calc(100% / 3);
  }
  .e2018_details .top_results .result:not(:first-child) {
    border-left: none;
  }
    .e2018_details .top_results .result > .title {
      background: #555;
      color: #fff;
      font-size: 14px;
      font-weight: bold;
      letter-spacing: 1px;
      padding: 2px 0 3px;
      text-transform: uppercase;
      text-align: center;
    }
    .e2018_details .top_results .result > .score {
      overflow: auto;
      padding: 3px 0;
      min-height: 44px;
      position: relative;
    }
      .e2018_details .top_results .result > .score > .party {
        float: left;
        width: 50%;
        text-align: center;
        font-size: 14px;
      }
        .e2018_details .top_results .result > .score > .party > .score {
          font-size: 18px;
          font-weight: bold;
        }
    .e2018_details .top_results .result > .states {
      border-top: 1px solid #999;
      background: #f0f0f0;
      padding: 5px 0;
    }
      .e2018_details .top_results .result > .states > select {
        font-size: 12px;
        display: block;
        margin: 0 auto;
      }
  .e2018_details .results_block {
    border: 1px solid #ccc;
    margin-top: 5px;
    position: relative;
    min-height: 100px;
    margin-bottom: 20px;
  }

    .e2018_details .results_block > .title {
      background: #666;
      padding: 2px 0 3px;
      position: relative;
    }

      .e2018_details .results_block > .title .text {
        font: 20px "Times New Roman",Times,serif;
        font-weight: bold;
        color: #fff;
        letter-spacing: 1px;
        text-transform: uppercase;
        text-align: center;
      }

      .e2018_details .results_block > .title .refresh {
        background: url('/images/icon-reload.png') 0 0 no-repeat;
        color: #fff;
        font-size: 12px;
        padding: 1px 0px 2px 16px;
        position: absolute;
        right: 8px;
        top: 7px;
        cursor: pointer;
      }

    .e2018_details .results_block > .overview {
      margin: 0;
      padding: 2px 0;
      font: normal 20px Arial, Helvetica, sans-serif;
      font-weight: bold;
      text-align: center;
    }
      .e2018_details .results_block > .overview > span:first-child {
        padding-right: 5px;
      }
      .e2018_details .results_block > table.races {
          font: 11px "Times New Roman",Times,serif;
          width: 100%;
          border-collapse: collapse;
        }
        .e2018_details .results_block > table.races > tbody > tr > th,
        .e2018_details .results_block > table.races > tbody > tr > td {
          padding: 0;
        }
        .e2018_details .results_block > table.races > tbody > tr:first-child > th {
          background: #dedede;
          border-top: 1px solid #ccc;
          border-bottom: 1px solid #ccc;
          text-align: center;
          padding: 1px 0 2px;
        }
        .e2018_details .results_block > table.races > tbody > tr:first-child > th:first-child {
          width: 25%;
        }
        .e2018_details .results_block > table.races > tbody > tr:first-child > th:nth-child(2) {
          width: 18%;
        }
        .e2018_details .results_block > table.races > tbody > tr:first-child > th:nth-child(3) {
          width: 18%;
        }
        .e2018_details .results_block > table.races > tbody > tr > td {
          text-align: center;
          border-bottom: 1px solid #eee;
          padding: 1px 0 2px;
        }
        .e2018_details .results_block > table.races > tbody > tr > td.state {
          text-align: left;
          font-weight: bold;
          font-size: 16px;
          padding: 10px 8px 4px;
          border-bottom: 1px solid #ccc;
        }
        .e2018_details .results_block > table.races > tbody > tr > td.name {
          text-align: left;
          padding-left: 3px;
        }
        .e2018_details .results_block > table.races > tbody > tr.pickup > td {
          font-weight: bold;
        }
        .e2018_details .results_block > table.races > tbody > tr.winner > td.name {
          padding-left: 17px;
          background: url('/images/electoral_check_v2.gif') 3px 3px no-repeat;
        }
        .e2018_details .results_block > table.races > tbody > tr.winner.gop > td.name {
          background: url('/images/electoral_check_gop.gif') 3px 3px no-repeat;
        }
        .e2018_details .results_block > table.races > tbody > tr.winner.dem > td.name {
          background: url('/images/electoral_check_dem.gif') 3px 3px no-repeat;
        }

.e2018_state {
  margin-top: 30px;
}
.e2018_state * {
  box-sizing: border-box;
}
.e2018_state a {
  color: inherit;
}
.e2018_state .dem {
  color: #0000cc;
}
.e2018_state .gop {
  color: #cc0000;
}
  .e2018_state > .title {
    position: relative;
  }
    .e2018_state > .title > h2 {
      font-size: 32px;
      letter-spacing: 4px;
      margin: 10px 0 6px;
      text-transform: uppercase;
      text-align: center;
    }
      .e2018_state > .title > h2 > span.year {
        font-size: 40px;
      }
      .e2018_state > .title > h2 > span.first {
        font-size: 40px;
      }
  .e2018_state .pages_nav {
    text-align: center;
    margin: 20px 0;
  }
    .e2018_state .pages_nav > a {
      padding: 0 10px;
      border-left: 1px solid #666;
    }
    .e2018_state .pages_nav > a:first-child {
      border-left: none;
    }
    .e2018_state .pages_nav > a.active {
      text-decoration: underline;
    }

/* RESPONSIVE */

@media only screen and (max-width: 1149px) {

  .e2018_details .top_results .result > .title {
    font-size: 12px;
  }
  .e2018_details .top_results .result > .states > select {
    font-size: 10px;
  }
}

@media only screen and (max-width: 1149px) {

  .e2018_details .top_results .result > .title {
    font-size: 12px;
  }
  .e2018_details .top_results .result > .states > select {
    font-size: 10px;
  }
}

@media only screen and (max-width: 1023px) {

  .e2018_details .top_results .result {
    width: 100%;
    margin-bottom: 10px;
  }
  .e2018_details .top_results .result:not(:first-child) {
    border-left: 1px solid #999;
  }
  .e2018_details .top_results .result > .title {
    font-size: 14px;
  }
  .e2018_details .top_results .result > .states > select {
    font-size: 12px;
  }
}

@media only screen and (max-width: 767px) {

  .e2018_details .top_results .result {
    width: calc(100% / 3);
    margin-bottom: 0;
  }
  .e2018_details .top_results .result:not(:first-child) {
    border-left: none;
  }
  .e2018_details .top_results .result > .title {
    font-size: 12px;
  }
  .e2018_details .top_results .result > .states > select {
    font-size: 10px;
  }
}

@media only screen and (max-width: 619px) {

  .e2018_details .top_results .result {
    width: 100%;
    margin-bottom: 10px;
  }
  .e2018_details .top_results .result:not(:first-child) {
    border-left: 1px solid #999;
  }
  .e2018_details .top_results .result > .title {
    font-size: 14px;
  }
  .e2018_details .top_results .result > .states > select {
    font-size: 12px;
  }
}

@media only screen and (max-width: 589px) {
  .e2018_banner {
    font-size: 34px;
  }
  .e2018_top_results .top_result {
    width: calc(100%);
  }
  .e2018_top_results .top_result:not(:first-child) {
    border-left: 1px solid #999;
  }
  .e2018_results_blocks .results_block > table.races > tbody > tr > th.other_party,
  .e2018_results_blocks .results_block > table.races > tbody > tr > td.other_party {
    display: none;
  }
}
@media only screen and (max-width: 399px) {
  .e2018_banner {
    font-size: 26px;
  }
}

/* Hide/Show entire widgets depending on mobile or not, on homepage */
/* Any css that only applies whether it's mobile or not goes here */

#live_results_alpha_1_mobile,
#live_results_alpha_2_mobile,
#live_results_beta_1_mobile {
  display: none;
}

#live_results_alpha_1_mobile .e2018_banner {
  margin-top: 20px;
}

@media only screen and (max-width: 767px) {

  #live_results_alpha_1,
  #live_results_alpha_2,
  #live_results_beta_1 {
    display: none;
  }

  #live_results_alpha_1_mobile,
  #live_results_alpha_2_mobile,
  #live_results_beta_1_mobile {
    display: block;
  }
}