@font-face {
	font-family: 'HelveticaNeueLight';
	src: url('../fonts/helveticaneue_lt.eot');
	src: url('../fonts/helveticaneue_lt.eot') format('embedded-opentype'),  url('../fonts/helveticaneue_lt.woff') format('woff'),  url('../fonts/helveticaneue_lt.ttf') format('truetype'),  url('../fonts/helveticaneue_lt.svg#HelveticaNeueLight') format('svg');
}
@font-face {
	font-family: 'HelveticaNeueRegular';
	src: url('../fonts/helveticaneue-webfont.eot');
	src: url('../fonts/helveticaneue-webfont.eot') format('embedded-opentype'),  url('../fonts/helveticaneue-webfont.woff') format('woff'),  url('../fonts/helveticaneue-webfont.ttf') format('truetype'),  url('../fonts/helveticaneue-webfont.svg#HelveticaNeueRegular') format('svg');
}
/*@font-face {
    font-family: 'open_sanslight';
    src: url('../fonts/opensans-light-webfont.eot');
    src: url('../fonts/opensans-light-webfont.eot?#iefix') format('embedded-opentype'),
         url('../fonts/opensans-light-webfont.woff') format('woff'),
         url('../fonts/opensans-light-webfont.ttf') format('truetype'),
         url('../fonts/opensans-light-webfont.svg#open_sanslight') format('svg');
    font-weight: normal;
    font-style: normal;

}

@font-face {
    font-family: 'open_sansregular';
    src: url('../fonts/opensans-regular-webfont.eot');
    src: url('../fonts/opensans-regular-webfont.eot?#iefix') format('embedded-opentype'),
         url('../fonts/opensans-regular-webfont.woff') format('woff'),
         url('../fonts/opensans-regular-webfont.ttf') format('truetype'),
         url('../fonts/opensans-regular-webfont.svg#open_sansregular') format('svg');
    font-weight: normal;
    font-style: normal;

}
*/



html {
	font-size: 100%;
}
body {
	font-size: 14px;
	font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, SimSun, sans-serif;
	color: #333333;
	font-weight: 400;
	padding: 0;
	overflow-x: hidden;
}
.topspace {
	margin-top: 40px;
}
p {
	line-height: 1.8em;
	margin: 0 0 15px 0;
}

blockquote p {
    font-weight: 400;
    line-height: 1.8em;
}
.title_text {
	font-size: 1.1em !important;
}
.big_text {
	font-size: 1.7em !important;
}
.normal_text {
	font-size: 1.3em !important;
	font-weight: 600;
}
.card-s, .card-m, .card-l {
	background: #FFFFFF;
    box-shadow: 0 0 4px 0 #CFD8DC;
    margin-top: 20px;
    text-align: left;
    float: left;
}
.card-s {
	height: 240px;
    padding: 10px;
}
.card-m {
	height: 500px;
}
.card-l {
	height: 760px;
	padding-top: 49px;
}
ul, ol {
	line-height: 1.6em;
	margin-bottom: 15px;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
	font-weight: 400;
	color: #333333;
}
h1 {
	font-size: 40px;
}
h2 {
	font-size: 36px;
}
h3 {
	font-size: 30px;
}
h4 {
	font-size: 24px;
}
h5 {
	font-size: 20px;
}
h6 {
	font-size: 16px;
}
a {
	color: #2679f4;
	-webkit-transition: 0.25s;
	-moz-transition: 0.25s;
	-o-transition: 0.25s;
	transition: 0.25s;
}
a:hover, a:focus {
	cursor: pointer;
	color: #2062c4;
	text-decoration: none;
}
/*********************************************************************
 

                                HEADER


**********************************************************************/
#head {
	background: #f4f4f4 url(../images/data.jpg) top center;
	background-size: cover;
	color: #7C7C7C;
	height: 520px;	
}
#head.normal-header {
	background: #f4f4f4 url(../images/normal.jpg) top center;
	background-size: cover;
	color: #7C7C7C;
	height: 360px;	
}
#head.normal-header .header-apache div {
	margin-top: 310px;
}
#head .title {
	font-weight: 400;
	font-size: 2.2rem;
	font-size: 36px;
	color: #fb8d08;/*	background-image: -webkit-gradient( linear, left bottom, right bottom, color-stop(0, #C6419E), color-stop(1, #6382FF) );
	background-image: -o-linear-gradient(right, #C6419E 0%, #6382FF 100%);
	background-image: -moz-linear-gradient(right, #C6419E 0%, #6382FF 100%);
	background-image: -webkit-linear-gradient(right, #C6419E 0%, #6382FF 100%);
	background-image: -ms-linear-gradient(right, #C6419E 0%, #6382FF 100%);
	background-image: linear-gradient(to right, #C6419E 0%, #6382FF 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;*/
  
}
#head img.img-circle {
	display: block;
	width: 140px;
	height: 140px;
	overflow: hidden;
	border: 9px solid rgba(0, 0, 0, 0.05);
	margin: 0 auto;
}

#head .title a {
	text-decoration: none;
	color: #333333;
}
#head .tagline {
	display: block;
	font-size: 14px;
	font-size: 1.1rem;
	line-height: 1.2em;
	color: #7C7C7C;
	margin: 5px 0 0;
}
#head .tagline b {
	font-weight: 400;
}
#head .tagline a {
	color: #5E5E5E;
}
#logo {
	padding-top: 50px;
}
.home #head .title {
	font-size: 18px;
	color: #fb8d08;/*color:#146df3;*/
	
}
#download {
	text-align: center;
	padding: 20px;
	font-size: 16px;
	width: 150px;
	margin: 30px auto;
	padding: 0.6em 0.8em;
	color: #333;
	/*background: rgba(38,121,244,0.8);*/
	border: 1px solid #333;
	-webkit-animation-delay: 1s;
	-ms-animation-delay: 1s;
	-moz-animation-delay: 1s;
	-o-animation-delay: 1s;
	animation-delay: 1s;
	text-shadow: none;
	text-transform: uppercase;
 transparent!important
}
#download a {
	color: #333;
}
#download:hover {
	border: 1px solid #5c5c5c;
	opacity: 0.8;
}
/*********************************************************************
 

                            NAVBAR 


**********************************************************************/

