/* ------ set of styles used for the frontpage -----*/
/* homepage top box background layer*/
#top-box-bg {	
    margin:1px 0px 0px 0px;	
    padding:0px;
    background-image:url('/images_www/v7/design/image_banner.png');background-repeat:no-repeat;
    background-color: #2259A1;
    min-height:266px;
}
.top-box-content {
    padding:10px 10px 0px 10px;
    /*min-height:250px;*/
}

#top-pane-left {
    padding-left: 220px;
    padding-top:5px;
    vertical-align:top;
}
#top-pane-left h1 {
    margin:5px 0px 10px 0px;
    padding:0px;
    color:white;
}
#top-pane-left-message {
    font-size:1.1em;
    padding:0px;
    margin-bottom:15px;
    text-align:left;
    color:white;
}
#learn-more {
    font-size:1.1em;
    margin-top:18px;
}
#cloud { 
    margin:0px 0px 0px 0px;
    padding:3px 10px 3px 10px;
    border-bottom:1px solid #7689aa;
    border-top:1px solid #7689aa;
    background-color:#b3d5eb;
    background-image:url('/images_www/v6/cloud-bg.png');background-repeat:repeat-x;
    background-position: top;
}
#top-box-bg::after {
    content: '';
    clear:both;
    display: block;
}
#cloud a {
    text-decoration:none;
}
#cloud div.head-link {
    float: left;
    margin-top:7px;
    margin-left:5px;
}
#cloud div.head-link a{
    font-weight:bold;
}
#cloud div.technologies {
    margin-left:170px;
    color:#0e1b55;
    text-align: justify;
    font-size:0.9em;
}
#news-pane {
    margin:0px;
    border-top:1px solid #a0a4a7;
    border-left:1px solid #a0a4a7;
    border-right:1px solid #a0a4a7;
    padding:8px 5px 5px 45px;
    height:20px;   
}
#nxews-pane::before {
    content: '';
    clear:both;
    display: block;
}
#news-pane h3 {
    float:left;
    margin:1px 7px 0px 0px;
    padding:0px;
    color: #121C3F;
    font-weight: bold;
    font-size:14px;
}
.allnews {
    margin:3px 33px 0px;
}
.allnews img,  .arr-icon {
    display: inline-block;
    margin-bottom:-3px;
}
.newsticker {
    list-style-type: none;
    border: none;
    padding: 3px;    
}
#news li {list-style: none;}
#fp-main {
    background: #cddeee; /* Old browsers */
    background: -moz-linear-gradient(top,  #cddeee 0%, #ffffff 50%, #ffffff 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#cddeee), color-stop(50%,#ffffff), color-stop(100%,#ffffff)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top,  #cddeee 0%,#ffffff 50%,#ffffff 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top,  #cddeee 0%,#ffffff 50%,#ffffff 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top,  #cddeee 0%,#ffffff 50%,#ffffff 100%); /* IE10+ */
    background: linear-gradient(to bottom,  #cddeee 0%,#ffffff 50%,#ffffff 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cddeee', endColorstr='#ffffff',GradientType=0 ); /* IE6-9 */
    height:282px;
    margin:-1px;
}
#fp-main h2 {
    color: #0e1b55;
    font-size: 14px;
    font-weight: bold;
    border:none;
    padding:0px 0px 10px 0px;
    border-bottom: 1px dashed silver;
    margin-bottom: 10px;
}
#fp-plg {
    margin:0px 5px 0px 5px;
    background: white bottom repeat-x url('/images_www/v6/fp2-bg.png');
}
#fp-tut {
    background: white bottom repeat-x url('/images_www/v6/fp1-bg.png');
}
#fp-pol {
    background: white bottom repeat-x url('/images_www/v6/fp3-bg.png');
}
.fp-div {
    width:291px;
    min-height:340px;
    float:left;
    border: 1px solid #adadad;
    border-radius:5px;
    -moz-border-radius: 5px;
    -webkit-border-radius:5px;
    position: relative;
    margin-bottom:5px;
}
.fp-all {
    position: absolute;
    top:285px;
    right:20px;
}

a.frontpage:link, a.frontpage:active, a.frontpage:visited { 
    text-decoration:none;
    color:#ff8e00; 
    font-weight:bold; 
    background-color:none;
}
a.frontpage:hover {
    text-decoration:underline; 
    color:#ff8e00; 
    font-weight:bold; 
    background-color:white;
}

.promo-text {
    padding-bottom:3px;
}
.promo-text2 {
    padding:0px 0px 12px 10px;
    margin:0px;
}
.dvd-img {
    margin-bottom:-8px;
}
.dvd-link{}
#polls_div, #polls_div div {
    border:none;
    padding:0px;
}
