/*
Shield Website Template
Author - hunzaboy
URL : http://uexel.com

 #74C0CF
 -> 
*/

/*
Shield Website Template
Author - hunzaboy
URL : http://uexel.com

 #74C0CF
 -> 
*/

body { 
	font-family: "Helvetica Neue", Helvetica, sans-serif;
	font-size: 16px;
	line-height: 1.5em;
	font-weight: 300;
	color: #717576;
	background: url(/xtend/images/header_background.jpg) #010211;
	background-repeat: no-repeat;
/* 	background: url('/xtend/images/noise.png') #005580; */
}

a {
	color: #005580;
	font-weight: 400;
}

p {
	font-size: 16px;
	line-height: 1.4em;
}

pre {
	background-color: white;
	padding : 5px;
}

code.prettyprint ol {
	margin:0;
	list-style: decimal;
	list-style-position: inside;
}

li {
	line-height: 1.4em;
}



.btn-primary {
/* 	background: url('/xtend/images/noise.png') #74C0CF; */
	background: url('/xtend/images/noise.png') #005580;
}

.btn-primary:hover {
	box-shadow: 0 0 3px rgba(0, 0, 0, 1);
}

h1 {
	margin-bottom: 10px;
}

h1 small {
	color: #717576;
	margin-left: 12px;
}

h2 {
	margin-top: 20px;
	margin-bottom: 10px;
	font-size: 26px;
	font-family: 'Lato', serif;
	font-weight: normal;
	color: #383838;
}

h2 small {
	font-size: 12px;
	color: #717576;
	margin-left: 10px;
}

h3 {
	margin-top: 16px;
	margin-bottom: 6px;
	font-size: 20px;
	font-family: 'Lato', sans-serif;
	font-weight: normal;
	color: #383838;
}

h4 {
	margin-top: 14px;
	margin-bottom: 2px;
	font-size: 17px;
	font-family: 'Lato', sans-serif;
	font-weight: bold;
	color: #484848;
}

h5 {
	font-size: 15px;
	font-family: 'Lato', sans-serif;
	font-weight: bold;
	color: #717576;
}

img {
	max-width: 100%;
	height: auto;
}

em {
	font-weight: 500;
	font-style: italic;
	padding: 0 2px 0 0;
}

strong {
	font-weight: bold;
}

code {
  color: #48484c;
  font-size: 13px;
}

hr {
  border-top: 1px solid #d0d0d0;
  border-bottom: 1px solid #f0f0f0;
}

#features {
	background: url(/xtend/images/pattern1.jpg) repeat #ebebeb;
}

#comparison h2 {
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	color: #6B6B6B;
	font-weight: 400;
	line-height: 1.3em;
	font-style: normal;
	word-spacing: 1px;
	text-align: right;
	font-size: 24px;
	margin:20pt;
}

td.code {
	background-color: transparent; 
	border: inherited;
}

td.code pre {
	background-color: transparent; 
	border: none;
}

.btn_download {
	background: url(/xtend/images/download.png) no-repeat;
	width: 160px;
	height: 60px;
/* 	margin-top: 20px; */
	float: left;
/* 	margin-left: 10px; */
}
.btn_documentation {
	background: url(/xtend/images/documentation.png) no-repeat;
	width: 200px;
	height: 60px;
	float: left;
/* 	margin-top: 20px; */
/* 	margin-left: 10px; */
}
@media (min-width: 1200px) {
  .btn_documentation {
		margin-left:40px;
  }
}


.button_wrapper {
	position: relative;
	left: 40%;
	float: left;
}

.image_left_reviews {
	margin: 0px 10px 10px 0px;
	width: 100px;
	float: left;
}

.image_between_p {
	display: block; 
	margin-left: 40px;  
	margin-right: auto; 
	margin-top: 25px; 
	margin-bottom : 25px;
}

.row_color {
	background: url(/xtend/images/div-grey-top.png) no-repeat center top #f8f8f8;
	bspwidth: 100%;
	border-bottom: 1px solid #e2e2e2;
}

.textstyle1 {
	text-align: center;
}

.sub-text {
	padding-top: 4px;
	margin-bottom: 15px;
}

