#header {
	display: none;
}

#clickToHome {
	
}

#novaContent {
	background: url("images/backgroundATLEclipse.png") no-repeat white;
}

#introText p.left {
	text-align: justify; 
	width: 48%;
	float: left;
}

#introText p.right {
	text-align: justify; 
	width: 48%;
	float: right;
}

#feature {
	text-align: justify;
	float: left;
	width: 63%;
	margin-right: 3%;	
}

#feature_discovery {
	text-align: justify;
	float: left;
	width: 30%;
}
	
#primaryLinks {
	position: relative;
	padding-left: 420px;
	width: 1100px;
}

#primaryLinks h3{
	visibility: hidden;
	height: 0;
}

#primaryLinks ul li {
   vertical-align: bottom;
   display: inline-block;
   list-style-type: none;
   padding: 0;
   margin: 0;
}

#primaryLinks ul .toTheRight {
	margin-left: 150px;
}

#primaryLinks a:hover {
	text-decoration: underline;
	color: black;
}

#primaryLinks a {
   display: inline-block;
   list-style-type: none;
   width: 260px;
   height: 77px;
   padding-top: 10px;
   padding-left: 70px;
   padding-right: 20px;
   margin: 0;
   color: black;
}

#primaryLinks strong {
   font-size: larger;
   display: block;
   text-decoration: none;
}

#buttonDownload {
   background:transparent url("images/buttonDownload_empty.png") no-repeat 0 0;
}

#buttonDownload:hover {

}
   
#buttonDocumentation {
   background:transparent url("images/buttonDocumentation_empty.png") no-repeat 0 0;
}

#buttonDocumentation:hover {
}

#buttonSupport {
   background:transparent url("images/buttonSupport_empty.png") no-repeat 0 0;
}

#buttonSupport:hover {
}

#buttonInvolved {
   background:transparent url("images/buttonInvolved_empty.png") no-repeat 0 0;
}

#buttonInvolved:hover {
}

/*
customizing of yahoo pipes
*/

#headlines {
	text-align: justify;
}

#headlines ul li {
	margin: 0 0;
	list-style-type: none;
	list-style-image: none;
}

	
#headlines div.title {
	display: inline;
	margin-right: 0.5em;
}

#headlines div.meta {
	display: inline;
	color: #444444;
	font-size: smaller;  
}

#headlines div.item {
	display: block;
	}

#stats {
	color: #444444;
	}
	
#screencast {
	margin-bottom: 10px;
}

#obeo a {
	display: block;
	padding: 0;
	margin-top: 10px;
	margin-left: auto;
	margin-right: auto;
}

#obeo img {
	display: block;
	width: 117px;
	height: 60px;
	margin-left: auto;
	margin-right: auto;
}

#newAndNoteworthy a {
   display: block;
   width:218px; 
   height:51px;
   padding: 0;
   text-indent: -9000px;
   background:transparent url("images/newAndNoteworthy.png") no-repeat 0 0;
   margin-top: 10px;
	margin-left: auto;
	margin-right: auto;
}

#olderNews {
	padding-bottom: 5%;
}

#olderNews a {
	float: right;
	font-size: smaller;
	margin-right: 5%;
}

.sideitem {
	border-bottom: 1px dotted #d4d4dd;
	margin-bottom: 10px;
	padding-bottom: 5px;
	clear:both;
}

.sideitem .modal {
	background: #FFF url('/eclipse.org-common/themes/Nova/images/thinModalBg.png') repeat-x;
	padding: 5px;
}

.sideitem h6 {
	background-color: #e8e7dd;
	border-bottom: 2px solid #FFF;
	font-size: 14px;
	font-weight: bold;
	margin-bottom: 0px;
	-moz-border-radius-topleft:3px;
	-moz-border-radius-topright:3px;
	padding: 8px 5px;
}

.sideitem li {
		text-align: justify;
		padding: 0 10px 5px 0;
}

.sideitem ul,.sideitem ol,.sideitem form,.sideitem p {
	font-size: 12px;
	padding: 5px;
}

#midcolumnhome {
	width: 640px;
	padding: 0 10px 10px 10px;
	background: transparent;
	float: left;
	margin-left: 80px;
	margin-right: 20px;
}

#midcolumn {
	width: 780px;
	padding: 0 100px 10px 100px;
}

#rightcolumn {
	padding: 40px 10px 10px 10px; 
	width: 260px;
}


h3 {
	clear: both;
}

h7 {
	font-weight: bold;
	padding: 5px;
}

a strong {
	text-decoration: underline;
}

.twtr-hd h4, .twtr-hd h3{
clear:none;
}

.atlnavitem h2 {
	background-color: #e8e7dd;
	border-bottom: 2px solid #FFF;
	font-weight: bold;
	margin-bottom: 0px;
	-moz-border-radius-topleft:3px;
	-moz-border-radius-topright:3px;
	padding: 8px 5px;
}

.atlnavitem .contents {
	background: #FFF url('/eclipse.org-common/themes/Nova/images/thinModalBg.png') repeat-x;
	padding: 5px;
}

#novaContent.faux
{
	background: url("images/backgroundATLEclipse.png") no-repeat white;
	padding-bottom: 0px;
	padding-top: 0px;
}

#downloadtoc {
	border: 1px solid #000000;
	width: 180px;
}

#toctitle {
	text-align: center;
	font-weight: bold;
}

.toTheRight {
	margin-left: 150px;
}