#footer {
    width: 100%;
    height: 90px;
    background-color: #3284bf;
    overflow: hidden;
    margin-top: 0px;
    display: none;
}

.fixed_footer {
	position: fixed;
	bottom: 0;
}

#footer div {
    height: 90px;
}

#footer div span {
    display: inline-block;
    height: 100%;
    vertical-align: middle;
}

#footer img {
    height: 76px;
    vertical-align: middle;
}

/* WCAG 2.4.1: skip-to-content link, visible only on focus */
.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: #003B5C;
    color: #ffffff;
    padding: 8px 16px;
    z-index: 10000;
    text-decoration: none;
    font-weight: bold;
}
.skip-link:focus {
    top: 0;
    outline: 3px solid #FFD100;
}

/* WCAG 2.4.7: ensure focus is always visible even where Bootstrap suppresses it */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid #005a9c;
    outline-offset: 2px;
}

/* Visually hidden, available to screen readers (used for hidden labels) */
.visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Style for in-text tooltip triggers (replaces ambiguous <u title>) */
.tooltip-text {
    border-bottom: 1px dotted #555;
    cursor: help;
}

/* Style <button> as a plain inline link for in-text controls */
button.link-button {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    color: #005587;
    cursor: pointer;
    font: inherit;
    text-decoration: underline;
}
button.link-button:hover,
button.link-button:focus {
    color: #003B5C;
}

#scatter-container {
    width: 890px;
    height: 425px;
    position: relative;
}

#scatter-bg, 
#scatter-chart {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

#scatter-chart {
    z-index: 10;
}

#home-header {
    background: url(/static/img/blue.jpg) 50% 0% repeat-x;
    height: 440px;
    text-align: center;
    padding-top: 10%;
    margin-bottom: 3%;
}

#home-header p {
    color:white;
    text-shadow: 0 -1px 8px rgba(0,0,0,0.9);
    font-size: 140%;
}

 #home-header h1 {
    color: white;
    text-shadow: 0 -1px 8px rgba(0,0,0,0.9);
    font-size: 320%;
    font-weight: 700;
 }

#images-section .row {
  margin-bottom: 20px;
}

.imageAndText {position: relative;} 
.imageAndText p {position: absolute; z-index: 1; bottom: 0; left: 50; color:white; font-size: 200%;}

#content {
  display: none;
}

#home-search-form {
  width: 60%;
  margin: 0 auto;
}

#search-examples {
    padding-top: 10px;
}

#search-bar-container {
  padding-bottom: 25px;
}

#results-page-container {
    padding-top: 10px;
}

#results-list {
    padding-top: 10px;
}

#next-page {
  margin:30px 0;
}

#wbv-header {
  padding-top: 20px;
  border-bottom:thin solid #DDD;
  margin-bottom: 20px;
}

#wbv-header h1 {
  font-size: 25px;
  padding-bottom: 19px;
  margin-top: 0;
  margin-bottom: 0;
  line-height: 40px;
}

#loading-container {
  padding-top: 40px;
  text-align: center;
}


/* Maps and charts */
.dc-chart g.row text {
  fill: black;
}

#loading {
 float: none;
 margin: 0 auto;
 text-align: center;
 display: none;
}

#map-container {
  width: 700px; 
}

.axis {
    font-family:verdana;
    font-size:9pt;
}

line.cutline {
    stroke-width: 3;
    stroke: #FFF;
}

.wvv-tooltip  {
  color: #222; 
  background: #fff; 
  padding: 0.2em; 
  text-shadow: #f5f5f5 0 1px 0;
  border-radius: 2px; 
  opacity: 0.9; 
  position: absolute;
  font-size: 90%;
  line-height: 80%; 
  min-width:13em;
}

.wvv-tooltip img {
  float:left;
}

.wvv-tooltip.hidden {
  display: none;
}

/*Hacky way to remove the axis while https://github.com/dc-js/dc.js/issues/548 is solved*/
#scatter-chart .axis {
  display: none;
}

#download-btn {
  position:fixed;
  right: 12px;
  bottom:12px;
  display: none;
}

#sort-label {
  text-align: right;
  padding-top: 10px;
}

#brand a {
  text-decoration: none;
}

/* Darken the "beta 3" tag in the brand: Bootstrap defaults <h1 small> to
   #777777, which is ~4.48:1 on white — fails WCAG AA for small text. */