.textstyle3 {
	font-size: 12px;
}

#header_wrapper {
	padding-bottom: 50px;
	color: white;
	height: auto;
	border: none;
	overflow: hidden;
	padding-top : 80pt;
}

#header_wrapper a {
	color : #c1e6ff;
}

@media (max-width: 767px) {
	#header_wrapper {
		margin-left : -15pt;
		margin-right : -15pt;
		padding: 10pt;
	}
}

.image-slider h2 {
	margin-top: 80px; /*specify 'margin-top' as per your your choice*/
	font-family: 'Lato', sans-serif;
	font-size: 42px;
	font-weight: 300;
	color: #ffffff;
	text-shadow: 0px 1px 1px #d4d4d4;
	text-transform: uppercase;
	word-spacing: 10px;
	z-index: 10;
}

.image-slider p {
	font-family: 'Lato', sans-serif;
	font-size: 16px;
	font-weight: 300;
	color: #fff;
	text-shadow: 0px 1px 4px #000000;
	text-align: left;
	word-spacing: 3px;
}

#features {
	height: auto;
	padding-top: 10px;
}

.feature h1 {
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	color: #6B6B6B;
	font-weight: 400;
	line-height: 1.3em;
	font-style: normal;
	word-spacing: 1px;
	text-align: center;
	font-size: 32px;
}

.feature h4 {
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	color: #6B6B6B;
	font-weight: 400;
	line-height: 1.3em;
	font-style: normal;
	word-spacing: 1px;
	text-align: left;
	font-size: 24px;
	margin-top: 10pt;
}

.feature p {
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	color: #6B6B6B;
	font-weight: 200;
	line-height: 1.3em;
	font-style: normal;
	word-spacing: 1px;
	text-align: left;
}

.float {
	float: left;
	min-height: 220px;
}

.icon_bg {
	width: 92px;
	height: 92px;
	margin: 40px auto 20px auto;
}

.icon_bg img {
	float: left;
}

#screenshot {
	text-align: center;
}

#screens {
	margin: 0px;
}

ul#screens li {
	background: #f3f3f3;
	width: 271px;
	height: 144px;
	padding: 12px;
	margin: 6px;
	border: 1px solid #e6e6e6;
	border-radius: 4px;
	-moz-border-radius: 4px;
	-webkit-border-radius: 4px;
	position: relative;
	list-style: none;
	float: left;
}

img.screenshot {
/* 	width: 260px; */
/* 	height: 134px; */
/* 	margin-left: 42px; */
/* 	float: left; */
}

.feature {
	float:left;
}

.thumb {
	position: relative;
	overflow: hidden;
	float:left;
	margin:10pt;
}

.thumb .zoom {
	background: url(/xtend/images/videoOverlay.png) 0 0 no-repeat transparent;
	width: 80px;
	height: 80px;
	position: absolute;
	left: 140px;
	opacity: 0.0;
	top: 34px;
	outline: none;
}

.introduction {
	position: relative;
	overflow: visible;
}

.introduction .zoom {
	background: url(/xtend/images/videoOverlayBig.png) 0 0 no-repeat transparent;
	width: 140px;
	height: 140px;
	opacity: 0.4;
	outline: none;
	position: absolute;
	left: 190px;
	top: 140px;
}

@media (min-width: 1200px) {
  .introduction .zoom {
  }
  .introduction {
		margin-left:30pt;
	}
}
@media (max-width: 979px) {
  .introduction .zoom {
	left: 165px;
	top: 120px;
  }
}
@media (max-width: 767px) {
  .introduction .zoom {
	top: 220px;
  }
}

/* .thumb .zoom:hover { */
/* 	background: url(/xtend/images/videoOverlay.png) 0 -80px no-repeat transparent; */
/* } */
#team {
	padding-top: 10px;
}

a:hover .onhover-red {
	text-decoration: none;
	color: #74C0CF;
}

a.onhover-red {
	text-decoration: none;
	color: #010220;
}

ul.team_info {
	padding: 15px 0px;
	display: block;
}

