@CHARSET "ISO-8859-1";

.downloadHeader {
	background:url('content/helios/banner.png') no-repeat;
	height:100px;
}

.downloadHeader .selector {
	padding-left:6px;
}

#novaContent {
	background: url('content/helios/fauxColumn2.png') repeat-y;	
}

.downloadHeader .selector li{
	position:relative;
	top:70px;
	display:inline;
	float:left;
}

.downloadHeader .selector li a {
	font-size:16px;
	font-weight:bold;
	color:#333;	
}

.downloadHeader .selector li a.active {
	color:#6e0087;	
}

.descriptionRight {
	float:left;	
}

.descriptionOS {
	float:right;	
}

.leftContent { 
	background:transparent;
	width:729px;
	float:left;
}

.rightContent {
	background:transparent;
	width:249px;
	float:left;
}

.leftContent .descriptionBar {
	height:18px;
	background:#515151;
	color:#FFF;
	padding:6px;
	padding-left:15px;	

}

.leftContent .descriptionBar span {
	font-size:14px;
}

.rightContent p, .rightContent h3 {
	padding:0 10px;
}

.rightContent ul {
	margin-left:30px;	
}

.rightContent li {
	padding:3px 10px 3px 0 !important;
	font-size:12px !important;
	font-weight:bold !important;
}

.rightContent h3 {
	margin-top:7px;
	color:#333333;	
	border:0px;
}

#texttwo, #textthree {
	color:#FFF;
	font-size:12px;
	font-weight:bold;
	padding-right:30px;
}


#descriptionText {
	font-weight:bold;
		
}

.attention {

	color:red !important;	

}

.featuredRows {
	clear:both;	
	margin-bottom:5px;
}

.row {
	width:710px;
	padding:10px 10px 10px 9px;
	clear:both;
	border-bottom:1px solid #DDD;
}

.zebra{
	background-color:#FAFAFA;	
}

.row .icon {
	float:left;
	width:40px;
}

.row .text {
	float:left;
	width:535px;
}

.row .download {
	float:left;
	margin:0px auto;
	width:130px;
}

.row .downloadLink {
	font-size:12px;
	
}

.row .details {
	font-size:11px;
	padding-left:25px;
}	

.row .title {
	font-size:16px;
	font-weight:bold;
}

.row .downloadCounts {
	font-size:11px;	
}

.row .downloadArrow {
	float:left;
}

.moreBlock {
	padding-top:3px;
	border-top:1px solid #C0C0C0;
	border-bottom:1px solid #C0C0C0;
	width:729px;
}

.moreBlock h3 {
	padding-left:15px;
	border:0;
	color:#6e0087;
}

.title a {
	color:#111;	
}

.moreBlock .col1{
	padding-left:20px;
	float:left;
	width:640px;
}

.moreBlock .row {
	padding:7px 0 7px 15px;	
}

.moreBlock .row .title {
	font-size:14px;	
}


.moreBlock .row .downloadLink {
	float:right;
	font-size:12px;
}

.clearfix:after {
	content: ".";
	display: block;
	clear: both;
	visibility: hidden;
	line-height: 0;
	height: 0;
}
 
.clearfix {
	display: inline-block;
}

a {
	cursor:pointer;	
}

.ad {
	text-align:center;
	padding:10px 0;
	width:248px;
	margin-left:1px;
	background:#909090 url('content/helios/adBackground.png') no-repeat;
}

#googleAds {
	margin:20px 0;
	text-align:center;
}

#osSelect {
	background: #E1E1E1;
	border:1px solid #FFF;
	color:#000;
}

.helios {
	color:#ff4200;
}

#relatedLinks a, #installingEclipse a{
		
}

#texttwo a,#textthree a {
	color:#FFF;	
}

#bug{
	position:relative;
	top:75px;
	float:right;
	font-size:16px;
	margin-right:20px;
}

#subCat {
	position:relative;
	text-align:left;
	list-style-type:none;	
	font-size:12px;
	top:-5px;
}

#subCat li {
	text-transform:lowercase;
	color:#FFF;
	float:left;
	list-style-image:none;	
	margin-left:0px !important;	
	padding-right:15px;
}

#subCat li a {
	display:block;new
	cursor:pointer;	
	color:#FFF;
}

#subCat li.active a {
	color:#FFF;
	font-size:14px;
	text-decoration:underline;	
}

#subCatTitle {
	font-family:Arial,Times,serif;
	font-weight: normal;
}

.contentTable tr.tableData td  {
	border-bottom:1px solid #DDD; 
	padding: 7px 0 7px 10px;
	font-size:12px;
	line-height:14px;
}

.contentTable tr.topItem td {
	border-top:1px solid #DDDDDD;
	border-collapse:separate;
}

.topLevel td {
	margin-top:10px;
}

.subProject td {
	padding-left:20px;	
	padding-top:5px;
}

.bottomRow td {
	padding-bottom:20px;	
}

.osWarning {
	padding:5px;
	border:1px solid grey;	
	background:#FFF380;
}

.promo {
	padding:0px 0px 10px 9px;
	background:#EFEFEF url('images/promobg.png');
	position:relative;
	width:720px;
}

.promo a, .promo div{
	font-size:110%;

}


.promo .download {
	
	position:relative;
}

.promoText {
	background:url("images/promotedLink.png") no-repeat scroll 100% 100% transparent;
	bottom:-3px;
	clear:both;
	color:#8873a9 !important;
	padding:0 12px 0 0;
	position:relative;
	right:-10px;
	text-align:right;
}

#promotedLink {
}

.promo .downloadLink {
    position:relative;
	top:8px;	
}

.promo .downloadArrow {
	position:relative;
	top:8px;
}

.promo .icon {
	margin-top:10px;
}

.promo .text {
	padding-top:10px;
}

.promo .promotedText a {
	font-size:10px;
	padding-right:10px;
	font-weight:normal;
	color:#000;	
}

.promo .promotedText {
	background: url('images/promotedLink2.png') no-repeat;
	width:118px;
	display:block;
	position:absolute;
	top:10px;
	left:290px;
	text-align:right;	
}

.promo .promotedText.cloudbees {
	left:310px;
}

.promo .promotedText.actuate {
	left:420px;
}
.promo .promotedText.eucalyptus {
	left:450px;
}
.promo .promotedDesc {
	font-size:11px;	
}

.phpWarning { 
	font-size:14px;
	height:20px;
	padding:10px;
	padding-left:20px;
	color:#000;
	background:#fffdcd;
	border-bottom:1px solid #DDD;
	border-top:1px solid #DDD;
}

.junoFriends { 
	height:20px;
	padding:13px 10px 10px 45px;
	color:#fff;
	font-size:14px;
	background:#00416a url('/juno/images/download-bar.jpg') no-repeat;	
}
.junoFriends a { 
	color:#eabcfd;	
}

.junoTorrents { 
	color:#072e3f !important;
}