.vertical-align {
  position: relative;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}

@font-face {
  font-family: 'StateFaceRegular';
  src: url('stateface/stateface-regular-webfont.eot');
  src: url('stateface/stateface-regular-webfont.eot?#iefix') format('embedded-opentype'), url('stateface/stateface-regular-webfont.woff') format('woff'), url('stateface/stateface-regular-webfont.ttf') format('truetype'), url('stateface/stateface-regular-webfont.svg#StateFaceRegular') format('svg');
  font-weight: normal;
  font-style: normal;
}

@media screen and (max-width: 860px) {
  .controls-group.last.shortcuts.NY {
    border-left: 0;
    clear: both;
    margin-left: 0;
    padding-left: 0;
    margin-top: 6px;
  }

  body.NY .statetype span.word {
    display: none;
  }
}

@media screen and (max-width: 760px) {
  .raceContainer {
    padding-right: 140px;
  }

  .minimap {
    width: 120px;
  }
}

@media screen and (max-width: 650px) {
  .controls-group.last.shortcuts.NJ {
    border-left: 0;
    clear: both;
    margin-left: 0;
    padding-left: 0;
    margin-top: 6px;
  }

  body.NJ .statetype span.word {
    display: none;
  }

  #wnyc-header-top {
    display: none;
  }

  #election-header {
    padding-top: 12px;
    padding-bottom: 0;
    min-height: 56px;
    position: relative;
  }

  a#mobile-logo {
    display: block;
    width: 80px;
    height: 45px;
    position: absolute;
    left: 0px;
    top: 5px;
    background: url('../img/wnyc_80x90@2x.png') no-repeat;
    background-size: 80px 90px;
    background-position: 0px 0px;
  }

  a#mobile-logo:hover {
    background-position: 0px -45px;
  }

  a#header-image {
    width: 183px;
    height: 24px;
    background: url('../img/election-2014-header-half.png') no-repeat;
    background-size: 183px 24px;
    left: 80px;
    bottom: auto;
    top: 18px;
  }

  div#legend {
    margin-left: 0;
    margin-right: 10px;
  }

  div#last-updated {
    margin-left: 10px;
    float: left;
    text-align: left;
    margin-top: 0;
    clear: none;
  }

  div#info {
    position: static;
    bottom: auto;
    right: auto;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    padding-top: 6px;
    padding-bottom: 6px;
    margin-top: 44px;
  }

  div.sharetools {
    display: block;
  }
}

@media screen and (max-width: 600px) {
  .raceContainer {
    padding-right: 10px;
  }

  .minimap {
    display: none;
  }
}

@media screen and (max-width: 520px) {
  div#results-tables {
    padding-left: 0;
    padding-right: 0;
  }

  .percent-reporting {
    padding: 10px;
    font-size: 11px;
  }

  .candidate {
    padding-left: 10px;
    padding-right: 180px;
  }

  .no-parties .candidate {
    padding-right: 145px;
  }

  .candidate-name {
    font-size: 13px;
  }

  .candidate-vote-percent {
    font-size: 14px;
  }

  .candidate-party {
    font-size: 12px;
    right: 145px;
    width: 30px;
  }

  .candidate-votes {
    right: 70px;
    font-size: 12px;
    width: 70px;
  }

  .candidate-vote-percent {
    right: 10px;
    width: 50px;
  }

  h3.seat-type {
    font-size: 12px;
    letter-spacing: 0.05em;
  }

  div.popup {
    left: 0;
    right: 0;
    bottom: 0;
    max-width: 9999px;
    border-bottom: none;
    border-left: none;
    border-right: none;
  }
}

@media screen and (max-width: 480px) {
  div.controls-group {
    font-size: 12px;
    padding: 0px;
  }

  .racetype .toggle a span,
  .statetype span.word {
    display: none;
  }
}

@media screen and (max-width: 450px) {
  #legend {
    display: none;
  }

  #last-updated {
    position: absolute;
    top: 4px;
    left: 0;
  }

  div#last-updated > div {
    font-size: 11px;
    color: #999;
  }

  a#mobile-logo {
    top: 15px;
  }

  a#header-image {
    top: 28px;
  }

  div#info {
    border-top: 0;
    height: 1px;
    padding: 0;
  }

  div.legend-mobile {
    display: block;
  }

  body.close div.none-close div.legend-mobile {
    display: none;
  }

  .close-race {
    color: #333;
    background: #fff;
    font-size: 14px;
  }

  .close-race a.tweetthis {
    font-size: 12px;
  }
}

@media screen and (max-width: 425px) {
  /*
  div.controls-group {
    float: none;
    margin: 0 auto;
    padding: 0;
    border: 0;
    clear: both;
    text-align: center;
  }

  div.controls-group.toggle {
    float: left;
    width: 50%;
    clear: none;
  }

  div.controls-group a {
    float: none;
    display: inline-block;
    width: 96px;
    text-align: center;
  }

  div.controls-group.toggle a {
    width: 50%;
  }

  div.controls-group.last {
    margin: 8px 0 0 0;
    padding: 8px 0 0 0;
    border-top: 1px solid #eee;
    border-left: 0;
  }

  div.controls-group div {
    clear: both;
  }*/
  /*NY:h,NJ:ediv.controls-group.toggle {
    width: 50%;
    margin: 0;
  }*/
  div.controls-group.toggle a {
    margin: 0;
  }

  div.controls-group.toggle {
    padding-top: 0;
    padding-bottom: 6px;
  }

  div.controls-group.toggle.last {
    margin-left: 0;
    padding-left: 6px;
  }

  .toggle-desktop {
    display: none;
  }

  .toggle-mobile {
    display: inline;
  }

  .toggle-mobile i {
    font-family: 'StateFaceRegular';
    margin-right: 6px;
    text-decoration: none;
  }

  div.controls-group.shortcuts {
    display: none;
  }

  div.controls-group.mobile {
    float: none;
    margin: 0 auto;
    padding: 0;
    border: 0;
    clear: both;
    margin: 8px 0 0 0;
    padding: 8px 0 0 8px;
    border-top: 1px solid #fff;
    border-left: 0;
    display: block;
  }

  div.controls-group.mobile span.word {
    padding: 2px 0;
  }
}

@media screen and (max-width: 375px) {
  div.legend-mobile.winner {
    display: none;
  }

  #credits .ap span {
    padding: 5px 10px 15px 55px;
  }

  div.sharetools {
    width: 60px;
    right: 0px;
    top: 0px;
  }

  div.sharetools a.twitter,
  div.sharetools a.facebook {
    padding: 3px 0;
    width: 30px;
    font-size: 1em;
    -webkit-border-radius: 0px;
    -moz-border-radius: 0px;
    border-radius: 0px;
  }
}