.navbar {
	/*
	background: #f4f4f4 url(../images/data.jpg) top center;
	background-size: cover;
	color: #7C7C7C;
	height: 100px;
*/
	 border-width: 1px 0;
	-webkit-border-radius: 0;
	-webkit-background-clip: padding-box;
	-moz-border-radius: 0;
	-moz-background-clip: padding;
	border-radius: 0;
	background-clip: padding-box;
	width: 100%;
	margin: 0px;

}
/* search input */
.icon-navbar li.li-search {
  width: auto;
  height: 32px;
	position: relative;
	background:none;
}
.icon-navbar li.li-search:hover {
	background:none;
}
.search-container {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.search-container .form-control {
	padding:0;
}
.search-container .form-control:focus {
	padding:0 0 0 36px;
}
.search-container .search {
  position: absolute;
  /*float: left;*/
  margin: auto;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 32px;
  height: 32px;
  background: #0988DE;
  border-radius: 50%;
  transition: all 1s;
  z-index: 4;
  line-height: 32px;
  text-align: center;
  color:#fff;
}
.search-container .search:hover {
  cursor: pointer;
}
.search-container input {
  position: relative;
  margin: auto;
  width: 32px;
  height: 32px;
  border-radius: 16px;
  transition: all 0.5s;
  opacity: 0;
  box-shadow: none!important;
  z-index: 5;
  letter-spacing: 0.1em;
  border:solid 1px #cfd8dc!important;
}
.search-container input:hover {
  cursor: pointer;
}
.search-container input:focus {
  width: 134px;
  opacity: 1;
  cursor: text;
}
.search-container input:focus ~ .search {
  right: 250px;
  background: #F3982A;
  z-index: 6;
}
.search-container input:focus ~ .search::before {
  top: 0;
  left: 0;
  width: 25px;
}
.search-container input:focus ~ .search::after {
  top: 0;
  left: 0;
  width: 25px;
  height: 2px;
  border: none;
  border-radius: 0%;
}
/* end */

.navbar.stick {
	position: fixed;
	top: 0;
	left: 0;
	opacity: .95;
}
.navbar-collapse {
	-webkit-border-radius: 0;
	-webkit-background-clip: padding-box;
	-moz-border-radius: 0;
	-moz-background-clip: padding;
	border-radius: 0;
	background-clip: padding-box;
	font-weight: 400;
	height: 72px;
	padding: 0px;
	/* text-transform: uppercase;*/
}
.navbar-collapse.in {
    overflow-y: visible;
}
.navbar-logo {
	float: left;
    margin-top: 17px;
    margin-left: 20px;
}
.icon-navbar {
	margin: 0px;
	text-align: center;
	padding: 0px;
    position: absolute;
    right: 20px;
}
.icon-navbar li{
	float: left;
	border-radius: 100%;
    height: 32px;
    width: 32px;
    background: #0988DE;
    text-align: center;
    margin: 22px  10px 18px;
    list-style: none;
}
.icon-navbar li:hover{
    background: #F3982A;
}
.icon-navbar li a{
    color: #fff;
    padding: 0px;
    line-height: 32px;
}
.icon-navbar li a:hover{
    background: initial;
}
.navbar-nav {
	float: none;
	margin: 0px auto;
	text-align: center;
	max-width: 805px;
    width: 100%;
}
.navbar-default .navbar-nav>.open>a {
	color: #fff;
	background-color: #F3982A;
}
.navbar-nav > li > a {
	padding: 27px 20px 25px 20px;
}
.navbar-default {
	background-color: #ffffff;
	border-color: #cccccc;
}
.navbar-default .navbar-nav > li > a {
	color: #454545;
}
.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus {
	color: #ffffff;
	background-color: #F3982A;
}
.navbar-default .navbar-nav > li > a.nnav {
	color: #F3982A;
	background-color: inherit;
}
.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus {
	color: #F3982A;
	background-color: #ffffff;
}
.navbar-default .dropdown ul.dropdown-menu > li > a {
	color: #454545;
}
.navbar-default .dropdown ul.dropdown-menu > li > a:hover {
	background-color: #eeeeee;
	color: #000000;
}
.navbar-nav .dropdown-menu {
	padding: 0;
}
.navbar-nav .dropdown-menu li a:hover{ 
    color: #fff;
    text-decoration: none;
    background-color: #F3982A;
}
.navbar-nav .dropdown-menu li a{
	margin: 0px;
	text-align: left;
}
/*.top-logo {
	background-image: -webkit-gradient(  linear,  left bottom,  right bottom,  color-stop(0, #C6419E),  color-stop(1, #6382FF) );
	background-image: -o-linear-gradient(right, #C6419E 0%, #6382FF 100%);
	background-image: -moz-linear-gradient(right, #C6419E 0%, #6382FF 100%);
	background-image: -webkit-linear-gradient(right, #C6419E 0%, #6382FF 100%);
	background-image: -ms-linear-gradient(right, #C6419E 0%, #6382FF 100%);
	background-image: linear-gradient(to right, #C6419E 0%, #6382FF 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}*/
.top-logo-border {
	background-color: #efefef;
	width: 3em;
	height: 3em;
	border-radius: 1.5em;
}
/*********************************************************************************/
/* Main Sections                                                                 */
/*********************************************************************************/

.main {
	position: relative;
	margin: 0;
	font-weight: 400;
}
.indent {
	margin-left: 40px;
	line-height: 1.8em
}
.main p {
	margin-top: 1.25em;
	padding: 0;
	line-height: 2em;
}
.main p a {
	color: #2679f4;
	-webkit-transition: 0.25s;
	transition: 0.25s;
}
.main p a:hover, a:focus {
	cursor: pointer;
	color: #2062c4;
	text-decoration: none;
}
.main > header {
	background: #fff;
	text-align: center;
	padding: 4em 0 4em 0;
	margin-top: 3em;
}
.main > header h2 {
	font-size: 2.25em;
	margin-bottom: 0;
}
.main > header p {
	margin: 2em 0 0 0;
	padding: 0;
	text-align: left;
	line-height: 1.5em
}
.less-margin {
	margin-top: 1em !important;
}
.main > .content {
	padding: 6em 0 6em 0;
}
.main > .content > .container {
}
.main > .content h3 {
	font-size: 1.5em;
}
/*********************************************************************
 

                                CONTENT


**********************************************************************/

.card {
	background: #FFFFFF;
    box-shadow: 0 0 4px 0 #CFD8DC;
}

.circle {
	width: 8em;
	height: 8em;
	border-radius: 4em;
	text-align: center;
	margin: 0 auto;
	border: 1px solid #333;
	padding-top: 2em;
}
.circle-icon {
	font-size: 4.3em;
	text-align: center;
	vertical-align: middle;
	padding-top: 0.5em;
	color: #666666;
}
.circle-spot:before {
    content: '●';
    color: #F3982A;
    margin-right: 10px;
}
.li-circle {
    float: left;
    border: 1px solid #f3982a;
    border-radius: 100%;
    height: 24px;
    width: 24px;
    line-height: 24px;
    font-size: 16px;
    display: inline-block;
    text-align: center;
    margin-right: 10px;
    color: #fff;
    background: #f3982a;
}
.version:hover {
	opacity: .7;
	-webkit-transition: 0.25s;
	-moz-transition: 0.25s;
	-o-transition: 0.25s;
	transition: 0.25s;
}
.biggericon {
	font-size: 58px;
}
#lessmargin {
	margin-top: 1.4em;
}
img {
	max-width: 100%;
}
#intro_logo {
	margin: 45px auto;
	height: 154px;
	width: 169px;
}
#ecosystem h6{
    text-align: left;
}
#ecosystem p{
	margin: 0;
    margin-left: 20px;
}
.index-title {
	font-size: 36px;
    color: #333333;
    letter-spacing: 0;
    text-align: center;
}
.section-title, .entry-title {
	display: block;
	width: 100%;
	overflow: hidden;
	margin: 0px 0 25px;
	text-align: center;
	text-transform: uppercase;
	font-size: 36px;
	font-size: 1.8rem;
	letter-spacing: 1px;
}
.section-title a, .entry-title a {
	color: #333333;
}
.section-title span, .entry-title span {
	display: inline-block;
	position: relative;
}
.section-title span:before, .entry-title span:before, .section-title span:after, .entry-title span:after {
	content: "";
	position: absolute;
	height: 4px;
	top: .53em;
	width: 400%;
	border-bottom: 1px solid #ccc;
	border-top: 1px solid #ccc;
}
.section-title span:before, .entry-title span:before {
	right: 100%;
	margin-right: 45px;
}
.section-title span:after, .entry-title span:after {
	left: 100%;
	margin-left: 45px;
}
.entry-header .entry-meta {
	text-align: center;
	font-size: 18px;
	font-size: 1.125rem;
	font-style: italic;
	color: #a5a5a5;
	margin: 0 0 15px 0;
}
.entry-header .entry-meta a {
	color: #a5a5a5;
}
.entry-content {
	margin: 0 0 60px 0;
}
.code-lan {
	font-size: 1.1em !important;
	text-align: center !important;
}
.code-lan>span {
	padding-left: 10px;
	padding-right: 10px;
}
#left-menu {
	line-height: 2.5em !important;
	list-style: none;
	text-align: left;
	margin-top: 10px;
}
#left-menu li {
	border-bottom: 1px solid #e9e9e9;
	cursor: pointer;
}
a.section-menu-title {
	color: #666;
	font-weight: 400;
	-webkit-transition: 0.25s;
	-moz-transition: 0.25s;
	-o-transition: 0.25s;
	transition: 0.25s;
	padding-left: 1em
}
a.section-menu-title:hover {
	color: #404040 !important;
}
.maintains {
	padding-left: 2em;
	line-height: 2em !important;
}
.maintain {
	line-height: 2em !important;
}
.people_intro {
/*border-bottom:1px dashed #CCC;
	line-height:2em;
	padding-bottom:0.3em*/
}
#contributors {
	padding-bottom: 1.4em
}
#contributors2 {
	border-bottom: 1px dashed #cfcfcf;
	padding-bottom: 1.4em
}
.core_team {
	text-align: center !important;
	font-size: 1.2em !important;
	padding-bottom: 2em !important;
	border-bottom: 1px dashed #cfcfcf;
}
.participant {
	margin-top: 0px !important
}
.content-p {
	margin-top: 1em !important;
}
.content-header {
	text-align: left;
}
.header-apache {
    margin: 0 30px 0 auto;
    z-index: 11;
    text-align: right;
}
.header-apache div {
    border-radius: 100%;
    height: 85px;
    width: 85px;
    float: right;
    background: #fff;
    text-align: center;
    margin-top: 475px;
    box-shadow: 0px 4px 4px 0 #CFD8DC;         
}
.header-apache div:hover {
    box-shadow: 0px 5px 5px 0 #F3982A;         
}
.header-apache img{
    margin-top: 3px;
    height: 79px;
    width: 79px;
}
.home-pic {
    border-radius: 100%;
    height: 86px;
    width: 86px;
    margin: 54px 25px 75px 0px;
    float:left;
    background: #F19D01;
    text-align: center;
    line-height: 86px;
}
.other-pic {
    height: 315px;
    width: 100%;
    float:left;
    background: #F19D01;
    text-align: center;
    line-height: 340px;
    margin-left: -15px;
    position: absolute;
    bottom: 0;
}
.card-s .indent {
	margin-top: 15px;
}
.card-l ul{
	margin: 45px 0 0 20px;
}
.card-l b{
	font-size: 16px;
	line-height: 22px;
    margin-left: 120px;
}
.home ul {
	list-style: none;
	padding: 0;
}
.home ul li {
	position: relative;
}
.home ul>li:before {
    content: '●';
    color: #F3982A;
    position: absolute;
    left: -20px;
}
.download {
    margin-bottom: 90px;
}
.download>ul {
    list-style: none;
    padding: 0;
}
.download>ul>li:before{
    content: '●';
    color: #F3982A;
    margin-right: 10px;
    float: left;
}
.kylin-member {
	background: #FAFAFA;
}
.kylin-member h2{
    text-align: center;
    margin: 60px 0 45px 0;
}
.credits {
	margin-bottom: 100px;
}
.main .credits h2{
    text-align: center;
    margin: 60px 0 45px 0;
}
.credits ul{
    text-align: left;
}
.contributors {
	margin: 5px 0 60px 15px;
}
.contributors table{
	text-align: left;
}
.contributors span {
	min-width: 120px;
}
.contributors p {
	margin: 0;
}
.community ul {
	list-style: none;
}
.community ul li {
	position: relative;
}
.community ul>li:before {
    content: '●';
    color: #F3982A;
    position: absolute;
    left: -20px;
}
.community .members-card {
    height: 160px;
    background: #FFFFFF;
    box-shadow: 0 0 4px 0 #CFD8DC;
}

