@charset "UTF-8";
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied.  See the License for the
* specific language governing permissions and limitations
* under the License.
*/

/* CSS Document */


*{
	margin:0;
	padding:0;
}

body{
	font-family:Arial, Helvetica, sans-serif;
	font-size:12px;
	color:#333;
	font-weight:normal;
	background:#FFF repeat top left;
	margin:0;
	padding:0;
}


#inside_wrapper {
	width:auto;
	height:auto;
	margin:0;
	padding:0;
	overflow:hidden;
}

#insidetopbg {
	width:100%;
	height:auto;
	margin:0;
	padding:0;
	overflow:hidden;
}

.uppermenu_panel {
	width:100%;
	height:auto;
	float:left;
	margin:0;
	padding:0;
}
.uppermenu_box {
	width:auto;
	height:29px;
	float:right;
	margin:0;
	padding:0;

}

.uppermenu {
	width:300px;
	height:auto;
	float:left;
	color:#FFF;
	font-size:13px;
	font-weight:normal;
	text-align:left;
	padding:0;
	margin:4px 10px 0 0;
}

.uppermenu a:link {
	width:auto;
	height:auto;
	color:#54bfd3;
	font-weight:normal;
	text-align:left;
	text-decoration:none;
	margin:0 5px 0 5px;

}

.uppermenu a:visited {
	width:auto;
	height:auto;
	color:#54bfd3;
	font-weight:normal;
	text-align:left;
	text-decoration:none;
	margin:0 5px 0 5px;

}

.uppermenu a:hover {
	width:auto;
	height:auto;
	color:#ccf004;
	font-weight:normal;
	text-align:left;
	text-decoration:none;
	margin:0 5px 0 5px;

}


#main_controller {
	width:960px;
	height:auto;
	margin:0 auto;
	padding:0;
}

#inside_header {
	width:960px;
	height:auto;
	float:left;
	margin:0 0 0 0;
	padding:0;
}

.header_top {
	width:960px;
	height:67px;
	float:left;
	margin:0;
	padding:0;
}

.header_bot {
	width:960px;
	height:352px;
	float:left;
	margin:0;
	padding:0;
}

.insideheader_bot {
	width:960px;
	height:91px;
	float:left;
	margin:0;
	padding:0;
}

.insideheader_botleft {
	width:620px;
	height:91px;
	float:left;
	margin:0;
	padding:0;
}

.insideheader_botleft h1 {
	width:auto;
	height:auto;
	float:left;
	color:#199cb4;
	font-size:30px;
	text-align:left;
	font-weight:normal;
	letter-spacing:1px;
	margin:30px 0 0 0;
	padding:0;
}

.insideheader_botright {
	width:340px;
	height:91px;
	float:left;
	margin:0;
	padding:0;
}

.insideheader_button {
	width:340px;
	height:32px;
	float:left;
	margin:30px 0 0 0;
	padding:0;
}

a.insjoincomm_button {
	width:169px;
	height:32px;
	float:left;
	background:url(../images/insjoincomm_button.gif) no-repeat top left;
	margin:0;
	padding:0;
}

a:hover.insjoincomm_button {
	background:url(../images/insjoincomm_button_hover.gif) no-repeat top left;
}

a.insdownload_button {
	width:171px;
	height:32px;
	float:left;
	background:url(../images/insdownload_button.gif) no-repeat top left;
	margin:0;
	padding:0;
}

a:hover.insdownload_button {
	background:url(../images/insdownload_button_hover.gif) no-repeat top left;
}

.insheader_buttonshadow {
	width:336px;
	height:14px;
	float:left;
	background:url(../images/ins_buttonshadow.gif) no-repeat top left;
	margin:0;
	padding:0;
}
.header_botright {
	width:550px;
	height:352px;
	float:left;
	margin:0;
	padding:0;
}

.clear {
	clear:both;
}


