/* Google Font */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap');
body { margin: 0; font-family: 'Montserrat', sans-serif; line-height: 1.5em; min-height: auto !important; }
a, a:hover, a:visited, a:active { color: #5B6B8B; }
a:hover { text-decoration: none; color: #3F4862; }
.clear { clear: both; }
h1 { line-height: 1.1em; }

hr { margin-block-start: 20px; margin-block-end: 20px; border: 0px; border-top: 1px solid #EEE !important; }

#header { width: 100%; }
.headerLogo { width: calc(100% - 20px); max-width: 800px; text-align: left; padding: 10px; margin: 0 auto; }
.headerLogo img { height: 100px; width: auto; }
.headerTextContainer { background: #5B6B8B; color: #FFF; font-size: 20px; width: 100%; }
.headerText { text-transform: uppercase; font-weight: 700; text-align: left; padding: 10px; width: calc(100% - 20px); max-width: 800px; margin: 0 auto; }
.headerText a { color: #FFF; text-decoration: none; }

#headerSearch { width: 100%; text-align: center; background: #F6F6F6; padding: 10px 0; }
.headerSearchBar { width: 800px; max-width: calc(100% - 20px); margin: 0 auto; }
.headerSearchBar input[type="text"] { width: 100%; font-family: 'Montserrat', sans-serif; font-size: 18px; border: 1px solid #5B6B8B; padding: 6px 5px; }

#results { width: 800px; max-width: calc(100% - 20px); margin: 20px auto; }
.electionHeader { text-align: center; margin: 25px 0; }
.electionHeader h2 { color: #000; margin: 0; text-align: center; display: inline-block; background: #FFD200; padding: 10px 20px; }
.electionDetails { display: flex; flex-wrap: wrap; border-bottom: 2px solid #F6F6F6; margin: 0; padding: 15px; align-items: center; }
.electionDetails:hover { background: #F6F6F6; border-bottom: 2px solid #E6E6E6; transition: 0.5s; }
.electionInfo { width: calc(100% - 225px); }
.electionInfo b { display: block; font-size: 18px; margin: 0 0 5px; }
.electionLinks { width: 225px; text-align: right; }
.electionLinks a { background: #5B6B8B; color: #FFF; padding: 5px 8px; text-transform: uppercase; text-decoration: none; display: inline-block; }
.electionLinks a:hover { background: #3F4862; transition: 1s; }

/* Election Results Pages */

#electionInfo { width: 800px; max-width: calc(100% - 20px); margin: 20px auto; }
#electionHeader { background: #F6F6F6; padding: 10px 0; }
.electionHeaderInfo { width: 800px; max-width: calc(100% - 20px); margin: 0 auto; }

.electionResults { display: flex; width: calc(100% + 10px); flex-wrap: wrap; margin: 0 -5px 20px; }
.electionResults h2 { width: calc(100% - 10px); margin: 0 5px 20px; }
.resultsLink { width: calc(50% - 20px); text-align: center; padding: 10px 5px; margin: 5px; background: #E6E6E6; }
.resultsLink a { display: block; width: 100%; font-weight: 700; }
.resultsCount { width: calc(50% - 20px); text-align: center; padding: 10px 5px; margin: 5px; background: #E6E6E6; }
.listHidden { display: none !important; }

h2.highlightedRace { margin-top: 40px; }
.electionGraph { width: 100%; margin: 0 0 25px; }
.electionGraph .graphCat, .electionGraph .graphCatS, .electionGraph .graphNum, .electionGraph .graphNumS { height: 30px; line-height: 30px; float: left; font-weight: 700; font-size: 14px; white-space: nowrap; }
.electionGraph .graphCat { width: 160px; text-align: right; margin-right: 5px; }
.electionGraph .graphCatS { width: 95px; text-align: right; margin-right: 5px; }
.electionGraph .graphNum { width: 55px; text-align: left; margin-left: 5px; }
.electionGraph .graphGraph { width: calc(100% - 225px); height: 20px; margin: 5px 0; float: left; background: #EEE; }
.electionGraph .graphGraphS { width: calc(100% - 160px); height: 20px; margin: 5px 0; float: left; background: #EEE; }
.electionGraph strong { color: #666; font-size: 18px; display: block; margin: 30px 0 5px; }
.graphSpacing { margin: 10px 0; }
.graphFill { background: #F5C800; height: 20px; float: left; }
.graphMetric { height: 30px; margin: -5px 5px; line-height: 30px; float: left; font-weight: 700; }
.graphDivider { height: 10px; margin-bottom: 10px; border-bottom: 1px solid #DDD; }
.graphHeader { margin: 2em 0 1em; font-size: 14px; }
.graphHeader h4 { margin: 0; font-size: 16px; }

#footer { background: #F6F6F6; border-top: 5px solid #F5C800; width: 100%; padding: 20px 0; }
.footerContent { width: calc(100% - 40px); padding: 10px; text-align: center; }

@media screen and (max-width: 500px) {
  .headerLogo img { width: 100%; height: auto; }
  #results { max-width: 100%; margin: 20px 0; }
  .electionInfo { width: 100%; }
  .electionLinks { width: 100%; text-align: left; }
  .electionLinks a { margin: 8px 0 0; }

  .electionGraph .graphCat { width: 100%; margin: 0; text-align: left; }
  .electionGraph .graphGraph { width: calc(100% - 60px); margin: 0 0 5px; }
  .electionGraph .graphNum { line-height: 20px; }
  .graphFill { max-width: calc(100% - 58px); }
  .graphMetric { margin-right: 0 !important; }

}
