/*
 * Copyright (c) 2020 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-europe-bg-img {
  background-image:url(images/eu-jumbotron-final.jpg);
}

.jumbotron p {
  font-size:16px;
  font-weight:400;
}

.jumbotron a {
  width:260px;
}

h2 {
  text-transform:uppercase;
}

.europe-faq {
  padding:50px 0;
  text-align:center;
  position:relative;
  overflow:hidden;
}

.europe-faq p{
  font-size:21px;
  font-weight: 200;
}

.europe-faq:before, .europe-faq:after{
  content:"";
  display:block;
  width:250px;
  position:absolute;
  bottom:0;
  background-repeat:no-repeat;
  background-size:200px;
  z-index:-1;
}

.europe-faq:before {
  background-image:url(images/faq-left-bg.svg);
  left:0;
  background-position: bottom left;
  height:275px;
}

.europe-faq:after{
  background-image:url(images/faq-right-bg.svg);
  right:0;
  background-position: bottom right;
  height:260px;
}

.europe-testimonials {
  background-color:#0f1a38;
  background-image:url(images/testimonials-bg.svg);
  background-position:bottom right;
  background-repeat:no-repeat;
  color:#fff;
  padding:40px 0;
}

.europe-testimonials h2 {
  color:#fff;
}

.europe-testimonials .item {
  padding:20px;
}

.europe-testimonials img {
  
}

.europe-testimonials-logo {
  background-color:#fff;
  border-radius:200px;
  color:#000;
  width:100px;
  height:100px;
  display:block;
  margin: 0 auto 20px;
}

.europe-testimonials-logo img {
  max-width:80px;
  max-height:75px;
  margin: 0 auto;
}

.europe-video {
  text-align:center;
  padding:40px 0 50px;
  position:relative;
  overflow:hidden;
}

.europe-video h2 {
  margin-bottom:30px;
}

@media (min-width: 768px) {
  .europe-video:before, .europe-video:after{
    content:"";
    display:block;
    width:300px;
    height:600px;
    position:absolute;
    top:0;
    background-repeat:no-repeat;
    background-size:cover;
  }

  .europe-video:before {
    background-image:url(images/faq-left-bg.svg);
    left:0px;
    background-position: bottom left;
  }

  .europe-video:after{
    background-image:url(images/faq-right-bg.svg);
    right:0;
    background-position: bottom right;
  }
}

.europe-video h2 {
  color:#f7941e;
}

.europe-resources {
  text-align:center;
  padding:40px 0 50px;
  background-color:#f3f3f4;
}

.europe-resources h2 {
  margin-bottom:30px;
}

.europe-resources-item {
  background-color:#fff;
  border:1px solid #ccc;
  padding:20px;
  margin-bottom:30px;
}

.europe-resources-img {
  width:100px;
  height:100px;
}