a.cloud_logo {
	width:373px;
	height:51px;
	float:left;
	background:url(../images/cloudstack.png) no-repeat top left;
	margin:8px 0 0 0;
	padding:0;
}

.mainemenu_panel {
	width: 801px;
	height:51px;
	float:left;
	margin:0;
	padding:0;
}

.mainemenu_links {
	width: auto;
	height:auto;
	float:right;
	margin:30px 0 0 0;
	padding:0;
}

.mainemenu_links a:link {
	width: auto;
	height:auto;
	font-size:18px;
	text-align:left;
	font-weight:normal;
	text-decoration:none;
	color:#FFF;
	margin:0 25px 0 0;
	padding:0;
}

.mainemenu_links a:visited {
	width: auto;
	height:auto;
	font-size:18px;
	text-align:left;
	font-weight:normal;
	text-decoration:none;
	margin:0 25px 0 0;
	padding:0;
	color:#FFF;
}

.mainemenu_links a:hover {
	width: auto;
	height:auto;
	font-size:18px;
	text-align:left;
	font-weight:normal;
	text-decoration:none;
	margin:0 25px 0 0;
	padding:0;
	color:#FFF;
}

#main_content {
	width:960px;
	min-height:600px;
	height:auto;
	float:left;
	margin:0;
	padding:0;
}

.main_homecontent_left {
	width:600px;
	height:auto;
	float:left;
	margin:0;
	padding:0;
}

.home_introbox {
	width:600px;
	height:auto;
	float:left;
	margin: 25px 0 0 0;
	padding:0;
}

.home_introbox h1 {
	width:600px;
	height:auto;
	float:left;
	color:#199cb4;
	text-align:left;
	font-weight:normal;
	font-size:22px;
	margin:0;
	padding:0;
}

.home_introbox p {
	width:600px;
	height:auto;
	float:left;
	text-align:justify;
	font-weight:normal;
	line-height:22px;
	font-size:18px;
	margin:10px 0 0 0;
	padding:0;
}
.main_homecontent_right {
	width:311px;
	height:auto;
	float:right;
	margin:0;
	padding:0;
}

#news_panel {
	width:600px;
	height:auto;
	float:left;
	margin:30px 0 0 0;
	padding:0;
}

#news_panel h2 {
	width:auto;
	height:auto;
	float:left;
	color:#199cb4;
	font-size:18px;
	font-weight:normal;
	text-align:left;
}

.news_box {
	width:600px;
	height:auto;
	float:left;
	margin:15px 0 0 0;
	padding:0;
}

.news_box a:link {
	width:600px;
	height:auto;
	float:left;
	color:#105f8b;
	text-align:left;
	text-decoration:none;
	font-weight:normal;
	font-size:15px;
}

.news_box a:visited {
	width:600px;
	height:auto;
	float:left;
	color:#105f8b;
	text-align:left;
	text-decoration:none;
	font-weight:normal;
	font-size:15px;
}

.news_box a:hover {
	width:600px;
	height:auto;
	float:left;
	color:#666;
	text-align:left;
	text-decoration:none;
	font-weight:normal;
	font-size:15px;
}

.news_box p {
	width:600px;
	height:auto;
	float:left;
	margin:8px 0 0 0;
	text-align:left;
	font-size:12px;
	font-weight:normal;
	padding:0;
}

.news_box span {
	width:auto;
	height:auto;
	float:left;
	margin:0;
	color:#999;
	text-align:left;
	font-size:11px;
	font-weight:normal;
	padding:0;
}

#partners_panel {
	width:311px;
	height:auto;
	float:left;
	margin:30px 0 0 0;
	padding:0;
}

#partners_panel h2 {
	width:300px;
	height:auto;
	float:left;
	color:#199cb4;
	font-size:18px;
	font-weight:normal;
	text-align:left;
}

.partners_box {
	width:310px;
	height:auto;
	float:left;
	border-bottom:1px solid #CCC;
	margin:15px 0 0 0;
}

