@CHARSET "UTF-8";

/* For testing. Duped by Eclipse.org visual.css file. Comment out for production */
/*html {
	font: 12px/16px Arial, sans-serif;
}*/

a img {
  border: none;
}

blockquote:before, blockquote:after, q:before, q:after {
  content: "";
}

blockquote, q {
  quotes: "" "";
}

/* Inline-block cross-browser */
.dib {
  display: inline-block;
  vertical-align: top;
  *display: inline;
  *zoom: 1;
}

.db {
  display: block !important;
}

/* GRID */
.line, .lastUnit {
  overflow: hidden;
  *overflow: visible;
  *zoom: 1;
}

.unit {
  float: left;
}

.unitRight {
  float: right;
}

.size1of1 {
  float: none;
}

.size1of2 {
  width: 50%;
}

.size1of3 {
  width: 33.33333%;
}

.size2of3 {
  width: 66.66666%;
}

.size1of4 {
  width: 25%;
}

.size3of4 {
  width: 75%;
}

.size1of5 {
  width: 20%;
}

.size2of5 {
  width: 40%;
}

.size3of5 {
  width: 60%;
}

.size4of5 {
  width: 80%;
}

.lastUnit {
  float: none;
  width: auto;
  _position: relative;
  _left: -3px;
  _margin-right: -3px;
}

.unit .gutter {
  padding-right: 20px;
}

/* Shorter clearfix 'hack': http://nicolasgallagher.com/micro-clearfix-hack/ */
/* For modern browsers */
.cf:before,
.cf:after {
  content: "";
  display: table;
}

.cf:after {
  clear: both;
}

/* For IE 6/7 (trigger hasLayout) */
.cf {
  zoom: 1;
}

/* spacing helpers
p,m = padding,margin
a,t,r,b,l,h,v = all,top,right,bottom,left,horizontal,vertical
s,m,l,n = small(5px),medium(10px),large(20px),none(0px)
*/

.ptn, .pvn, .pan {
  padding-top: 0px !important
}

.pts, .pvs, .pas {
  padding-top: 5px !important
}

.ptm, .pvm, .pam {
  padding-top: 10px !important
}

.ptl, .pvl, .pal {
  padding-top: 20px !important
}

.prn, .phn, .pan {
  padding-right: 0px !important
}

.prs, .phs, .pas {
  padding-right: 5px !important
}

.prm, .phm, .pam {
  padding-right: 10px !important
}

.prl, .phl, .pal {
  padding-right: 20px !important
}

.pbn, .pvn, .pan {
  padding-bottom: 0px !important
}

.pbs, .pvs, .pas {
  padding-bottom: 5px !important
}

.pbm, .pvm, .pam {
  padding-bottom: 10px !important
}

.pbl, .pvl, .pal {
  padding-bottom: 20px !important
}

.pln, .phn, .pan {
  padding-left: 0px !important
}

.pls, .phs, .pas {
  padding-left: 5px !important
}

.plm, .phm, .pam {
  padding-left: 10px !important
}

.pll, .phl, .pal {
  padding-left: 20px !important
}

.mtn, .mvn, .man {
  margin-top: 0px !important
}

.mts, .mvs, .mas {
  margin-top: 5px !important
}

.mtm, .mvm, .mam {
  margin-top: 10px !important
}

.mtl, .mvl, .mal {
  margin-top: 20px !important
}

.mrn, .mhn, .man {
  margin-right: 0px !important
}

.mrs, .mhs, .mas {
  margin-right: 5px !important
}

.mrm, .mhm, .mam {
  margin-right: 10px !important
}

.mrl, .mhl, .mal {
  margin-right: 20px !important
}

.mbn, .mvn, .man {
  margin-bottom: 0px !important
}

.mbs, .mvs, .mas {
  margin-bottom: 5px !important
}

.mbm, .mvm, .mam {
  margin-bottom: 10px !important
}

.mbl, .mvl, .mal {
  margin-bottom: 20px !important
}

.mln, .mhn, .man {
  margin-left: 0px !important
}

.mls, .mhs, .mas {
  margin-left: 5px !important
}

.mlm, .mhm, .mam {
  margin-left: 10px !important
}

.mll, .mhl, .mal {
  margin-left: 20px !important
}

#novawrapper {
  min-height: 100%;
  width: 980px;
  margin: 0 auto;
}

/* Hide the standard banner */
#novaContent {
  background: white !important;
  padding-top: 0 !important;
}