ul.team_info li {
	margin-bottom: 5px;
	font-size: 12px;
	font-style: italic;
	line-height: 1.4em;
	display: block;
	background: none;
	list-style-type: none;
}

ul.team_info li a {
	font-size: 12px;
	font-style: italic;
}

ul.team_info li img {
	margin-right: 5px;
	float: left;
}

#download {
	padding: 110px 0px;
}

#download h2 {
	text-align: center;
	margin-bottom: 8px;
}

.logo_grey {
	width: 130px;
	height: 62px;
	margin: 0px auto 70px auto;
}

ul.textlist {
	text-align: center;
}

ul.textlist li {
	padding: 0px 7px;
	font-size: 16px;
	display: inline;
	background: none;
	list-style-type: none;
}

#sub_footer {
	padding: 50px 0px;
}

/* Scroll to Top Button 
-------------------------------------*/
.scrollup {
  width: 44px;
  height: 44px;
  position: fixed;
  bottom: 22px;
  right: 22px;
  display: none;
  text-indent: -9999px;
  outline: hidden;
  background: url('/xtend/images/icon_top.png') no-repeat;
}

.pricing {
	margin-bottom: 40px;
	border: 1px solid #d4d4d4;
	border-width: 1px 1px 4px 1px;
	border-top-left-radius: 5px;
	border-top-right-radius: 5px;
	-moz-border-radius-topleft: 5px;
	-moz-border-radius-topright: 5px;
	-webkit-border-top-right-radius: 5px;
	-webkit-border-top-left-radius: 5px;
	border-bottom-left-radius: 9px;
	border-bottom-right-radius: 9px;
	-moz-border-radius-bottomleft: 9px;
	-moz-border-radius-bottomright: 9px;
	-webkit-border-bottom-right-radius: 9px;
	-webkit-border-bottom-left-radius: 9px;
}

.pricing table {
	width: 100%;
	font-family: 'Lato', sans-serif;
	font-size: 12px;
	color: #c2c2c2;
	font-weight: 400;
}

.pricing thead th {
	background: #010220;
	width: 84.3%;
	padding: 13px 8%;
	font-family: 'Lato', sans-serif;
	font-size: 24px;
	color: #f4f4f4;
	text-align: center;
	text-transform: uppercase;
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
	-moz-border-radius-topleft: 4px;
	-moz-border-radius-topright: 4px;
	-webkit-border-top-right-radius: 4px;
	-webkit-border-top-left-radius: 4px;
	float: left;
}

.pricing tfoot td {
	background: #ededed;
	width: 84.3%;
	padding: 20px 8%;
	border-bottom-left-radius: 6px;
	border-bottom-right-radius: 6px;
	-moz-border-radius-bottomleft: 6px;
	-moz-border-radius-bottomright: 6px;
	-webkit-border-bottom-right-radius: 6px;
	-webkit-border-bottom-left-radius: 6px;
}

.pricing td {
	background: #fff;
	width: 84.3%;
	padding: 10px 8%;
	border-top: 1px solid #ffffff;
	border-bottom: 1px solid #d4d4d4;
	float: left;
}

tfoot td {
	text-align: center;
}

.pricing td.focus {
	background: #010220;
	width: 84.3%;
	padding: 25px 8%;
	font-family: 'Lato', sans-serif;
	font-size: 32px;
	color: #fff;
	font-weight: 400;
	text-align: center;
	border-bottom: 1px solid #d4d4d4;
}

.pricing td.focus-best {
	background: #74C0CF;
	width: 84.3%;
	padding: 25px 8%;
	font-family: 'Lato', sans-serif;
	font-size: 32px;
	color: #fff;
	font-weight: 400;
	text-align: center;
	border-bottom: 1px solid #d4d4d4;
}

.pricing td.focus span {
	font-size: 10px;
	display: block;
	margin-top: 5px;
}

.pricing td.focus-best span {
	font-size: 10px;
	display: block;
}

.pricing td h6 {
	width: 60%;
	font-family: 'Lato', sans-serif;
	font-size: 12px;
	color: #c0c2c2;
	font-weight: 400;
	float: left;
}

.pricing td p {
	width: 40%;
	text-align: right;
	float: left;
}

