/*-------------------------------------------------------------------------------
 - Copyright (c) 2013, 2017 The Eclipse Scout Team, UT-Battelle, LLC., Kichwa Coders Ltd and others.
 - All rights reserved. This program and the accompanying materials
 - are made available under the terms of the Eclipse Public License v1.0
 - which accompanies this distribution, and is available at
 - http://www.eclipse.org/legal/epl-v10.html
 -
 - Contributors:
 -   Initial API and implementation and/or initial documentation: Kichwa Coders Ltd. adopted from Eclipse ICE webpage.
 -------------------------------------------------------------------------------*/


/* ==========================================================================
	#Reset
========================================================================== */
* { padding: 0; margin: 0; outline: 0; }

/* ==========================================================================
	#Base
========================================================================== */
html,
body { height: 100%; }

/* These are the default parameters for the <body></body> tags. */
body {/* background: #223660;*/ font-family: 'Open Sans', sans-serif; font-size: 17px; line-height: 1.1; color: #676767; min-width: 320px; }

a { cursor: pointer; }
/* a:hover { text-decoration: underline; } */

img { border: 0; vertical-align: middle; }

ul,
ol { list-style-position: inside; }

/* This is a custom space to add the white horizontal bars between sections */
.white-spacer { position: relative; z-index: 3; background: #fff; padding: 25px; }

/* ==========================================================================
	#Helpers
========================================================================== */
.alignleft { float: left; }
.alignright { float: right; }

.clearfix:before,
.clearfix:after { display: table; content: ' '; }
.clearfix:after { clear: both; }
.clearfix { *zoom: 1; }

/* ==========================================================================
	#Base "Wrapper" This is the container "behind" everything.
========================================================================== */
.wrapper { position: relative; z-index: 2; left: 0%; background: url(../images/datacenter.jpg) scroll 0 0 / 100% auto ;height: 100%; overflow: auto; overflow-y: scroll; -webkit-overflow-scrolling: touch; }

.radio label,
.checkbox label { padding-left: 0; }
.custom-checkbox input { opacity: 0; filter: alpha(opacity=0); position: absolute; }
.custom-checkbox-fake { float: left; width: 21px; height: 21px; margin-right: 10px; background: url(images/sprite.png) -441px -79px no-repeat; }
.custom-input-checked .custom-checkbox-fake { background: url(images/sprite.png) -466px -79px no-repeat; }
.custom-input-disabled .custom-checkbox-fake { opacity: .5; filter: alpha(opacity=50); }

/* ==========================================================================
	#Icons
========================================================================== */
.ico { display: inline-block; background: url(images/sprite.png) no-repeat; vertical-align: middle; }

.ico-download { width: 60px; height: 60px; background-position: -60px -170px; }
.ico-circle-graph { width: 69px; height: 75px; background-position: -103px 0px; }
.ico-contacts-fax { width: 16px; height: 16px; margin-top: -3px; background-position: -442px -44px; }
.ico-contacts-phone { width: 15px; height: 15px; margin-top: -3px; background-position: -460px -44px; }
.ico-graph { width: 54px; height: 75px; background-position: -71px -93px; }
.ico-hand { width: 66px; height: 75px; background-position: -174px 0px; }
.ico-list { width: 58px; height: 60px; background-position: 0px -170px; }
.ico-monitor-small { width: 66px; height: 75px; background-position: -174px -77px; }
.ico-monitor { width: 66px; height: 60px; background-position: -122px -170px; }
.ico-mouse { width: 21px; height: 91px; background-position: 0px 0px; }
.ico-note { width: 69px; height: 75px; background-position: 0px -93px; }
.ico-play { width: 78px; height: 78px; margin-bottom: 11px; background-position: -23px 0px; }

/* ==========================================================================
	#Buttons
========================================================================== */
.btn { display: inline-block; }

.btn-default { color: #fff; background-color: transparent; margin: 5px; margin-right: 5px; border: 1px solid #fff; border-radius: 5px; font-size: 19px; font-weight: 500; }
.btn-default:hover { background: #fff; border-color: #fff; }

/* ==========================================================================
	#Header
========================================================================== */
/* Default navbar settings like background color, branding image, etc. */


/********* COMMENT FOR ECLIPSE CON***************************/
.navbar { z-index: 3; position: absolute; top: 0; right: 17px; min-height: 0; width: 99%; margin-bottom: 0; padding: 0.2px 0; border: none; border-radius: 0; }
/********************************************/

/***************** REMOVE AFTER ECLIPSE CON*****************
div.eclipse-con{
	padding: 5px;
	text-align: center;
}
.navbar { z-index: 3; position: absolute; right: 17px;}
***********************************************************/

.navbar-default { background-color: white; border-color: #223660; }
.navbar-header { overflow: hidden; }
.navbar-brand { overflow: hidden; float: left; height: 60px; width: 256px; background: url("../images/ice-logo_256x60.png") 0 0 no-repeat; text-indent: 150%; white-space: nowrap; }

.navbar>.container .navbar-brand { margin-top: 0px; margin-left: 0; }

/* Link colors for navbar elements. */
.navbar-nav { float: right; }
.navbar-default .navbar-nav  li a { color: #2a1f1a; }
.navbar-default .navbar-nav  li a:hover { color: #faa635; }

/* woud be nice to have dark transparent menu background when menu is displayed over header image, and white background otherwise
.nav .dropdown:hover { background-color: rgba(96,96,96,0.8); display: block; border-top-left-radius: 5px; border-top-right-radius: 5px; }
*/
.nav .affix-top & .dropdown-menu { background-color: rgba(255, 255, 255, 0.75);}
.nav .affix & .dropdown-menu { background-color: rgba(255, 255, 255);}

.nav .dropdown:hover { display: block; border-radius: 5px; }
.nav .dropdown:hover a { color: #0184a3; }
.nav .dropdown:hover ul { color: #0184a3; display: block; border: 1px; }

.nav .dropdown li a:hover { color: #faa635; }
.nav .dropdown li a { color: #faa635; }
.nav .dropdown ul a { color: #fff; background-color: #fff; }
.nav .dropdown ul a:hover { color: #faa635; }

.navbar-nav > li > .dropdown-menu { border-radius: 4px; }

.navbar.affix { position: fixed; background: #fff; }
.navbar.affix .navbar-nav > li > a { color: #0184a3; }
.navbar.affix .navbar-nav > li > a:hover,
.navbar.affix .navbar-nav > li > a:focus { color: #faa635; }
.navbar.affix .navbar-nav .dropdown-menu { border: 0; }

.nav-mobile { position: fixed; top: 0; right: 0; width: 70%; height: 100%; overflow: auto; background: #faa635; z-index: 1; display: none; }
.nav-mobile ul { list-style: none outside none; display: block; margin-bottom: 0; }
.nav-mobile a { display: block; color: #fff; padding: 10px; }
.nav-mobile a:hover { text-decoration: none; background: #e39731; }
.nav-mobile ul ul a { padding: 10px 15px; }
.nav-mobile > ul > li > a { font-size: 20px; }

/* ==========================================================================
	#Intro - That is, the picture and text in the middle!
========================================================================== */
.intro { position: relative; z-index: 1; min-height: 626px; }
.intro-image { background: #000;position: absolute; top: 80px; left: 0; min-width: 100%; min-height: 100%; }
.intro .container { position: absolute; top: 299px; width: 100%; z-index: 2; text-align: center; }
.intro-image img { height: 626px; width: 100%; }

/* This is the style of the main, white "Eclipse ICE" text */
.intro-content h1 { margin: 33px 0 0; font-family: 'Dax-Regular', sans-serif; font-size: 55px; color: #fff; }
/* This is the style of the subtitle */
.intro-content p { margin-bottom: 40px; font-size: 24px; color: #B0F7D5; }
.intro-actions a { display: inline-block; margin-bottom: 61px; font-size: 16px; color: #fff; text-decoration: none; }

.fsr-container { overflow: hidden; background-repeat: no-repeat; background-size: cover; }
.fsr-image { position: absolute; }
.fsr-hidden { display: none; }

/* ==========================================================================
	#Section What is ICE?
========================================================================== */
.section-whatis { padding: 80px 0 62px; }
.section-whatis .section-head h3 {margin-bottom: 33px; font-family: 'Dax-Regular', sans-serif; font-size: 45px; color: #fff; text-align: center; }
.section-whatis .section-head h3 span { color: #fff; font-weight: bold; }
.section-whatis .section-head p { color: #fff; font-weight: bold; text-align: center}
.whatis { text-align: center; float: left; width: 20%; padding: 0 2%; color: #585858; }
.whatis-head { cursor: pointer; }
.whatis-title { margin: 14px 0; font-size: 25px; line-height: 0.92; }
.whatis-head:hover  { color: #0087b1; }
.section-whatis .ico-wrapper { display: inline-block; width: 99px; height: 99px; padding-top: 12px; border-radius: 9px; background: #f9a535; text-align: center; }
.whatis p { line-height: 1.24; font-size: 16px; text-align: center }

.whatis-entries { position: relative; overflow: hidden; }
.whatis-entry { position: absolute; left:0; top: 0; min-height: 82px; width:100%; padding: 10px 35px 0; display: none;  zoom: 1; }
.whatis-entry-visible { position: relative; display: block; z-index: 2 }
.whatis.current h5 { color: #03556f; }

.whatis .whatis-entry { display: none; }

/* ==========================================================================
	#Section Define Problems
========================================================================== */
.section-with-image { position: relative; padding: 50px 0 50px; background: #eee;}
.section-with-image h2 { margin: -5px 0 1px; font-family: 'Dax-Regular', sans-serif; font-size: 40px; color: #585858; }
.section-with-image h4 { margin: 14px 0 14px 0; font-size: 21px; color: #fff; font-weight: 800; }
.section-with-image p { font-size: 21px; color: #474747; line-height: 1.2; }
.section-with-image .checkbox { margin-top: 38px; }
.section-with-image label { color: #474747; }

.section-with-image-actions { margin-top: 26px; }
.section-with-image-actions .btn-default { min-width: 287px; margin-bottom: 10px; padding: 7px 22px 9px 22px; border-width: 2px; }

/* ==========================================================================
	#Section Services
========================================================================== */
.section-services { padding: 45px 0 39px; background: #faa635; }
.section-services .item { padding-top: 5px; text-align: center; }
/* .section-services .item ~ .item { background: url(images/services-bg.png) 0 0 no-repeat; } */
.section-services .item-ico-wrapper { display: inline-block; width: 99px; height: 99px; padding-top: 19px; background: #0087b1; border-radius: 9px; text-align: center; }
.section-services a { display: block; text-decoration: none; }
.section-services a:hover strong { color: #0087b1; }
.section-services a:hover p { color: #0087b1; }
.section-services a strong { display: block; margin: 10px 0 0; font-family: 'Dax-Regular', sans-serif; font-size: 37px; color: #585858; text-decoration: none; }
.section-services p { font-size: 23px; color: #585858; }

/* ==========================================================================
	#Section Demo
========================================================================== */
.section-demo { padding: 67px 0 46px; background: #0184a3 url(images/section-demo-s.png) 0 bottom no-repeat; color: #fff; }
.section-demo-content h2 { margin: -5px 0 1px; font-family: 'Dax-Regular', sans-serif; font-size: 45px; font-weight: 800; }
/* .section-demo-content h4 { margin: 0 0 14px; font-family: 'Dax-Regular', sans-serif; font-size: 38px; } */
.section-demo-content h4 { margin: 14px 0 14px 0; font-size: 21px; font-weight: 800; }
.section-demo-content p { margin-bottom: 17px; font-size: 21px; }
.section-demo-list p { margin-bottom: 12px; font-size: 19px; }
.section-demo-list ul { list-style: none outside none; }
.section-demo-list li ~ li { margin-top: 5px; }
.section-demo-actions { margin-top: 17px; }
.section-demo-actions .btn-default { padding: 7px 22px 9px 22px; border-width: 2px; }

/* .section-demo-actions a { width: 600 } */
.demo-btn { width: 200px }

/* ==========================================================================
	#Section Tutorials
========================================================================== */
.section-tutorials { padding: 58px 0 52px; background: #5d5d5d; color: #fff; }
.section-tutorials-content h2 { margin: -5px 0 1px; font-family: 'Dax-Regular', sans-serif; font-size: 45px; font-weight: 800; }
/* .section-tutorials-content h4 { margin: 0 0 14px; font-family: 'Dax-Regular', sans-serif; font-size: 38px; } */
.section-tutorials-content h4 { margin: 14px 0 14px 0; font-size: 21px; color: #fff; font-weight: 800; }
.section-tutorials-content p { margin-bottom: 17px; font-size: 21px; }
.section-tutorials-list { list-style: none inside none; }
.section-tutorials-list li ~ li { margin-top: 10px; }
.section-tutorials-list a { display: inline-block; background: url(images/ico-tutorials.png) 0 2px no-repeat; color: #fff; line-height: 1.2; text-decoration: none; }
.section-tutorials-list a span { display: inline-block; margin-left: 24px; }
.section-tutorials-list a:hover { color: #faa635; }

.section-tutorials-actions { margin-top: 23px; }
.section-tutorials-actions .btn-default { padding: 7px 22px 9px 22px; border-width: 2px; }

/* ==========================================================================
	#Section Features
========================================================================== */
.section-features { padding: 34px 0 58px; }
.section-features .section-head { text-align: center; }
.section-features .section-head h3 { display: inline-block; margin-bottom: 50px; padding-bottom: 21px; border-bottom: 1px solid #e7e7e7; font-family: 'Dax-Regular', sans-serif; font-size: 45px; color: #5d5d5d; text-align: center; }
.section-features .section-head h3 span { color: #0082a1; font-weight: bold; }
.feature { border-bottom: 1px solid #e7e7e7; font-size: 18px; }
.feature ~ .feature { margin-top: 39px; }
.feature h4 { margin: 5px 0 11px; font-size: 36px; color: #0082a1; }
.feature p { line-height: 1.28em; }

/* ==========================================================================
	#Section Testimonials
========================================================================== */
.section-testimonials { padding: 27px 0 56px; background: #f2f2f2;  float: center;}
.section-testimonials .section-head h3 { margin-bottom: 36px; font-family: 'Dax-Regular', sans-serif; font-size: 45px; color: #5d5d5d; text-align: center; }
.section-testimonials .section-head h3 span { color: #0082a1; font-weight: bold; }

.list-partners { overflow: hidden; margin-bottom: 47px; list-style: none outside none; }
.list-partners li { float: left; }
.list-partners li  ~ li { margin-left: 45px; }

.testimonial blockquote { position: relative; min-height: 220px; margin-bottom: 29px; padding: 64px 35px 25px; background: #fff url(images/blockquote.png) 36px 19px no-repeat; border: 1px solid #dedede; border-radius: 2px; font-size: 19px; color: #989898; font-family: "Open Sans Italic", sans-serif; }
.testimonial blockquote a { position: relative; bottom: 0; }
.testimonial .blockquote-triangle { position: absolute; left: 57px; bottom: -20px; width: 21px; height: 20px; background: url(images/blockquote-triangle.png) 0 0 no-repeat; }

.author { overflow: hidden; }
.author-image,
.author-content { float: left; }

.author-image { width: 56px; height: 56px; margin-right: 10px; }
.author-image img { border-radius: 50%;}
.author-name { font-size: 24px; color: #0082a1; }
.author-position { font-size: 16px; color: #888; }

/* ==========================================================================
	#Section Contact
========================================================================== */
.section-contact { padding: 10px 0 30px; background: #474747; font-family: 'Dax-Regular', sans-serif; font-size: 45px; color: #fff; text-align: center; }
.contact a { font-size: 24px; font-family: 'Dax-Regular', sans-serif; font-size: 18px; color: #fff; text-align: center;}
.form-contact .form-head { margin-bottom: 20px; text-align: center; }
.form-contact h3 { margin-bottom: 3px; font-family: 'Dax-Regular', sans-serif; font-size: 45px; color: #fff; }
.form-contact h3 span { color: #fe9915; font-weight: bold; }
.form-contact p { font-size: 18px; color: #fff; }

.form-contact .has-error input { border-width: 3px; }

.form-contact .field,
.form-contact .textarea { margin-top: 11px; padding-left: 40px; font-size: 15px; }
.form-contact .form-control { height: 45px; }
.form-contact .textarea { height: 84px; resize: none; }

#fname { background: #fff url(images/ico-user.png) 14px 14px no-repeat; }
#phone { background: #fff url(images/ico-phone.png) 14px 14px no-repeat; }
#lname { background: #fff url(images/ico-user.png) 14px 14px no-repeat; }
#email { background: #fff url(images/ico-mail.png) 12px 14px no-repeat; }
#message { background: #fff url(images/ico-pen.png) 12px 7px no-repeat; }

.form-contact .checkbox { margin-top: 23px; }
.form-label { font-size: 19px; color: #fff; }
.form-label span { color: #ffae44; text-transform: uppercase; }

.form-contact .form-actions { margin-top: 21px; text-align: center; }
.form-contact .btn-default { padding: 7px 22px 9px 22px; min-width: 200px; border-width: 2px; float: right; }
.form-contact .btn-default:hover { background: #e49326; border-color: #e49326; }

/* ==========================================================================
	#Footer
========================================================================== */
.footer { padding: 10px 0 1px; background: grey; }
.footer h5 { margin-bottom: 20px; font-size: 20px; color: #B0F7D5; }
.footer-nav ul { list-style: none outside none; }
.footer-nav li ~ li { margin-top: 2px; }
.footer-nav a { font-size: 16px; color: #B0F7D5; text-decoration: none; }
.footer-nav a:hover { color: #ffba60; }

.contacts { font-size: 15px; color: #fff; }
.contacts p { line-height: 1.3; }
.contacts .phone { margin-top: 21px; font-size: 18px; line-height: 1.55; }
.contacts .phone ~ .phone { margin: 0; }

.footer-socials ul { overflow: hidden; list-style: none outside none; }
.footer-socials li { float: left; }
.footer-socials li ~ li { margin-left: 2px; }
.social-label { display: block; margin: 10px 0 18px; font-size: 20px; color: #fff; }

.link-facebok,
.link-twitter,
.link-blog { overflow: hidden; display: block; width: 53px; height: 53px; background: url(images/sprite.png) no-repeat; border: 2px solid #fff; border-radius: 5px; text-indent: 100%; white-space: nowrap; }
.link-facebok { background-position: -284px -82px; }
.link-twitter { background-position: -325px -85px; }
.link-blog { background-position: -246px -81px; }
.link-facebok:hover,
.link-twitter:hover,
.link-blog:hover  { background-color: #fe9915; border-color: #fe9915; }

/* font awesome chars see http://astronautweb.co/snippet/font-awesome/ */
.footer a { color:#B0F7D5; vertical-align: middle; }
.lnk-footer { padding-left: 10px; padding-right: 10px; font-size:16px; color: #B0F7D5;}
.btn-social { padding-left: 5px; font-size:30px; }
.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.fa-twitter-square:before{content:"\f081"; color: #fff;}
.fa-rss-square:before{content:"\f143 "; color: #fff;}
.fa-google-plus-square:before{content:"\f0d4"; color: #fff;}
.fa-facebook-square:before{content:"\f082"; color: #fff;}
.fa-youtube-square:before{content:"\f166"; color: #fff;}

.percentage-content { padding-top: 25px; }
.footer-toggler { display: none; }

.mfp-iframe-holder { padding: 0 70px; }
.mfp-iframe-holder .mfp-content { max-width: 1400px; }

@media (max-width: 1200px) {
	.benefit-entry { padding-right: 13px; padding-left: 13px; }
	.section-testimonials .section-head h3 { font-size: 43px; }
	.list-partners li ~ li { margin-left:20px; }
	/* .testimonial blockquote { min-height: 201px; } */
	.contacts .phone { font-size: 16px; }
	.footer h5 { font-size: 17px; }
}

@media (max-width: 992px) {
	.benefit-entry { padding-right: 0; padding-left: 0; }
	/* .testimonial blockquote { min-height: 262px; } */

	.list-partners { text-align: center; }
	.list-partners li { float: none; display: inline-block; padding: 10px 0; }
}


@media (min-width: 768px) and (max-width: 1200px) {
	.footer-socials li { float: none; margin-bottom: 5px; }
	.footer-socials li ~ li { margin-left: 0; }
}

@media (min-width: 768px) and (max-width: 1100px) {
	.dropdown:last-child .dropdown-menu { left: -70px !important; }
}

@media (max-width: 767px) {

    #cboxTitle { visibility: hidden; }

    .demo-btn-mobile { visibility: hidden; }

	.nav-mobile { display: block; }

	.is-affixed .nav-mobile > ul { padding-top: 71px; }
	/* .navbar { width: 97%; } there must be a better solution ... */
	.navbar.affix { left: 0 !important; }

	.mfp-iframe-holder { padding: 0 20px 0 5px; }

	.header { background: transparent; }
	.navbar-header { padding-left: 15px; }
	.navbar-brand { width: 256px; height: 42px; margin-top: 10px; margin-left: 15px !important; background: url("images/eclipse_scout_complet_256_42.png");}

	.navbar-toggle { float: right; margin: 5px 10px 0 0; border: 2px; }
	.navbar-toggle .icon-bar { height: 3px; }

	.navbar-collapse { background: #fff; }
	.navbar-nav { float: none; }

	.intro { min-height: 530px !important; }
	.intro .container { top: 100px; }
	.intro-content h1 { font-size: 30px; }
	.intro-content p { font-size: 18px; margin-bottom: 60px; }
	.intro-actions a { margin-bottom: 75px; }

	.section-demo-image,
	.section-with-image-image,
	.section-tutorials-image { text-align: center; }
	.section-download-image { padding-top: 25px; }
	.section-demo-image img,
	.section-download-image img,
	.section-tutorials-image img { display: inline-block; }

	.benefit { width: auto; float: none; padding: 10px 25px; }
	.section-benefits { padding-bottom: 20px; }
	.benefit > .benefit-entry { display: block; }
	.benefit-entries { display: none !important; }

	.feature-image { padding-bottom: 15px; text-align: center; }
	.feature-image img { display: inline-block; }

	.list-partners li:nth-child(odd) { margin-left: 0; }

	.testimonial blockquote { min-height: 0; }
	.section-testimonials .testimonial { padding-bottom: 20px; }
	.section-testimonials { padding-bottom: 20px }

	.footer ul { padding-bottom: 20px; }

	.footer-bar { padding: 10px; }
	.footer-bar-logo { float: left; display: block; }

	.footer { padding-left: 50px; }
}

@font-face {
font-family: 'Glyphicons Halflings';
src: url('../fonts/glyphicons-halflings-regular.eot');
src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');
}

span.glyphicon-search, span.glyphicon-ok, span.glyphicon-download-alt, span.glyphicon-folder-open, span.glyphicon-circle-exclamation-mark, span.ion-bug, span.ion-ios-people {
    font-size: 6.2em;
}

span.glyphicon-search, span.glyphicon-ok, span.glyphicon-download-alt, span.glyphicon-folder-open, span.glyphicon-circle-exclamation-mark{
	font-size: 5.2em;
	display:block;max-width:100%;height:auto
}

div.link_icons{
	text-align: right;
	color: white;
	font-size: 70%;
	padding: 1%;
}