.lyo-header {
  background: url("images/bluealum.png");
  color: white;
  padding: 10px 0 12px;
}

.logo-image {
  width: 130px;
  height: 111px;
  background: transparent url("images/logo-oslc-lyo.png") no-repeat 0 0;
}

.logo-text {
  margin-left: 5px;
  color: white;
  font-family: sans-serif;
}

.logo-top {
  margin-top: 25px;
  font-size: 30px;
  text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.3);
  font-weight: bold;
  line-height: 36px;
}

.logo-bottom {
  font-size: 16px;
  position: relative;
  left: 1px;
}

.oslc-main-content {
  background-color: white;
}

.oslc-introtext {
  font-size: 1.2em;
  line-height: 1.3;
  color: #555;
}

.h2, .h3 {
  font-weight: bold;
  font-family: sans-serif;
  border: none;
}

.h2 {
  color: #9AA2AD;
  font-size: 2em;
  padding: 0;
  margin: 0.5em 0;
}

.h3 {
  font-size: 1em;
  margin-top: 1em;
  margin-bottom: 0;
  color: #9c1d1d;
}

.oslc-sidebar .h3 {
  color: #9AA2AD;
  margin-bottom: 0;
  padding-bottom: 2px;
  border-bottom: 1px solid #ddd;
}

.nobullets {
  margin-left: 0;
  padding-left: 0;
  list-style-type: none;
}

.nobullets li + li {
  margin-top: 10px;
}

.module {
  margin-bottom: 3em;
}

#novaContent {
  background: url("images/backgroundMain.png") no-repeat;
  padding-top: 210px;
}

#midcolumn {
  width: 640px;
  padding: 0 10px 10px 10px;
}

#rightcolumn {
  width: 260px;
}

h3 {
  clear: both;
}

h7 {
  font-weight: bold;
  padding: 5px;
}

a strong {
  text-decoration: underline;
}

.button {
  display: inline-block;
  vertical-align: middle;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
  color: white;
  font-weight: bold;
  font-size: 1em;
  line-height: 2em;
  background-color: #5E85BA;
  padding: 0 0.65em;
  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.35)), to(rgba(255, 255, 255, 0))); /* Saf4+, Chrome */
  background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0)); /* Chrome 10+, Saf5.1+ */
  background-image: -moz-linear-gradient(top, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0)); /* FF3.6 */
  background-image: -ms-linear-gradient(top, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0)); /* IE10 */
  background-image: -o-linear-gradient(top, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0)); /* Opera 11.10+ */
  background-image: linear-gradient(top, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0));
  -moz-border-radius: 4px; /* FF1-3.6 */
  -webkit-border-radius: 4px; /* Saf3-4, iOS 1-3.2, Android <1.6 */
  border-radius: 4px; /* Opera 10.5, IE9, Saf5, Chrome, FF4, iOS 4, Android 2.1+ */
  border: 1px solid #777;
  -webkit-background-clip: padding-box;
  /*  Consider bumping up this opacity...  */
  -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, 0.25) inset, 0 1px 2px rgba(0, 0, 0, 0.1);
  -moz-box-shadow: 0 0 1px rgba(255, 255, 255, 0.25) inset, 0 1px 2px rgba(0, 0, 0, 0.1);
  box-shadow: 0 0 1px rgba(255, 255, 255, 0.25) inset, 0 1px 2px rgba(0, 0, 0, 0.1);
  text-shadow: 0px -1px 1px rgba(0, 0, 0, 0.33);
}

/* http://stairwellblog.com/2009/10/taming-firefoxs-button-element/ */
.button::-moz-focus-inner {
  padding: 0;
  border: 0;
}

/* So, Firefox makes it impossible via browser style sheet to reset line height on inputs.
	http://www.cssnewbie.com/input-button-line-height-bug/
   So, for those, I'm using padding instead.
 */
[type="submit"].button {
  padding-top: .5em;
  padding-bottom: .65em;
  line-height: 1;
}

.button em {
  font-size: 14px;
}

/* Re-do color for links */
.button:visited {
  color: white;
}

.button:hover,
.button:focus {
  background-color: #82A0C9;
  text-decoration: none;
}

.button:active {
  -moz-box-shadow: inset 0px 1px 8px rgba(0, 0, 0, 0.7); /* FF3.5+ */
  -webkit-box-shadow: inset 0px 1px 8px rgba(0, 0, 0, 0.7); /* Saf3.0+, Chrome */
  box-shadow: inset 0px 1px 8px rgba(0, 0, 0, 0.7); /* Opera 10.5, IE9, Chrome 10+ */
}