.inner {
	padding: 10px 0px 0px 15px;
	background-color: white;
}

.inner-footer {
	padding: 10px 0px 0px 15px;
}

.logo {
	float: left;
	width: 35px;
	margin-right: 50px;
	padding-top: 3px;
}

.btn-xlarge {
	padding: 12px 29px;
	font-size: 20px;
	font-weight: bold;
	line-height: normal;
	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	border-radius: 5px;
}

.btn-the-bizzniss-4 {
	text-shadow: 0px -1px 0px #56a2b1;
	color: #ffffff;
	background-color: #74C0CF;
	background-image: -moz-linear-gradient(top, #92deed, #56a2b1);
	background-image: -ms-linear-gradient(top, #92deed, #56a2b1);
	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#92deed),
		to(#56a2b1) );
	background-image: -webkit-linear-gradient(top, #92deed, #56a2b1);
	background-image: -o-linear-gradient(top, #92deed, #56a2b1);
	background-image: linear-gradient(top, #92deed, #56a2b1);
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#92deed',
		endColorstr='#56a2b1', GradientType=0 );
	border-color: #74C0CF #56a2b1 #56a2b1 #74C0CF;
	border-color: rgba(0, 0, 0, 0.25) rgba(0, 0, 0, 0.35)
		rgba(0, 0, 0, 0.35) rgba(0, 0, 0, 0.25);
}

.btn-the-bizzniss-4:hover,UNUSEDUNUSED.btn-the-bizzniss-4:active,UNUSEDUNUSED.btn-the-bizzniss-4.active,UNUSEDUNUSED.btn-the-bizzniss-4.disabled,.btn-the-bizzniss-4[disabled]
	{
	background-color: #56a2b1;
}

.btn-the-bizzniss-4:hover {
	color: #ffffff;
	text-shadow: 0px -1px 0px #388493;
}

.btn-the-bizzniss-4:focus {
	color: #d8ffff;
	-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px
		rgba(0, 0, 0, 0.05);
	-moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px
		rgba(0, 0, 0, 0.05);
	box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px
		rgba(0, 0, 0, 0.05);
	border-color: #74C0CF #56a2b1 #56a2b1 #74C0CF;
	border-color: rgba(0, 0, 0, 0.25) rgba(0, 0, 0, 0.35)
		rgba(0, 0, 0, 0.35) rgba(0, 0, 0, 0.25);
}

UNUSED.btn-the-bizzniss-4.active,UNUSED.btn-the-bizzniss-4:active {
	background-image: none;
	-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px
		rgba(0, 0, 0, 0.05);
	-moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px
		rgba(0, 0, 0, 0.05);
	box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px
		rgba(0, 0, 0, 0.05);
	color: #d8ffff;
}

.team {
 	background: rgba(80, 80, 90, 0.5); 
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='white', endColorstr='#EBEBEB',GradientType=0 );
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
	-webkit-box-shadow: 0 1px 3px rgba(180,256,256, .25), inset 0 2px 0 rgba(180,256,256, .1);
	-moz-box-shadow: 0 1px 3px rgba(180,256,256, .25), inset 0 2px 0 rgba(180,256,256, .1);
	box-shadow: 0 1px 3px rgba(180,256,256, .25), inset 0 2px 0 rgba(180,256,256, .1);
	padding: 20px;
	margin-bottom: 0px;
	margin-top: 10px;
	margin-left: 60px;
	position: relative;
}

.team h3 {
	font-size:24px;
	margin-top:20px;
	padding-top:0px;
	color : white;
}

@media (max-width: 979px) {
  .team h3 {
		
	}
}
@media (max-width: 767px) {
  .team h3 {
	font-size:24px;
	margin-top:8px;
	padding-top:0px;
   }
}

@media (min-width: 1200px) {
  .team {
    height: 70px;
    margin-top: 10px;
	margin-left: 80px;
  }
}
@media (max-width: 979px) {
  .team {
    height: 70px;
	padding: 10px;
	margin-top: 10px;
	margin-left: 40px;
  }
}
@media (max-width: 767px) {
  .team {
    height: 70px;
	padding: 10px;
	margin-top: 10px;
	margin-left: 10px;
	margin-right: 10px;
  }
}

.feature {
	height : 220px;
}

@media (min-width: 1200px) {
  .feature {
    height: 70px;
  }
}
@media (max-width: 979px) {
  .feature {
    height: 280px;
  }
}
@media (max-width: 767px) {
  .feature {
    height: 70px;
    margin-left: 20px;
    margin-right: 20px;
  }
}
@media (max-width: 767px) {
  .feature img {
    height: 70px;
    display: block;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 767px) {
  .feature h4 {
    text-align: center;
  }
}

@media (max-width: 767px) {
  .feature p {
    text-align: center;
  }
}

.image_left {
	float: left;
	vertical-align: center;
	margin-right: 10px;
}

@media (max-width: 767px) {
  .image_left {
     float: left;
     height: 80px; 
	 vertical-align: center;
     margin-right: 10px; 
  }
}

.newsticker {
	text-decoration:none; 
	font-style: italic; 
	font-size:18pt;
}

.newsticker li {
	text-decoration: italic;
	font-size: 24;
	list-style-type: none;
	padding:20px;
	display:none;
}

.anchor-in-div {
	position: absolute; 
	display: block;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  text-indent: -9999px;
  z-index: 1000;
}

.team :hover {
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
  -webkit-box-shadow: 0 0 8px #74C0CF;
  -moz-box-shadow: 0 0 8px #74C0CF;
  box-shadow: 0 0 8px #74C0CF;
}

#extra {
	background-color: #010211;
	padding-top:20pt;
}

#extra .inner {
	color: #fff;
	border-top: 1px solid #010211;
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	font-weight: 400;
	line-height: 1.3em;
	font-style: normal;
	word-spacing: 1px;
}

#extra h3 {
	font-weight: 400;
	border-bottom: 1px solid #fff;
	padding: 5px;
}

#footer {
	border-top: 1px solid #999;
}

#footer .inner {
	padding: 20px;
	background: #e8e8e8;
	border-top: 1px solid #fff;
}