.partners_box_logo {
	width:auto;
	height:auto;
	float:left;
	display:block;
	margin:0 0 10px 0;
	padding:0;
	border:0;
}

.partners_box_small {
	width:155px;
	height:80px;
	float:left;
	margin:0;
	padding:0;
}

.readmore_box {
	width:100%;
	height:29px;
	float:left;
	margin:15px 0 0 0;
	padding:0;
}

.readmore_box a:link {
	width:auto;
	height:auto;
	float:right;
	color:#105f8b;
	font-size:12px;
	font-weight:normal;
	text-decoration:none;
	text-align:right;
	margin:0 10px 0 0;
	padding:0;
}

.readmore_box a:visited {
	width:auto;
	height:auto;
	float:right;
	color:#105f8b;
	font-size:12px;
	font-weight:normal;
	text-decoration:none;
	text-align:right;
	margin:0 10px 0 0;
	padding:0;
}

.readmore_box a:hover {
	width:auto;
	height:auto;
	float:right;
	color:#105f8b;
	font-size:12px;
	font-weight:normal;
	text-decoration:underline;
	text-align:right;
	margin:0 10px 0 0;
	padding:0;
}

#footer {
	width:100%;
	height:auto;
	background:#cdcdcd repeat top left;
	margin:25px 0 0 0;
	padding:0 0 10px 0;
	float:left;
}

#inside_footer {
	width:100%;
	height:auto;
	background:#cdcdcd repeat top left;
	margin:25px 0 0 0;
	padding:0;
	position:absolute;
	bottom:0;
}


#footer_maincontroller {
	width:960px;
	height:auto;
	margin:0 auto;
	padding:0;
}

#footer_maincontroller p{
	width:100%;
	height:auto;
	float:left;
	margin:15px 0 0 0;
	text-align:left;
	font-size:11px;
	font-weight:normal;
	padding:0;
}

.footer_linksbox {
	width:180px;
	height:auto;
	float:left;
	margin: 15px 20px 20px 0;
	padding:0;
}

.footer_linksbox li {
	width:170px;
	height:auto;
	float:left;
	margin: 0 0 5px 0;
	border-bottom:1px solid #999;
	list-style:none;
	padding:0;
}

.footer_linksbox a:link {
	width:auto;
	height:auto;
	float:left;
	font-size:11px;
	font-weight:normal;
	color:#666;
	text-decoration:none;
}

.footer_linksbox a:visited {
	width:auto;
	height:auto;
	float:left;
	font-size:11px;
	font-weight:normal;
	color:#666;
	text-decoration:none;
}

.footer_linksbox a:hover {
	width:auto;
	height:auto;
	float:left;
	font-size:11px;
	font-weight:normal;
	color:#333;
	text-decoration:none;
}

.inside_leftpanel {
	width:212px;
	height:auto;
	float:left;
	margin:0;
	padding:0;
}

.inside_rightpanel {
	width:718px;
	height:auto;
	float:right;
	margin:0;
	padding:0;
}

.inside_contentpanel {
	width:700px;
	height:auto;
	float:left;
	margin:0 0 0 0;
	padding:0;
}

.inside_contentpanel h1{
	width:700px;
	height:auto;
	float:left;
	color:#199cb4;
	font-size:20px;
	font-weight:normal;
	text-align:left;
	margin:0;
	padding:0;
}

.inside_contentpanel h2{
	width:700px;
	height:auto;
	float:left;
	color:#199cb4;
	font-size:16px;
	font-weight:normal;
	text-align:left;
	margin:15px 0 0 0;
	padding:0;
}


.inside_contentpanel h3{
	width:700px;
	height:auto;
	float:left;
	font-size:15px;
	font-weight:bold;
	text-align:left;
	margin:15px 0 0 0;
	padding:0;
}