.button[disabled],
.button.disabled {
  cursor: default;
  cursor: not-allowed;
  opacity: .55; /* Opacity is easier than defining colors for everything */
  background-image: none; /* Flatten the gradient */
  /* Remove the bevel */
  -moz-box-shadow: none; /* FF3.5+ */
  -webkit-box-shadow: none; /* Saf3.0+, Chrome */
  box-shadow: none; /* Opera 10.5, IE9, Chrome 10+ */
}

/* @group Button extensions */

/* @group Tiny button */
.button.tiny-button,
.button.button-tiny {
  font-size: 85%;
}

/* @end */

/* @group Hero button */
.button.hero {
  font-size: 130%;
}

/* @end */

/* @group Less colorful buttons */

.button.alt {
  border-color: #555;
  color: #555;
  background-color: #f2f2f2;
  text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.33);
}

.button.alt:hover {
  background-color: #fafafa;
}

.button.nw {
  border-color: #444;
  color: #444;
  background-color: #EEE;
  text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.33);
}

.button.nw:hover {
  background-color: white;
}

/* @end	*/

/* @group Negative action buttons */

.button.neg {
  background-color: #BA5E5E;
}

.button.neg:hover {
  background-color: #C98282;
  -moz-box-shadow: 0 0 1px hsla(0, 100%, 1%, 0.61);
  -webkit-box-shadow: 0 0 1px hsla(0, 100%, 1%, 0.61);
  box-shadow: 0 0 1px hsla(0, 100%, 1%, 0.61);
}

/* @end	*/

/*	@group Buttons for Forum Table headings	*/
.tableHeadingButton {
  border-color: #404040;
  -moz-box-shadow: 0 1px 0px rgba(255, 255, 255, 0.20);
  -webkit-box-shadow: 0 1px 0px rgba(255, 255, 255, 0.20);
  box-shadow: 0 1px 0px rgba(255, 255, 255, 0.20);
  background-color: #3F5169;
}

.tableHeadingButton:hover,
.tableHeadingButton:focus {
  background-color: #4D6380
}

.tableHeadingButton:active {
  -moz-box-shadow: 0 1px 0px rgba(255, 255, 255, 0.20),
  inset 0px 1px 8px rgba(0, 0, 0, 0.7);
  -webkit-box-shadow: 0 1px 0px rgba(255, 255, 255, 0.20),
  inset 0px 1px 8px rgba(0, 0, 0, 0.7);
  box-shadow: 0 1px 0px rgba(255, 255, 255, 0.20),
  inset 0px 1px 8px rgba(0, 0, 0, 0.7);
}

/*	@end	*/

.button.pm {
  margin-left: 5px;
}

/*	@group Icons */
.button:before {
  float: left;
  width: 1em;
  font-size: 1.4em;
  text-align: center;
  background-color: hsla(0, 0%, 10%, 0.2);
  margin: 0 .5em 0 -.5em;
  padding: 0 .3em;
  -moz-border-radius: 3px 0 0 3px; /* FF1-3.6 */
  -webkit-border-radius: 3px 0 0 3px; /* Saf3-4, iOS 1-3.2, Android <1.6 */
  border-radius: 3px 0 0 3px; /* Opera 10.5, IE9, Saf5, Chrome, FF4, iOS 4, Android 2.1+ */
  -webkit-box-shadow: 1px 0 0 rgba(0, 0, 0, 0.5), 2px 0 0 rgba(255, 255, 255, 0.2);
  -moz-box-shadow: 1px 0 0 rgba(0, 0, 0, 0.5), 2px 0 0 rgba(255, 255, 255, 0.2);
  box-shadow: 1px 0 0 rgba(0, 0, 0, 0.5), 2px 0 0 rgba(255, 255, 255, 0.2);

}

/* These look kind of crappy bold on Windows */
.ie8 .button:before,
.ie7 .button:before {
  font-weight: normal;
}

.download:before {
  content: "\21E9";
}

.checkmark:before {
  content: "\2714";
}

.source-control:before {
  content: "\21C4";
  font-weight: normal;
}

.write:before {
  content: "\271A";
}

.edit:before {
  content: "\270E";
}

.delete:before {
  content: "\2718";
}

.quote:before {
  /*content: "\201C";*/
  content: "\275D";
  font-weight: normal;
}

.split:before {
  /*content: "\2016";*/
  content: "\2702";
}

.merge:before {
  content: "\2211";
}