.footer-links {
	width: 49%;
	display: inline-block;
	margin: 0;
	list-style: none;
}

.footer-links li {
	margin-top: 1.25em;
}

.footer-links a {
	color: #fff;
}

.footer-links-header {
	color: #ddd;
	padding-top: 0px;
	margin-top: 0px;
}

#nav-outline {
	max-width: 200px;
	list-style: none;
	margin:0;
}

#nav-outline ul {
	list-style: none;
}


.navbar-inner {
	border-radius: 0px;
	position: fixed;
	left: 50%;
	margin-left: -50%;
	width: 100%;
	z-index: 1030;
	background-image: none;
	background-color: rgba(01,02,11,0.4);
}

.navbar .container {
	position: relative;
}

@media (max-width: 767px) {
	.navbar-inner {
	  position: static;
	  margin-left: 0;
	}
	.navbar .container {
		position: static;
  }
}
.navbar {
	margin-bottom: 0;
	border: none;
	border-bottom: 1px solid #666;
}

.navbar .nav .active > a, .navbar .nav .active > a:hover {
	color: white;
	font-weight: bold;
	text-decoration: none;
}

.navbar .nav > li > a {
	color: white;
	font-size: 16px;
	text-decoration: none;
}

.navbar .nav > li > a:hover {
	background-color: rgba(01,02,11,0.6);
	color: white;
	font-weight: bold;
	text-decoration: none;
}

.navbar-fixed-top {
	position: static;
}

.edit-on-github {
	font-family: 'Lato', sans-serif;
}

#screenshots {
	background: #E8E8E8;
	border-top: 1px solid #CCC;
	padding-left: 20px;
	padding-right: 20px;
}

#screenshots .inner {
	padding-top: 2.5em;
	padding-bottom: 2.5em;
	border-top: 1px solid #FFF;
}

#tweet a {
	color: #fff;
	text-decoration: underline;
}

