/*
 * Copyright (c) 2019 Eclipse Foundation, Inc.
 * 
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 * 
 * Contributors:
 *   Eric Poirier <eric@eclipse.org>
 * 
 * SPDX-License-Identifier: EPL-2.0
*/
.header-eclipseide {
  background-image:url("/eclipseide/2018-12/images/background_eclipselandingpage.jpg");
  background-position:center;
  background-size:cover;
}

.featured-jumbotron a:not(.btn):not(.jumbotron-icon),
.featured-jumbotron a:not(.btn):not(.jumbotron-icon):visited,
.featured-jumbotron a:not(.btn):not(.jumbotron-icon):hover {
  color:#fff;
}

.header-eclipseide h1 {
  font-size:92px;
}
.header-eclipseide h1:after {
  display:none;
}
.header-eclipseide hr {
  width:60%;
  border-top:4px solid #f7941e;
  margin-bottom:24px;
}
.header-eclipseide .btn-white:hover {
  background-color:#e2e2e2;
  color:#333;
}
.featured-circle-outline {
  width:80px;
  height:80px;
  border-radius:80px;
}
.featured-circle-outline .icon{
  font-size:42px;
  color:#f7941e;
}
.featured-stats {
  background-image:url("/eclipseide/2018-12/images/bg-sub-section-01.jpg");
  background-position:center;
  background-size:cover;
}
.featured-community {
  background-image:url("/eclipseide/2018-12/images/bg-sub-section-02.jpg");
  background-position:center;
  background-size:cover;
  color:#fff;
}
.featured-community p {
  font-size:18px;
}

.featured-social-links a, .featured-social-links a:visited {
  color:#2d2252;
}

.featured-social-links a:hover {
  color:#110c23;
}

@media (min-width: 768px) {
  .featured-new-links li:not(:last-child){
    margin-right:30px;
  }
}

.featured-stats-text-container a,
.featured-stats-text-container a:hover,
.featured-stats-text-container a:visited {
  color:#fff;
}


@media (max-width: 768px) {
  .header-eclipseide h1 {
    font-size:72px;
  }
  .featured-new-links li:not(:last-child){
    margin-bottom:20px;
  }
  
  .featured-community-links li:not(:last-child) {
    margin-bottom:20px;
  }
}