#brand small,
#brand .small {
  color: #595959;
}

.dc-table-label {
  font-weight: 600;
  font-size: 130%;
}


.tooltip > .tooltip-inner { opacity: 0.9; }
.tooltip > .tooltip-arrow { opacity: 0.9; }
.left-tooltip + .tooltip > .tooltip-inner { text-align:left; min-width:400px;}

#memberList
{
	min-width: 800px;
}

ul#memberList.geography
{
	width: 100%;
	min-width: 100%;
	max-width: 100%;
	columns: auto 3;
	list-style-type: none;
	overflow: auto;
	margin-left: 0;
	padding-left: 0;
	margin-bottom: 15px;
	display: block;
}

.memberResultBox
{
	cursor: pointer;
	height: 85px;
	margin-bottom: 5px;
	overflow: hidden;
}

@media screen and (min-width: 1200px) 
{
	.memberResultBox img.bio
	{
		width: 64px;
		height: 80px; 
		vertical-align: middle;
	}


	.memberResultBox span, .memberResultBox div
	{
		padding-right: 0px;
		font-size: 0.9em;
	}
}
@media screen and (max-width: 1199px) 
{
	.memberResultBox img.bio
	{
		width: 56px;
		height: 70px;
		vertical-align: middle;
	}

	.memberResultBox span, .memberResultBox div
	{
		padding-right: 0px;
		font-size: 0.8em;
	}
}

.columnResultBox
{
	break-inside: avoid-column;
}