.community .members-card .github-pic{
    border-radius: 100%;
    height: 86px;
    width: 86px;
    margin: 25px 25px 49px;
    float:left;
}

.community .members-card .members-name{
	font-size: 16px;
	line-height: 22px;
    margin: 25px 0 10px;
    padding-top: 20px;
}

.community .members-card .members-role{
	font-size: 14px;
	line-height: 18px;
	margin-top: 0px;
}

.community .members-card .apche-id{
	font-size: 14px;
}

.community #pmc-members--committer {
	text-align: center;
}

.community #credits {
	margin-top: 60px;
	text-align: center;
}
.community th{
    min-width: 120px;
}

.main .rss-subscribe {
	text-align: center;
	font-size: 16px;
	color: #333333;
	margin-top: 30px;
	margin-bottom: 70px;
	line-height: 22px;
}
.blog-card {
	height: 105px;
	box-shadow: 0 0 4px 0 #CFD8DC;
	display: block;
	color: #333;
}
.blog-card:hover {
	height: 105px;
	color: #333;
	box-shadow: 0 0 4px 0 #f3982a;
}
.blog-card:hover .blog-pic{
   background: #f3982a;
}
.main .blog-card .blog-title{
   margin-top: 25px;
   font-size: 16px;
   line-height: 22px;
   padding-top: 25px;
}
.main .blog-card .blog-title a{
   color: #333333;
}
.main .blog-card p{
   margin-top: 8px;
}
.blog-pic {
    border-radius: 100%;
    height: 56px;
    width: 56px;
    margin: 26px 10px 25px 23px;
    background: #CFD8DC;
    line-height: 56px;    
    float:left;
}
.blog-icon {
	border-radius: 100%;
    height: 56px;
    width: 56px;
    margin: 0px 10px 0px 0px;
    background: #f3982a;
    line-height: 56px;
    text-align: center;
    float:left;
}
.blog {
  margin-bottom: 50px;
}
.blog ul {
  list-style: none;
  position: relative;
}

