.rcpThumbnail
{
	padding:4px;
	border-bottom:1px dashed #000000;
}

.zoomPic
{
	padding-top:2px;
}

.communityRealEstate {
	width:80%;
	margin-left:20px;
	float:left;
}

.news, .spotlight {
	max-width:1000px;
	width:100%;

}

.categoryLeft, .categoryRight{
	max-width:500px;
	width:50%;
	float:left;
	padding-top:0px;
	margin:0px;
}

.box{
	
}

.box ol{
	padding-left:10px;
	margin-top:0px;
}

.box ol li{
	list-style-type:none;
	background:url(images/boxbg2.png) no-repeat;
    position: relative;
}

.categoryLeft .box ol li, .categoryRight .box ol li {
	padding:0px;
	padding-bottom:10px;
}

.box ol li ul li
{
	background:none;
}

.boxHeader{
	color:#4F4F4F;
	font-weight:bold;
	font-size:12px;
	padding-left:8px;
	padding-top:5px;
 	padding-bottom:3px
}

.boxHeader a {
	color:#4F4F4F;
	display:block;
}

.boxBody{
	border: 1px solid #CCCCCC;
	border-top:0px;
	min-height:30px;
	padding-left:5px;
	padding-top:2px;
}

.newsItems{
	padding-top:10px;
	padding-left:0px;

}

.newsItem {
	display: inline;
}

.newsTitle {
	font-size:12px;
	font-weight:bold;
	color:#595791;
}
	
.newsDate {
	padding-left:20px;
	font-size:10px;
	color:#6F6F6F;
}

.newsBody {
	padding-left:25px;
	font-size:11px;
}

.newsItems li {
	list-style-image:url(/eclipse.org-common/themes/Phoenix/images/arrow.gif);
	list-style-position:inside;
	padding-left:5px;
	padding-bottom:15px;
}

.newsMore{
	text-align:right;
	font-size:10px;
	padding-right:10px;
	clear:all;
}

.newsQuote{
	font-size:10px;
	color:#595791;
	margin:7px;
	padding: 1px;
	background:#F5F5FF;
	border:1px solid #CCCCCC;
}