.move:before {
  content: "\27A5";
}

.rss-feed {
  background-color: #E88C30;
}

.rss-feed:hover,
.rss-feed:focus {
  background-color: #EDA65E;
}

.rss-feed:before {
  content: '\0000a0'; /* Escaped unicode for "non-breaking space" */
  background-image: url('/images/rss_white.png');
  background-repeat: no-repeat;
  background-position: 4px 4px;
  padding: 0 .25em;
}

/*	@end	*/

/* @end */

#novaContent {
  background: url("images/backgroundMain.png") no-repeat white;
  padding-top: 170px;
}

#introText p.left {
  width: 48%;
  float: left;
}

#introText p.right {
  width: 48%;
  float: right;
}

#feature_1 {
  float: left;
  width: 30%;
  margin-right: 3%;
}

#feature_2 {
  float: left;
  width: 30%;
  margin-right: 3%
}

#feature_3 {
  float: left;
  width: 30%;
}

#feature_4 {
  clear: both;
  float: left;
  width: 63%;
  margin-right: 3%;
}

#feature_more {
  float: left;
  width: 30%;
}

#bigbuttons {
  position: relative;
  left: 420px;
  top: -170px;
}

#bigbuttons h3 {
  visibility: hidden;
}

#bigbuttons a {
}

#bigbuttons ul li {
  display: block;
  list-style-type: none;
  background-color: red;
  padding: 0;
  margin: 0;
}

#bigbuttons a:hover {
  text-decoration: none;
}

#bigbuttons a {
  display: block;
  height: 77px;
  width: 250px;
  padding: 0;
  margin: 20px;
  text-indent: -9000px;
  position: absolute;
}

#buttonDownload {
  background: transparent url("images/buttonDownload.png") no-repeat 0 0;
  top: 0px;
  left: 0px;
}

#buttonDownload:hover {
  background: transparent url("images/buttonDownload_sel.png") no-repeat 0 0;
}

#buttonDocumentation {
  background: transparent url("images/buttonDocumentation.png") no-repeat 0 0;
  top: 87px;
  left: 0px;
}

#buttonDocumentation:hover {
  background: transparent url("images/buttonDocumentation_sel.png") no-repeat 0 0;
}

#buttonSupport {
  background: transparent url("images/buttonSupport.png") no-repeat 0 0;
  top: 0px;
  left: 280px;
}

#buttonSupport:hover {
  background: transparent url("images/buttonSupport_sel.png") no-repeat 0 0;
}

#buttonInvolved {
  background: transparent url("images/buttonInvolved.png") no-repeat 0 0;
  top: 87px;
  left: 280px;
}

#buttonInvolved:hover {
  background: transparent url("images/buttonInvolved_sel.png") no-repeat 0 0;
}

#bigbuttons a * {
  visibility: hidden;
}

#headlines {
}

#headlines ul li {
  margin: 0 0;
  list-style-type: none;
  list-style-image: none;
}

#headlines div.title {
  display: inline;
  margin-right: 0.5em;
}

#headlines div.meta {
  display: inline;
  color: #444444;
  font-size: smaller;
}

#headlines div.item {
  display: block;
}

#screencast {
  margin-bottom: 10px;
}

#newAndNoteworthy a {
  display: block;
  width: 218px;
  height: 51px;
  padding: 0;
  text-indent: -9000px;
  background: transparent url("images/bannerNewAndNoteworthy08M4.png") no-repeat 0 0;
  margin-top: 10px;
}

.lyoDownloadButton {
  display: block;
  width: 250px;
  background-color: #4D6380;
  color: #FFFFFF;
  text-align: center;
  text-decoration: none;
  padding: 20px;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  border-radius: 5px;
  font-size: 16pt;
  margin: 20px 0;
}

.lyoDownloadButton:hover {
  background-color: #82A0C9;
}

.lyoDownloadSmallText {
  font-size: 9pt;
  text-align: center;
  padding-top: 5px;
  font-weight: normal;
}

.lyoLinkButton, .lyoLinkButton:visited {
  display: inline-block;
  width: 150px;
  background-color: #4D6380;
  color: #FFFFFF;
  text-align: center;
  text-decoration: none;
  padding: 20px;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  border-radius: 5px;
  font-size: 16pt;
  margin: 20px 10px;
}

.lyoLinkButton:hover {
  background-color: #82A0C9;
}

.horizontalCenter {
  width: 90%;
  margin: 0 auto;
  text-align: center;
}

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