.blog ul>li:before {
  content: '●';
  color: #F3982A;
  position: absolute;
  left: 20px;
}
.blog ul>li:after {
  clear: both;
}
.blog ol {
  padding-left: 20px;
}
.powered {
  margin-bottom: 90px;
}
.powered ul {
	list-style: none;
	padding-left: 0px;
}
/*********************************************************************
 

                                FOOTER


**********************************************************************/


ul.icons {
	position: relative;
	background: rgba(128,128,128,0.05);
	border-radius: 4em;
	display: inline-block;
	padding: 0.35em 0.75em 0.35em 0.75em;
	font-size: 1.45em;
	cursor: default;
}
ul.icons li {
	display: inline-block;
}
ul.icons li a {
	display: inline-block;
	background: none;
	width: 2.5em;
	height: 2.5em;
	line-height: 2.5em;
	text-align: center;
	border-radius: 100%;
	border: 0;
	color: inherit;
}
ul.icons li a:hover {
	color: #ef8376;
}
ol.none-icon {
	list-style: none;
	padding: 0px;
}
ol.none-icon li{
	padding: 8px 0px;
}
#footer {
	background: #232323;
	padding: 30px 0 0 0;
	font-size: 12px;
	color: #999;
}
#footer a {
	color: #ccc;
}
#footer a:hover {
	color: #fff;
}
#footer h3.widget-title {
	font-size: 15px;
	font-size: 0.9375rem;
	text-transform: uppercase;
	color: #ccc;
	margin: 0 0 20px;
}
.widget-body {
  font-size: 14px;
  img {
  	float: left;
  	height: 100%;
  }
  a {
  	color: #093A00;
  }
}
#underfooter {
	background: #333333;
	color: #ffffff;
	font-size: 12px;
}
#underfooter a {
	color: #2679f4;
}
#underfooter a:hover {
	color: #fff;
}
#underfooter p {
	margin: 0;
}
#underfooter img {
	float: left;
	width: 150px;
	height: 72px;
	margin-right: 94px;
	margin-left: 40px;
}
.navbar-default .navbar-collapse, .navbar-default .navbar-form {
	border-color: transparent;
}
.navbar-toggle {
    margin-top: 21px;
    margin-right: 20px;
}
#nav.affix {
	position: fixed;
	top: 0;
	width: 100%;
}
#nav {
	border-radius: 0;
	background-clip: padding-box;
	font-weight: 400;
	/* text-transform: uppercase;*/
	max-height: 340px;
	border-bottom: 1px solid #d5d4d4;
	background-color: #fff;
	opacity: .95;
	padding: 0;
}
.navbar-nav>li>a {
	color: #454545;
}
.nav>li>a:hover, .nav>li>a:focus {
	text-decoration: none;
	background-color: transparent;
}
#drawer-icon {
	font-size: 20px;
	padding: 4px 6px;
	border: 1px solid #2679f4;
	border-radius: 3px;
	margin: 10px;
}