.searchHighlight2  { background-color: #fffbcc; padding: 2px; }
.searchHighlight3  { background-color: #aff; padding: 2px; }
.searchHighlight { background-color: #f99; padding: 2px; }

.tablesorter-headerAsc div.tablesorter-header-inner:after {
	font-family: "Glyphicons Halflings";
	font-style: normal; font-weight: normal;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	position: relative;
	left: 2px;
	content: "\e151";
}
.tablesorter-headerDesc div.tablesorter-header-inner:after {
	font-family: "Glyphicons Halflings";
	font-style: normal; font-weight: normal;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	position: relative;
	left: 2px;
	content: "\e152";
}
.tablesorter-headerUnSorted div.tablesorter-header-inner:after {
	font-family: "Glyphicons Halflings";
	font-style: normal; font-weight: normal;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	position: relative;
	left: 2px;
	content: "\e150";
}
.tablesorter th.sorter-false div:after { content: ""; }


@media print
{
	body { border-left: 0; }
	body.devbody { border-left:0; }
	.noprint
	{
		display:none;
	}
	#voteBucket
	{
		page-break-before: always;
	}
}
@media screen
{
	body.devbody { border-left:20px solid red; }
	.printOnly { display:none; }
}

#devHelpWidget
{
	position:fixed; 
	left:0px; bottom:0px; 
	width:200px; height:30px; 
	background-color: white; 
	border-top: 3px solid red; border-right: 3px solid red;
}

path.median
{
	fill:none !important;
	stroke-width:3px !important;
}

/* Color Classes */
.red { border-left: 3px solid #ca0020 !important; }
.orange { border-left: 3px solid #e66101 !important; }
.yellow { border-left: 3px solid #fecc5c !important; }
.green { border-left: 3px solid #008837 !important; }
.teal { border-left: 3px solid #018571 !important; }
.blue { border-left: 3px solid #0571b0 !important; }
.purple { border-left: 3px solid #7b3294 !important; }
.pinkpurple { border-left: 3px solid #d01c8b !important; }
.grey { border-left: 3px solid #404040 !important; }
.brown { border-left: 3px solid #a6611a !important; }

.red_text { color: #CA0020; }
.orange_text { color: #E66101; }
.yellow_text { color: #008837; }
.green_text { color: #008837; }
.teal_text { color: #018571; }
.blue_text { color: #0571B0; }
.purple_text { color: #7B3294; }
.pinkpurple_text { color: #D01C8B; }
.grey_text { color: #404040; }
.brown_text { color: #A6611A; }
rect.red { fill: #ca0020; }
rect.orange { fill:#e66101; }
rect.yellow { fill: #fecc5c; }
rect.green { fill: #008837; }
rect.teal { fill: #018571; }
rect.blue { fill: #0571b0; }
rect.purple { fill: #7b3294; }
rect.pinkpurple { fill: #d01c8b; }
rect.grey { fill: #404040; }
rect.brown { fill: #a6611a; }

/* Contact page */
#result_contact { display: none; }
#result_newsletter { display: none; }
.loading_logo_hide { display: none; padding-left: 20px; }

/* Geography page */
.ideology { width: 50px; border-left: 1px solid grey; border-right: 1px solid grey; overflow: none; padding: 0 !important;}
.nom_ideology { height: 35px; overflow: auto; display: block; }
#geolocationTutorial { display: none; }
#locationButton { display: none; }
#warnings { display: none; }
#loadProgress { display: none; }
#google_map { width:100%; height: 100%; }
#mapContainer { padding-top: 10px; height: 300px; }
.address_marker { padding-top: 10px; padding-bottom: 10px; }
.notableExamples { columns: 3; cursor: pointer; overflow: hidden;}
#testData { height: 50px; }
.loadDistrict { width: 16px; }

.geo_nom_red { border-right: 3px solid #CA0020; }
.geo_nom_orange { border-right: 3px solid #E66101; }
.geo_nom_yellow { border-right: 3px solid #008837; }
.geo_nom_green { border-right: 3px solid #008837; }
.geo_nom_teal { border-right: 3px solid #018571; }
.geo_nom_blue { border-right: 3px solid #0571B0; }
.geo_nom_purple { border-right: 3px solid #7B3294; }
.geo_nom_pinkpurple { border-right: 3px solid #D01C8B; }
.geo_nom_grey { border-right: 3px solid #404040; }
.geo_nom_brown { border-right: 3px solid #A6611A; }

/* Vote page */
.voteTable { list-style-type: none; overflow: auto; }
.columns1 { columns: 1; width: 25%; }
.columns2 { columns: 2; width: 50%; }
.columns3 { columns: 3; width: 75%; }
.columns4 { columns: 4; width: 100%; }
div#mapTooltip span.meta { color: #595959; font-size: 0.9em; }
ul.voteTable li { padding-bottom: 3px; width:100%; }
ul.voteTable li strong { text-decoration: underline; }
ul.voteTable li span { background-color: white; padding-right: 5px; }
ul.voteTable li span span.bullet { color: #CA0020; }
ul.voteTable li span span.meta { color: #595959; font-size: 0.9em; }
ul.voteTable li span.sponsor { background-color: #FFF9E6; }
ul.voteTable li.voter { display: inline-block; }
ul.voteTable li.dotted { }
ul.voteTable li.sponsor { background-color: #FFF9E6; }
ul.voteTable li.sponsor span { background-color: #FFF9E6; }
ul.voteTable li span.vote { padding-right: 40px; float: right; }
ul.voteTable li span.bullet { color: #CA0020; }
#voterTooltip { min-width: 320px; visibility: hidden; }
#voterTooltip img { width: 80px; }
#voterTooltip div.profile { padding-right: 10px; vertical-align: middle; height: 100%; min-height: 100px; }
#voterTooltip div.text { font-size: 0.9em; vertical-align: middle; padding-top: 5px; }
.memberBox { overflow: hidden; break-inside: avoid-column; margin-top: 10px; margin-bottom: 10px; text-align: center; }
#memberTextTable { width: 80%; min-width: 500px; }

/* Data page */
#format option#format_ord { display: none; }
#data_download_container { display: none; }
.padded_botom { padding-bottom: 3px; }
.padded_left { padding-left: 50px; }
.text_aligned_image { vertical-align: top; height: 24px; }

/* Party Members */
.party_members { columns: auto 4; list-style-type: none; overflow: auto; width: 100%; margin-bottom: 40px; }

/* Party Page */
.slide_party { height: 90px; margin-left: 100px; margin-right: 100px; }
.map_row { padding-bottom: 60px; }
span.congressControl input[type=text] { width: 50px; }
.roster_header { padding-bottom: 10px; }
.roster_header h4 { display: inline; }
span.congressControl span#playButton { cursor: pointer; }
span.congressControl span#pauseButton { cursor: pointer; display: none; }
span.party_header { padding-right: 20px; }

/* Parties at a Glance */
#alertPartiesGlance { margin-bottom: 20px; }
#closeAlert { float: right; text-decoration: none; }
.party_row td { padding-top: 2px; padding-bottom: 2px; cursor: pointer; }
.committee_row td { padding-top: 4px; padding-bottom: 4px; cursor: pointer; }
.committee_row:hover td { background-color: #f5f5f5; }

.box_red { background-color: #ca0020 !important; }
.box_orange { background-color: #e66101 !important; }
.box_yellow { background-color: #fecc5c !important; }
.box_green { background-color: #008837 !important; }
.box_teal { background-color: #018571 !important; }
.box_blue { background-color: #0571b0 !important; }
.box_purple { background-color: #7b3294 !important; }
.box_pinkpurple { background-color: #d01c8b !important; }
.box_grey { background-color: #404040 !important; }
.box_brown { background-color: #a6611a !important; }

.box_broken_red { border-left: 3px solid #ca0020 !important; border-right: 3px solid #ca0020 !important; }
.box_broken_orange { border-left: 3px solid #e66101 !important; border-right: 3px solid #e66101 !important;}
.box_broken_yellow { border-left: 3px solid #fecc5c !important; border-right: 3px solid #fecc5c !important;}
.box_broken_green { border-left: 3px solid #008837 !important; border-right: 3px solid #008837 !important;}
.box_broken_teal { border-left: 3px solid #018571 !important; border-right: 3px solid #018571 !important;}
.box_broken_blue { border-left: 3px solid #0571b0 !important; border-right: 3px solid #0571b0 !important;}
.box_broken_purple { border-left: 3px solid #7b3294 !important; border-right: 3px solid #7b3294 !important;}
.box_broken_pinkpurple { border-left: 3px solid #d01c8b !important; border-right: 3px solid #d01c8b !important;}
.box_broken_grey { border-left: 3px solid #404040 !important; border-right: 3px solid #404040 !important;}
.box_broken_brown { border-left: 3px solid #a6611a !important; border-right: 3px solid #a6611a !important;}

/* Congress Page */
.congress_header { height: 40px; }
#congress_selector { font-size: 19px; float: left; padding-right: 30px; text-align: middle; }
#partyComposition { float: right; padding-right: 50px; }
.roster_header { padding-bottom: 20px; }
.roster_header h4 { display:inline; }
#memberList { columns: auto 4; list-style-type: none; overflow: auto; width: 100%; margin-bottom: 60px; }
#memberTextList { margin-bottom: 40px; }
.save_icon { margin-left: 5px; font-size: 22px; vertical-align: middle; cursor: pointer; } 
#scatter-container { margin: 0 auto 10px auto; }
#filterName { float: right; }
.column1 { columns: 1 !important; width: 25% !important; }
.column2 { columns: 2 !important; width: 50% !important; }
.column3 { columns: 3 !important; width: 75% !important; }
.column4 { columns: 4 !important; width: 100$ !important; }

/* Vote Display Page */
.loading_throbber { margin-left: 10px; width: 24px; vertical-align: middle; }
.ensure_map { min-width: 800px; margin-right: 25px; }
#errorContent { display: none; }
#holdHatching { width: 0; height: 0; }
.loadedContent { display: none; }
#geoMap { padding-bottom: 40px; }
#geoMap h4 { float: left; clear: none; vertical-align: middle; }
#geoMap .glyphicon-save { margin-left: 5px; font-size: 18px; vertical-align: middle; cursor: pointer; }
#geoMap .noteText { margin-left: 5px; width: 22px; vertical-align: middle; }
#geoMap #map-chart { margin-top: 10px; padding: 10px; vertical-align: bottom; }
#geoMap #map-chart #zoomIn { position: absolute; left: 25px; top: 40px; width: 30px; height: 30px; }
#geoMap #map-chart #zoomOut { position: absolute; left: 25px; top: 80px; width: 30px; height: 30px; }
#geoMap #map-chart #suppressMapControls { display: none; }
#geoMap #warnParty { display: none; }
#suppressNominateControls { display: none; }
#selectionFilterClose { display: none; width:32px; height:32px; cursor: pointer; background: transparent; border: none; padding: 0; font-size: 32px; line-height: 1; }
#selectionFilterClose .glyphicon { font-size: 32px; }
#stashCartClose { background: transparent; border: none; padding: 0; font-size: 32px; line-height: 1; }
#stashCartClose .glyphicon { font-size: 32px; }
#stashCartIcon { background: transparent; border: none; padding: 0; }
#selectionFilterBar { display: none; }
#selectionFilterBar #map-chart-controls { display: none; }
#selectionFilterBar #vote-chart-controls { display: none; }
#selectionFilterBar #nominate-chart-controls { display: none; }
#selectionFilterBar #sparse-selection { display: none; }
.sortHeader { text-align:middle; padding-top: 3px; }
.voteHeader { font-size: 19px; float: left; padding-right: 30px; text-align: middle; }
#voteList { margin-top: 15px; width: 100%; min-width: 1100px; }
#vote_chart_float { position: static; padding-bottom: 20px; }
#vote_chart_float .saveButton { margin-left: 5px; font-size: 18px; vertical-align: middle; cursor: pointer; color: black; }
#vote_chart_float .xlsButton { margin-left: 5px; width: 22px; vertical-align: middle; }
#vote_chart_float #suppressVoteChartControls { display: none; }
.voteRow { margin-bottom: 50px; }
.nominateSave { margin-left: 5px; font-size: 18px; vertical-align: middle; cursor: pointer; }
#scatter-container { margin: 0 auto 0 auto; }
.nominateExplainer { padding: 15px; margin: 10px; margin-bottom: 20px; font-size: 0.9em; }
.meta_float { float: left; margin-right: 20px; }
#key_vote_icon { padding-right: 10px; }
#extendedDescription { display: none; }
.heatmapTip { z-index: 10; opacity: 0.8; visibility: hidden; }

/* CUSTOM: Slider width for when front page is small */
.slider {
    width: 95% !important;
}

.dev_header { background-color: #FFFF00; color: #000000; padding: 0 4px; }

/* member_party_list */
.member_flag { width: 20px; }
.member_image { margin-right: 10px; }
.member_bio { vertical-align: middle; padding-top: 5px; }
.party_logo { height: 80px; vertical-align: middle; padding-right: 20px; }
.party_box { padding-bottom: 10px; clear: both; }

/* party page */
.reset_party { display: none; }

/* Mute reCAPTCHA */
.g-recaptcha {
  display: none !important
}

/* Carousel */
#mainCarousel {
	margin-bottom: 20px;
}

#mainCarousel .item {
	background-color: #333333; 
}

.carousel .item {
	min-height: 300px; 
	max-height: 300px;
}

.carousel .item img {
	height: 300px;
	width: 100%;
	margin: 0 auto;
	overflow-x: hidden;
}

.carousel .item video {
	height: 300px;
	width: 100%;
	margin: 0 auto;
	overflow-x: hidden;
}

.carousel .item_light:after {
	content: "";
	display: block;
	position: absolute;
	top:0; bottom: 0; left: 0; right: 0;
	background:rgba(0, 0, 0, 0.2);
}

.carousel .item_medium:after {
	content: "";
	display: block;
	position: absolute;
	top:0; bottom: 0; left: 0; right: 0;
	background:rgba(0, 0, 0, 0.3);
}

.carousel .item_strong:after {
	content: "";
	display: block;
	position: absolute;
	top:0; bottom: 0; left: 0; right: 0;
	background:rgba(0, 0, 0, 0.5);
}

#mainCarousal div.item {
	background-color: #333333;
}

/* Member page */
.nav-tabs li a { padding: 5px 5px; }
h3.biography { margin-top: 5px; }
.memberBioImage { max-width:165px; padding-right:5px; padding-bottom:10px; }
h2.bio { word-wrap: break-word; }
h5.congSelector { padding-top:20px; padding-bottom:0px; }
h5.congSelector small { padding-left: 10px; }
#loyaltyTable { font-size: 0.8em; text-align: center; width: auto; display: none; }
.bottomPad { padding-bottom: 20px; }
.member_flag { width: 20px; vertical-align: middle; }
.personSearch { padding-top: 10px; padding-bottom: 10px; clear: both; }
.loadVotes { float: right; padding-top: 12px; min-width: 400px; width: 400px; }
.member_vote_load { float: right; margin-right: 25px; display: none; }
.hide_button_default { display: none; }
.show_district_c { display: block; }
.hide_district_c { display: none; }

/* Search results */
.keyvote { margin-right: 10px; }
/* Sizing for both <img> and <span class="glyphicon"> uses of these classes:
   the <img> in member_votes.tpl needs width; the glyphicon span in
   search_results.tpl needs font-size. */
.viewVote { width: 24px; font-size: 22px; margin-right: 16px; vertical-align: middle; }
.exportVote { width: 24px; font-size: 22px; vertical-align: middle; cursor: pointer; }
button.link-button .exportVote { color: #005587; }
.voteBody { cursor: pointer; }
.debugText { font-size: 8px; }
.advancedSearch { display: table-cell; width: 125px; vertical-align: middle; padding-left: 10px; font-size: 0.9em; }
#suggestContainer { font-size: 0.8em; display: none; }
#results-selects { display: none; }
.support_box { padding: 30px; padding-bottom: 0px; }
#sortBy { padding-top: 10px; text-align: right; vertical-align: top; }
#relevanceAppear { display: none; }
#errorTooManyVotes { display: none; }

/* Member Vote Table */
.text_right { text-align: right; }
.text_center { text-align: center; }
.cursor { cursor: pointer; }
.prob_tutorial { margin-left: 0px; width: 2px; vertical-align: middle; cursor: pointer; }
.prob_tooltip { text-align: left; font-weight: normal; }
.vote_text_cell { border-right: 1px solid #dddddd; }
.vote_button { margin-left: 10px; }
.unlikely_vote { color: red; }
.abstention { color: #B3B3B3; }
.hide_date { display: none; }

/* Member boxes */
.memberPad10 { margin-right: 10px; }
.memberPad5 { margin-right: 5px; }
.namePad5 { margin-right: 5px; }
.namePad0 { margin-right: 0px; }

.pad_bottom { margin-bottom: 50px; }

/* WCAG 1.4.3 contrast: UCLA darker blue for links and headings.
   #005587 on #ffffff = 7.06:1 contrast (passes AA + AAA for normal text).
   The previous Bootstrap-default #3284bf was ~3.96:1 — failed AA. */
a,
a:link,
a:visited {
    color: #005587;
}
a:hover,
a:focus {
    color: #003B5C;
    text-decoration: underline;
}

h1, h2, h3, h4, h5, h6 {
    color: #005587;
}

/* Restore inherited color where headings sit on a colored background
   (panel headings, alerts, buttons) to avoid low contrast on blue/yellow/red fills. */
.panel-heading,
.panel-heading .panel-title,
.panel-heading h1, .panel-heading h2, .panel-heading h3,
.panel-heading h4, .panel-heading h5, .panel-heading h6,
.alert h1, .alert h2, .alert h3, .alert h4, .alert h5, .alert h6,
.btn h1, .btn h2, .btn h3, .btn h4, .btn h5, .btn h6,
.carousel-caption h1, .carousel-caption h2, .carousel-caption h3,
.carousel-caption h4, .carousel-caption h5, .carousel-caption h6 {
    color: inherit;
}

/* Bootstrap utility-class link color used in a few spots. */
.text-primary {
    color: #005587;
}
a.text-primary:hover,
a.text-primary:focus {
    color: #003B5C;
}

/* Bootstrap primary button and panel heading: vendor stylesheet uses
   #3284bf with white text, which is only ~3.59:1 (fails WCAG AA 4.5:1).
   Override with UCLA darker blue #005587 (~7.06:1 — passes AA + AAA).
   Selectors include a.btn-primary:link/:visited because the global a:link
   rule (added for link contrast) would otherwise win on specificity and
   recolor button text to the same blue as the background. */
.btn-primary,
a.btn-primary,
a.btn-primary:link,
a.btn-primary:visited {
    color: #ffffff;
    background-color: #005587;
    border-color: #003B5C;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
a.btn-primary:hover,
a.btn-primary:focus,
a.btn-primary:active,
.open > .dropdown-toggle.btn-primary {
    color: #ffffff;
    background-color: #003B5C;
    border-color: #002C45;
}
.panel-primary {
    border-color: #005587;
}
.panel-primary > .panel-heading {
    background-color: #005587;
    border-color: #005587;
}
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
    border-top-color: #005587;
}
.panel-primary > .panel-heading .badge {
    color: #005587;
}
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
    border-bottom-color: #005587;
}

/* Member-card and party-card links use class="nohover" to suppress underline
   styling. Bootstrap's vendor stylesheet sets these to #555555 — the same
   color as body text, which fails WCAG 1.4.1 (link not visually distinguished
   from surrounding text). Use the UCLA brand blue so member-name links read
   as links. */
a.nohover,
a.nohover:link,
a.nohover:visited {
    color: #005587;
}
a.nohover:hover,
a.nohover:focus,
a.nohover:active {
    color: #003B5C;
}