/**** Page**/
#page {
/* 	background: rgb(255, 255, 255); Old browsers */
/* 	/* IE9 SVG, needs conditional override of 'filter' to 'none' */ */
/* 	background: */
/* 		url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlYmViZWIiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); */
/* 	background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 0%, */
/* 		rgba(235, 235, 235, 1) 100% ); FF3.6+ */
/* 	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(255, */
/* 		255, 255, 1) ), color-stop(100%, rgba(235, 235, 235, 1) ) ); */
/* 	/* Chrome,Safari4+ */ */
/* 	background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 0%, */
/* 		rgba(235, 235, 235, 1) 100% ); Chrome10+,Safari5.1+ */
/* 	background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 0%, */
/* 		rgba(235, 235, 235, 1) 100% ); Opera 11.10+ */
/* 	background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 0%, */
/* 		rgba(235, 235, 235, 1) 100% ); IE10+ */
/* 	background: linear-gradient(top, rgba(255, 255, 255, 1) 0%, */
/* 		rgba(235, 235, 235, 1) 100% ); W3C */
/* 	filter: progid:DXImageTransform.Microsoft.gradient(  startColorstr='#ffffff', */
/* 		endColorstr='#ebebeb', GradientType=0 ); IE6-8 */
	border-top: 1px solid #010211;
	padding-top:50pt;
}

@media (max-width: 767px) {
	#page {
		padding-top:0;
	}
}

#page h1 {
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	color: #333333;
	font-weight: 400;
	line-height: 1.3em;
	font-style: normal;
	word-spacing: 1px;
	font-size: 32px;
}

.page-heading {
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	color: #fff;
	font-weight: 400;
	line-height: 1.3em;
	font-style: normal;
	word-spacing: 1px;
	font-size: 32px;
}

#page-heading {
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	color: #010211;
	text-align: center;
}


/*List Styles */
ul.list1 li {
	background: url(/xtend/images/bullet-checkmark.png) no-repeat 0 4px;
	padding-left: 20px;
	margin-bottom: 10px;
	display: block;
	list-style-type: none;
}

ul.list2 li {
	background: url(/xtend/images/bullet-circles.png) no-repeat 0 4px;
	padding-left: 22px;
	margin-bottom: 10px;
	display: block;
	list-style-type: none;
}

ul.list3 li {
	background: url(/xtend/images/bullet-plus.png) no-repeat 0 4px;
	padding-left: 22px;
	margin-bottom: 10px;
	display: block;
	list-style-type: none;
}

.navbar .brand {
	display: block;
	width: 90px;
	height: 34px;
	padding-top: 0;
	padding-bottom: 0;
	margin-top: 12px;
	margin-left: 10px;
	overflow: hidden;
	line-height: 600px;
	color: #010220;
	background: url(/xtend/images/logo.png) no-repeat 0 0;
}

.navbar .brand {
	position: relative;
	top: 0;
	margin-left: 0;
	font-weight: 600;
}

#intro {
	background-color: rgba(1,2,22,0.3);
	padding-top: 10px;
	color: #fff;
	text-align: center;
}

#intro h1 {
	text-transform: uppercase;
}

#intro .container {
	border-bottom: none;
	padding: 10px;
}

.navbar li {
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	color: #6B6B6B;
	font-weight: 400;
	line-height: 1.3em;
	font-style: normal;
	word-spacing: 1px;
}

.embedded-video {
	width: 460px;
	height: 259px;
	margin-top: 20px;
	-moz-border-radius: 20px;
    -webkit-border-radius: 20px;
    -khtml-border-radius: 20px;
    border-radius: 5px;
}

@media (min-width: 1200px) {
  .embedded-video {
	width : 570px;
	height : 318px;
	margin-top:20px;
  }
}
@media (max-width: 979px) {
  .embedded-video {
	width: 352px;
	height: 200px;
	margin-top: 80px;
  }
}

h2.front-title {
	margin-top: 20px;
}

@media (min-width: 1200px) {
  h2.front-title {
	margin-top:40px;
  }
}
  
@media (max-width: 979px) {
  h2.front-title {
	margin-top: 80px;
  }
}

.search-bar {
  margin-top: 24px;
  white-space: nowrap;
}

.search-bar input {
  width: 140px;
}

.search-bar img {
  width: 20px;
  margin-bottom: 10px;
}