/* Max page width
/////////////////////////////////////////////////////////////////////*/
@media (min-width: 1200px) {
	.container {
		max-width: 1080px;
	}
}


@media only screen and (max-width: 767px) {
	
	#nav {
		background-color: transparent !important;
	}
	#head {
		margin-top: 40px;
		height: 300px;
	}
	#nav-wrapper {
		position: fixed;
		top: 0px;
	}
	.navbar-nav {
		background-color: #fff;
		border: 1px solid #d5d4d4;
	}
	.navbar-nav>li {
		display: list-item;
		border-bottom: 1px solid #d5d4d4;
	}
	.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {
	    background-color: transparent !important;
	}

	.center {
	    text-align: center;
	}

	.icon-navbar {
		right: 80px;
	}
	ul.icon-navbar li {
		margin-right: 2px;
	}
	.header-apache div {
		margin-top: 255px;
	}
	#head.normal-header .header-apache div {
		margin-top: 165px;
	}
	#head.normal-header {
		height: 200px;
	}
    .header-apache div  {
    	height:66px;
    	width:66px;
    }
    .header-apache div img {
    	height:60px;
    	width:60px;
    }
    .footer-img {
    	display: inline-block;
        width: 100%;
        text-align: center;
        background: #fff;
    }
    #underfooter img {
    	float: none;
    	margin: 0px auto;
    }
    #underfooter p {
    	padding: 11px;
    }

	.home-pic{
		margin:0 25px 0 0;
	}
    .aside2 {
        padding: 0px 0px 0px 10px; 
    }
}
