@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,700&display=swap");
body {
  margin: 0;
  padding: 0;
  font-family: 'Open Sans', sans-serif;
  font-size: 17px;
  color: #292B30;
  background-color: #F3F3F3; }

.nav {
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: justify;
          justify-content: space-between;
  padding-top: 1em;
  padding-bottom: 1em;
  padding-left: 5rem;
  padding-right: 5rem; }
  @media (max-width: 750px) {
    .nav {
      padding-left: 1rem;
      padding-right: 1rem; } }
  .nav--logo {
    width: 180px;
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: center;
            justify-content: center;
    -webkit-box-align: center;
            align-items: center; }
    .nav--logo-image, .nav--logo-link {
      display: block;
      width: 100%; }
  .nav--language-switcher-list {
    display: -webkit-box;
    display: flex;
    list-style: none; }
    .nav--language-switcher-list-item {
      padding: 0 .2em;
      white-space: nowrap; }
      .nav--language-switcher-list-item:after {
        content: " | "; }
      .nav--language-switcher-list-item:last-child:after {
        content: none; }
  .nav--language-switcher-link {
    text-decoration: none;
    padding: .2em;
    color: #292B30; }
    html[lang="it"] .nav--language-switcher-link[data-key="it"],
    html[lang="de"] .nav--language-switcher-link[data-key="de"] {
      font-weight: bold; }

.header--image {
  min-height: 70vh;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
          align-items: center;
  position: relative; }
  .header--image-single {
    background-position: center;
    background-size: cover;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    -webkit-transition: opacity .5s ease;
    transition: opacity .5s ease; }
    .header--image-single.hidden {
      opacity: 0; }
  .header--image:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    background-color: rgba(0, 0, 0, 0.3); }

.header--progress {
  height: 2px;
  position: absolute;
  margin: 0;
  border: 0;
  left: 0;
  background-color: #292B30;
  display: none;
  -webkit-transition: width 4s linear;
  transition: width 4s linear; }

.header--title {
  color: #fff;
  position: relative;
  padding-left: 5rem;
  padding-right: 5rem;
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
          flex-direction: column;
  line-height: 1;
  z-index: 1; }
  @media (max-width: 750px) {
    .header--title {
      padding-left: 1rem;
      padding-right: 1rem; } }
  @media (max-width: 550px) {
    .header--title {
      font-size: 1.5em; } }
  @media (max-width: 330px) {
    .header--title {
      font-size: 1.2em; } }
  .header--title-title {
    font-size: 1.7em; }
  .header--title-subtitle {
    font-size: .9em;
    font-weight: normal; }

.header--services {
  margin: 0;
  padding-top: 3em;
  padding-bottom: 0;
  padding-left: 5rem;
  padding-right: 5rem;
  list-style: none;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: justify;
          justify-content: space-between;
  flex-wrap: wrap; }
  @media (max-width: 750px) {
    .header--services {
      padding-left: 1rem;
      padding-right: 1rem; } }
  .header--services-item {
    width: 250px;
    margin-bottom: 2em;
    text-align: center; }
    @media (max-width: 1200px) {
      .header--services-item {
        width: 50%; } }
    @media (max-width: 550px) {
      .header--services-item {
        width: 100%; } }
    .header--services-item-title {
      margin: 0 0 .5em;
      text-align: center; }
      @media (max-width: 550px) {
        .header--services-item-title {
          font-size: 1.35em; } }
      @media (max-width: 450px) {
        .header--services-item-title {
          font-size: 1.25em;
          margin-bottom: .1em; } }
    .header--services-item-image {
      -webkit-box-flex: 1;
              flex: 1;
      display: -webkit-box;
      display: flex;
      -webkit-box-align: center;
              align-items: center;
      -webkit-box-pack: center;
              justify-content: center;
      width: 150px;
      margin: auto; }
      @media (max-width: 550px) {
        .header--services-item-image {
          width: 140px; } }
      @media (max-width: 450px) {
        .header--services-item-image {
          width: 120px; } }
      .header--services-item-image-img {
        display: block;
        width: 100%; }

.intro {
  padding-left: 5rem;
  padding-right: 5rem;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
          align-items: center;
  -webkit-box-pack: center;
          justify-content: center;
  padding-top: 5em; }
  @media (max-width: 750px) {
    .intro {
      padding-left: 1rem;
      padding-right: 1rem; } }
  .intro--inner-wrapper {
    max-width: 740px;
    text-align: center; }
  .intro--title {
    font-size: 2em;
    margin: 0 0 .3em; }
    @media (max-width: 550px) {
      .intro--title {
        font-size: 1.5em; } }
  .intro--content {
    margin: 0; }

.location {
  display: -webkit-box;
  display: flex;
  margin-top: 5em;
  flex-wrap: wrap; }
  .location--info, .location--maps {
    width: 50%;
    box-sizing: border-box; }
    @media (max-width: 830px) {
      .location--info, .location--maps {
        width: 100%; } }
  .location--info {
    background-color: #292B30;
    padding-left: 5rem;
    padding-right: 5rem;
    padding-top: 4em;
    padding-bottom: 4em;
    color: #fff; }
    @media (max-width: 750px) {
      .location--info {
        padding-left: 1rem;
        padding-right: 1rem; } }
    .location--info-company {
      margin-top: 0;
      font-size: 1.3em; }
    .location--info p {
      margin: 0; }
    .location--info a {
      color: #fff; }
  .location--maps {
    min-height: 400px; }
    .location--maps-iframe {
      border: 0;
      width: 100%;
      height: 100%; }

.quick-contact {
  position: fixed;
  z-index: 5;
  bottom: 1em;
  right: 1em; }
  .quick-contact--fab {
    border-radius: 50%;
    position: relative;
    height: 54px;
    width: 54px;
    background-color: #fff;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.4);
    display: -webkit-box;
    display: flex;
    -webkit-box-align: center;
            align-items: center;
    -webkit-box-pack: center;
            justify-content: center;
    z-index: 2;
    cursor: pointer; }
    .quick-contact--fab-inner {
      font-size: 2em;
      margin-top: -.6em; }
  .quick-contact-list {
    margin: 0;
    list-style: none;
    display: -webkit-box;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
            flex-direction: column;
    -webkit-box-align: center;
            align-items: center;
    padding: 0;
    overflow: hidden;
    -webkit-transition: max-height .2s ease-in-out;
    transition: max-height .2s ease-in-out;
    max-height: 210px; }
    .quick-contact-list.hidden {
      max-height: 0; }
    .quick-contact-list-item {
      padding-top: .2em;
      padding-bottom: .2em; }
      .quick-contact-list-item:last-child {
        padding-bottom: .7em; }
      .quick-contact-list-item a {
        display: block;
        width: 40px;
        height: 40px;
        background-color: #292B30;
        box-shadow: 0 3px 6px rgba(0, 0, 0, 0.4);
        border-radius: 50%;
        background-size: 60%;
        background-position: center;
        background-repeat: no-repeat; }

.footer {
  padding-top: 2em;
  padding-bottom: 2em;
  padding-left: 5rem;
  padding-right: 5rem;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: justify;
          justify-content: space-between;
  flex-wrap: wrap; }
  @media (max-width: 750px) {
    .footer {
      padding-left: 1rem;
      padding-right: 1rem; } }
  .footer--navigation-list {
    margin: 0;
    padding: 0;
    list-style: none; }
  .footer--navigation-link {
    color: #292B30; }

.impressum--title {
  padding-left: 5rem;
  padding-right: 5rem; }
  @media (max-width: 750px) {
    .impressum--title {
      padding-left: 1rem;
      padding-right: 1rem; } }

.impressum--contact {
  padding-left: 5rem;
  padding-right: 5rem;
  display: -webkit-box;
  display: flex;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
          justify-content: space-between; }
  @media (max-width: 750px) {
    .impressum--contact {
      padding-left: 1rem;
      padding-right: 1rem; } }
  .impressum--contact-col {
    width: calc(50% - 2em); }
    @media (max-width: 570px) {
      .impressum--contact-col {
        width: 100%; } }
  .impressum--contact a {
    color: #292B30; }

.impressum--contents {
  padding-left: 5rem;
  padding-right: 5rem;
  padding-top: 4em; }
  @media (max-width: 750px) {
    .impressum--contents {
      padding-left: 1rem;
      padding-right: 1rem; } }