.inside_contentpanel h4{
	width:700px;
	height:auto;
	float:left;
	font-size:14px;
	font-weight:normal;
	text-align:left;
	margin:15px 0 10px 15px;
	padding:0;
}

.inside_contentpanel p {
	width:100%;
	height:auto;
	float:left;
	text-align:justify;
	font-size:12px;
	font-weight:normal;
	margin:10px 0 0 0;
	padding:0;
}

.inside_contentpanel a:link {
	width:auto;
	height:auto;
	color:#009fcd;
	text-decoration:none;
	text-align:left;
	font-size:12px;
	margin:0;
	padding:0;
}

.inside_contentpanel a:visited {
	width:auto;
	height:auto;
	color:#009fcd;
	text-decoration:none;
	text-align:left;
	font-size:12px;
	margin:0;
	padding:0;
}

.inside_contentpanel a:hover {
	width:auto;
	height:auto;
	color:#009fcd;
	text-decoration:underline;
	text-align:left;
	font-size:12px;
	margin:0;
	padding:0;
}

.download_text {
	width:600px;
	height:auto;
	float:left;
	color:#7418c2;
	text-align:left;
	font-weight:normal;
	font-size:18px;
	margin:20px 0 15px 0
}

.download_textbox {
	width:720px;
	height:auto;
	float:left;
	color:#333;
	text-align:left;
	font-weight:normal;
	font-size:18px;
	margin:20px 0 15px 0;
	border-top:1px dashed #999;
}

.screenshots_box {
	width:454px;
	height:455px;
	float:left;
	background:#000 repeat top left;
	margin:20px 0 0 65px;
	display:inline;
}

.apiannouncement_box {
	width:928px;
	height:auto;
	float:left;
	background:#e0f4ff repeat top left;
	margin:15px 0 0 0;
	border:1px solid #9dd2eb;
}

.apiannouncement_contentarea {
	width:895px;
	height:auto;
	float:left;
	margin:0 0 0 15px;
	display:inline;
	padding:0;
}

.inside_apileftpanel {
	width:930px;
	height:left;
	float:left;
	margin:0;
	padding:0;
}

.api_leftsections {
	width:928px;
	height:auto;
	float:left;
	border-top:1px dashed #666;
	margin:15px 0 0 0;
	padding:0;
}



.api_leftsections span {
	width:700px;
	height:auto;
	float:left;
	color:#666;
	font-size:11px;
	font-weight:normal;
	text-align:left;
	margin:7px 0 0 0;
	padding:0;
}

.api_legends{
	width:300px;
	height:auto;
	float:left;
	background:#f9f9f9;
	border:1px solid #e6e6e6;
	margin:8px 0 0 0;
	padding:0 3px 3px 0;
}

.api_legends p{
	width:250px;
	height:auto;
	float:left;
	color:#333;
	text-align:left;
	font-size:11px;
	font-weight:normal;
	margin:5px 0 0 5px;
	padding:0;
}

.api_legends_async{
	width:auto !important;
	height:auto;
	color:#2c8bbc !important;
	font-size:11px;
	font-weight:normal;
	text-align:left;
	margin:0 3px 0 0 !important;
	padding:0;
}

.api_legends_premium{
	width:auto !important;
	height:auto;
	color:#013150 !important;;
	font-size:11px;
	font-weight:normal;
	text-align:left;
	margin:0 3px 0 0 !important;;
	padding:0;
}

.apismallsections {
	width:925px;
	height:auto;
	float:left;
	margin:15px 0 0 0;
	list-style:none;
	padding:0;
}

.apismallbullet_box {
	width:231px;
	height:auto;
	float:left;
	margin:10px 0 0 0;
	list-style:none;
	padding:0;
}

.apismallbullet_box h5 {
	width:120px;
	height:auto;
	float:left;
	color:#666;
	font-size:12px;
	text-align:left;
	font-weight:bold;
	margin:0;
	padding:0 0 10px 0;
}

.apismallbullet_box h6 {
	width:120px;
	height:auto;
	float:left;
	color:#6214ab;
	font-size:12px;
	text-align:left;
	font-weight:bold;
	margin:0;
	padding:0 0 10px 0;
}

.apismallbullet_box li {
	width:188px;
	height:auto;
	float:left;
	margin:4px 0 0 0;
	background:url(../images/api_bullets.gif) no-repeat top left;
	padding:0 0 3px 15px;
	background-position: 2px 2px;
	text-align: left;
	list-style:none;
	border-bottom:1px dotted #999;
}

.apismallbullet_box a{
	width:auto;
	height:auto;
	float:left;
	color:#2c8bbc;
	font-size:11px !important;
	font-weight:normal;
	text-align:left;
	margin:0;
	padding:0;
	text-decoration:none;
}

.apismallbullet_box a:link, .apismallbullet_box a:visited {
	text-decoration:none;
}

.apismallbullet_box a:hover {
	text-decoration:underline;
}

.api_tablepanel {
	width:920px;
	height:auto;
	float:left;
	margin:15px 0 0 0;
	padding:0;
}

.api_tablepanel h2{
	width:800px;
	height:auto;
	float:left;
	color:#666;
	font-size:14px;
	font-weight:bold;
	text-align:left;
	margin:15px 0 0 0;
	padding:0;
}

.apitable {
	width:100%;
	height:auto;
	float:left;
	border:none;
	border-collapse:collapse;
	margin:10px 0 0 0;
	padding:0;
}

.api_usagebox {
	width:700px;
	height:auto;
	float:left;
	background:#f4f5f5;
	border:1px solid #CCC;
	margin:10px 0 0 30px;
	padding:10px;
	color:#333;
	font-size:11px;
	font-weight:normal;
	text-align:left;
}

.api_samplebox {
	width:700px;
	height:auto;
	float:left;
	background:#E0F4FF;
	border:1px solid #9DD2EB;
	margin:10px 0 0 30px;
	padding:10px;
	color:#333;
	font-size:11px;
	font-weight:normal;
	text-align:left;
}

.apitable tr {
	width:100%;
	height:auto;
	float:left;
	border-collapse:collapse;
	border-bottom:1px solid #d5e8f1;
	margin:0;
	padding:0;
}

.apitable tr.hed {
	width:100%;
	height:22px;
	float:left;
	background:#e7e7e7;
	border-collapse:collapse;
	border-top:1px solid #999;
	border-bottom:1px solid #999;
	margin:15px 0 0 0;
	padding:0;
	border-left:none;
	border-right:none;
}

.apitable td {
	height:auto;
	float:left;
	border:none;
	color:#333;
	font-size:12px;
	font-weight:normal;
	border-collapse:collapse;
	text-align:left;
	padding:5px;
	margin:0;
}


.apitable td.p{
	height:auto;
	float:left;
	border:none;
	color:#333;
	font-size:12px;
	font-weight:normal;
	text-align:left;
	padding:5px;
	margin:0;
}



.api_titlebox {
	width:100%;
	height:auto;
	float:left;
	margin:0;
	padding:0;
}

.api_titlebox_left {
	width:700px;
	height:auto;
	float:left;
	margin:0;
	padding:0;
}

.api_titlebox span{
	width:600px;
	height:auto;
	float:left;
	color:#666;
	font-size:11px;
	font-weight:normal;
	font-style:italic;
	text-align:left;
	margin:10px 0 0 0;
	padding:0;
}

.api_titlebox_right {
	width:200px;
	height:20px;
	float:right;
	margin:0;
	padding:0;
}

a.api_backbutton {
	width:60px !important;
	height:19px !important;
	float:right;
	background:#F00 url(../images/back_button.gif) no-repeat top left;
	margin:10px 0 0 0 !important;
	padding:0;
	text-decoration:none;
}

a:hover.api_backbutton {
	background:url(../images/back_button_hover.gif) no-repeat top left;
}
