/*
MEDIA QUERY MANAGER

0       -   600px :   Phone
600px   -   900px :   Tablet portrait
900px   -   1200px:   Tablet landscape
1200px  -   1800px:   Desktop
1800px  +         :   Big Desktop

$breakpoint argument options
- phone
- tab-port
- tab-land
- big-desktop

1em = 16px
*/
/*
@include respond(tab-land) {
}

@include respond(tab-port) {
}

@include respond(phone) {
}

@include respond(big-desk) {
}
*/
*,
*::after,
*::before {
  margin: 0;
  padding: 0;
  box-sizing: inherit; }

html {
  font-size: 62.5%; }
  @media (max-width: 90em) {
    html {
      font-size: 56.25%; } }
  @media (max-width: 56.25em) {
    html {
      font-size: 50%; } }

body {
  padding: 0rem 10rem 5rem 10rem;
  box-sizing: border-box; }
  @media (max-width: 56.25em) {
    body {
      padding: 0rem 0rem 2rem 0rem; } }

body {
  font-family: "Nunito", sans-serif;
  font-weight: 400;
  line-height: 1.7;
  color: #2F2F2E; }

.heading-primary--main {
  font-family: "Libre Baskerville", serif;
  font-size: 5rem;
  display: block; }
  @media (max-width: 37.5em) {
    .heading-primary--main {
      font-size: 3.5rem; } }
  .heading-primary--main-small {
    font-family: "Libre Baskerville", serif;
    font-size: 3rem;
    display: block; }

.heading-primary--secondary {
  font-family: "Libre Baskerville", serif;
  font-style: italic;
  font-size: 2rem;
  display: block; }

.heading-primary--sub {
  font-family: "Nunito", sans-serif;
  font-weight: 300;
  font-size: 1.6rem;
  display: block; }

.u-center-text {
  text-align: center; }

.u-margin-bottom-small {
  margin-bottom: 1.5rem; }

.u-margin-bottom-medium {
  margin-bottom: 4rem; }

.u-margin-bottom-big {
  margin-bottom: 8rem; }

.u-margin-bottom-huge {
  margin-bottom: 10rem; }

.u-margin-top-small {
  margin-top: 1.5rem; }

.u-margin-top-medium {
  margin-top: 4rem; }

.u-margin-top-big {
  margin-top: 8rem; }

.u-margin-top-huge {
  margin-top: 10rem; }

.u-padding-top-huge {
  padding-top: 10rem; }

/* libre-baskerville-regular - latin */
@font-face {
  font-family: "Libre Baskerville";
  font-style: normal;
  font-weight: 400;
  src: url("/css/fonts/libre-baskerville-v5-latin-regular.eot");
  /* IE9 Compat Modes */
  src: local("Libre Baskerville"), local("LibreBaskerville-Regular"), url("/css/fonts/libre-baskerville-v5-latin-regular.eot?#iefix") format("embedded-opentype"), url("/css/fonts/libre-baskerville-v5-latin-regular.woff2") format("woff2"), url("/css/fonts/libre-baskerville-v5-latin-regular.woff") format("woff"), url("/css/fonts/libre-baskerville-v5-latin-regular.ttf") format("truetype"), url("/css/fonts/libre-baskerville-v5-latin-regular.svg#LibreBaskerville") format("svg");
  /* Legacy iOS */ }

/* libre-baskerville-italic - latin */
@font-face {
  font-family: "Libre Baskerville";
  font-style: italic;
  font-weight: 400;
  src: url("/css/fonts/libre-baskerville-v5-latin-italic.eot");
  /* IE9 Compat Modes */
  src: local("Libre Baskerville Italic"), local("LibreBaskerville-Italic"), url("/css/fonts/libre-baskerville-v5-latin-italic.eot?#iefix") format("embedded-opentype"), url("/css/fonts/libre-baskerville-v5-latin-italic.woff2") format("woff2"), url("/css/fonts/libre-baskerville-v5-latin-italic.woff") format("woff"), url("/css/fonts/libre-baskerville-v5-latin-italic.ttf") format("truetype"), url("/css/fonts/libre-baskerville-v5-latin-italic.svg#LibreBaskerville") format("svg");
  /* Legacy iOS */ }

/* nunito-300 - latin */
@font-face {
  font-family: "Nunito";
  font-style: normal;
  font-weight: 300;
  src: url("/css/fonts/nunito-v9-latin-300.eot");
  /* IE9 Compat Modes */
  src: local("Nunito Light"), local("Nunito-Light"), url("/css/fonts/nunito-v9-latin-300.eot?#iefix") format("embedded-opentype"), url("/css/fonts/nunito-v9-latin-300.woff2") format("woff2"), url("/css/fonts/nunito-v9-latin-300.woff") format("woff"), url("/css/fonts/nunito-v9-latin-300.ttf") format("truetype"), url("/css/fonts/nunito-v9-latin-300.svg#Nunito") format("svg");
  /* Legacy iOS */ }

/* nunito-regular - latin */
@font-face {
  font-family: "Nunito";
  font-style: normal;
  font-weight: 400;
  src: url("/css/fonts/nunito-v9-latin-regular.eot");
  /* IE9 Compat Modes */
  src: local("Nunito Regular"), local("Nunito-Regular"), url("/css/fonts/nunito-v9-latin-regular.eot?#iefix") format("embedded-opentype"), url("/css/fonts/nunito-v9-latin-regular.woff2") format("woff2"), url("/css/fonts/nunito-v9-latin-regular.woff") format("woff"), url("/css/fonts/nunito-v9-latin-regular.ttf") format("truetype"), url("/css/fonts/nunito-v9-latin-regular.svg#Nunito") format("svg");
  /* Legacy iOS */ }

.citeblock__text {
  position: relative;
  display: inline-block; }

.citeblock__author {
  position: absolute;
  right: -2rem;
  bottom: -3rem; }

.footer {
  padding: 0 10rem;
  display: block;
  margin-bottom: 5rem; }
  @media (max-width: 56.25em) {
    .footer {
      padding: 0 2rem; } }
  .footer__left {
    float: left; }
    .footer__left > .footer__item {
      margin-right: 2rem; }
      @media (max-width: 37.5em) {
        .footer__left > .footer__item {
          display: block; } }
  .footer__right {
    float: right; }
    .footer__right > .footer__item {
      margin-left: 2rem; }
      @media (max-width: 37.5em) {
        .footer__right > .footer__item {
          display: block; } }

.header {
  position: relative;
  height: calc(100vh - 11rem - 5rem);
  display: flex; }
  @media (max-width: 56.25em) {
    .header {
      display: block;
      min-height: 0;
      height: auto; } }
  .header__text {
    background-color: #D1F4EC;
    flex: 1; }
  .header__text-box {
    text-align: center;
    padding: 8rem;
    height: 100%;
    display: flex;
    justify-content: center;
    flex-direction: column; }
    .header__text-box:hover > .header__arrow {
      transform: translateY(2rem);
      color: #73A39A; }
  .header__arrow {
    display: block;
    margin-top: 8vw;
    font-size: 3rem;
    transition: all 0.5s ease; }
  .header__image {
    flex: 1;
    background-size: cover;
    background-position: center; }
    @media (max-width: 56.25em) {
      .header__image {
        width: 100%;
        height: 50vw; } }

.info {
  display: flex;
  background-color: #F2F2F1;
  padding: 8rem; }
  .info__text-box {
    flex: 1;
    text-align: center;
    margin: 0 auto; }

.navigation {
  height: calc(8rem + 3rem);
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: 3rem 10rem 0rem 10rem;
  overflow: hidden;
  background-color: white;
  z-index: 1; }
  @media (max-width: 56.25em) {
    .navigation {
      padding: 2rem 0rem 0rem 0rem; } }
  .navigation__title {
    transform: translateY(2.5rem);
    float: left;
    margin-left: 3rem; }
    .navigation__title a:link, .navigation__title a:visited {
      color: #2F2F2E;
      text-decoration: none; }
  .navigation__menu {
    font-family: "Nunito", sans-serif;
    font-weight: 300;
    font-size: 1.6rem;
    text-transform: uppercase;
    transform: translateY(2.7rem);
    float: right;
    margin-right: 1rem; }
    @media (max-width: 56.25em) {
      .navigation__menu {
        display: none; } }
  .navigation__item {
    margin-right: 1.5rem;
    float: left; }
  .navigation__link {
    transition: all 250ms ease;
    display: inline-block; }
    .navigation__link:link, .navigation__link:visited {
      color: #2F2F2E;
      text-decoration: none; }
    .navigation__link--selected {
      display: inline-block; }
      .navigation__link--selected:link, .navigation__link--selected:visited {
        color: #73A39A;
        text-decoration: none; }
      .navigation__link--selected:after {
        display: block;
        content: "";
        border-bottom: 1px solid #73A39A;
        transform: scaleX(1) !important; }
    .navigation__link:after {
      display: block;
      content: "";
      border-bottom: 1px solid #73A39A;
      transform: scaleX(0);
      transition: transform 250ms ease; }
    .navigation__link:hover {
      color: #73A39A; }
      .navigation__link:hover:after {
        transform: scaleX(1); }
  .navigation-mobile {
    display: none; }
    @media (max-width: 56.25em) {
      .navigation-mobile {
        display: inline; } }
    .navigation-mobile__checkbox {
      display: none; }
    .navigation-mobile__checkbox:checked ~ .navigation-mobile__container {
      display: inline; }
    .navigation-mobile__checkbox:checked ~ .navigation-mobile__background {
      opacity: 1;
      visibility: visible; }
    .navigation-mobile__checkbox:checked + .navigation-mobile__button .navigation-mobile__toggle-bar {
      background-color: transparent; }
    .navigation-mobile__checkbox:checked + .navigation-mobile__button .navigation-mobile__toggle-bar:before {
      transform: rotate(135deg);
      top: 0;
      background-color: #73A39A; }
    .navigation-mobile__checkbox:checked + .navigation-mobile__button .navigation-mobile__toggle-bar:after {
      transform: rotate(-135deg);
      top: 0;
      background-color: #73A39A; }
    .navigation-mobile__button {
      position: fixed;
      top: 4.5rem;
      right: 3rem;
      z-index: 30;
      width: 3rem;
      height: 3rem;
      cursor: pointer;
      text-align: center; }
    .navigation-mobile__toggle-bar {
      position: relative;
      margin-top: 1.5rem; }
      .navigation-mobile__toggle-bar, .navigation-mobile__toggle-bar::before, .navigation-mobile__toggle-bar::after {
        width: 3rem;
        height: 1px;
        background-color: #2F2F2E;
        content: "";
        display: inline-block;
        transition: all 250ms ease; }
      .navigation-mobile__toggle-bar, .navigation-mobile__toggle-bar::before, .navigation-mobile__toggle-bar::after {
        left: 0;
        position: absolute; }
      .navigation-mobile__toggle-bar::before {
        top: -0.8rem; }
      .navigation-mobile__toggle-bar::after {
        top: 0.8rem; }
    .navigation-mobile__container {
      height: 100vh;
      position: fixed;
      top: 0;
      right: 0;
      z-index: 20;
      display: none;
      width: 100%; }
    .navigation-mobile__background {
      background-color: white;
      height: 100vh;
      width: 100%;
      position: fixed;
      top: 0;
      right: 0;
      z-index: 10;
      opacity: 0;
      visibility: hidden;
      transition: opacity 250ms ease; }
    .navigation-mobile__menu {
      font-family: "Nunito", sans-serif;
      font-weight: 300;
      font-size: 4rem;
      text-transform: uppercase;
      text-align: center;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%); }
    .navigation-mobile__item {
      display: block;
      margin: 0.5rem 0; }

.services {
  display: flex;
  overflow: hidden;
  position: relative;
  flex-wrap: wrap; }
  .services__col {
    flex: 1;
    padding: 6rem 6rem 3rem 6rem;
    text-align: center; }
    .services__col:nth-child(1) {
      background-color: #E3F6D0; }
      @media (max-width: 37.5em) {
        .services__col:nth-child(1) {
          flex: 0 0 100%; } }
      @media (max-width: 90em) {
        .services__col:nth-child(1) {
          padding-bottom: 6rem; } }
    .services__col:nth-child(2) {
      background-color: #F2F2F1; }
      @media (max-width: 37.5em) {
        .services__col:nth-child(2) {
          flex: 0 0 100%; } }
      @media (max-width: 90em) {
        .services__col:nth-child(2) {
          padding-bottom: 6rem; } }
    .services__col:nth-child(3) {
      background-color: #D1F4EC; }
      @media (max-width: 90em) {
        .services__col:nth-child(3) {
          flex: 0 0 100%; } }
  .services__more-link:link, .services__more-link:visited {
    color: #2F2F2E;
    text-decoration: none; }
  .services__more-link:hover > .services__more-arrow {
    transform: translateX(2rem);
    color: #73A39A; }
  .services__more-arrow {
    font-size: 3rem;
    margin-left: 3rem;
    vertical-align: -20%;
    transition: all 0.5s ease; }
  @media (max-width: 90em) {
    .services__more--middle {
      display: none; } }
  .services__more--last {
    display: none; }
    @media (max-width: 90em) {
      .services__more--last {
        display: inline-block; } }

.page-title {
  text-align: center;
  margin-bottom: 5vh;
  padding-top: 5vh; }

.form {
  /* Checkbox */ }
  .form__group:not(:last-child) {
    margin-bottom: 1.5rem; }
  .form__input {
    padding: 1.5rem 2rem;
    border-radius: 2px;
    background-color: rgba(255, 255, 255, 0.5);
    border: none;
    font-family: "Nunito", sans-serif;
    font-weight: 300;
    font-size: 1.6rem;
    border-bottom: 3px solid transparent;
    width: 100%;
    display: block;
    color: #2F2F2E;
    transition: all 0.3s; }
    .form__input:focus {
      outline: none;
      box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.1);
      border-bottom: 3px solid #73A39A; }
      .form__input:focus:invalid {
        border-bottom: 3px solid #ff7730; }
    .form__input::-webkit-input-placeholder {
      color: gray; }
  .form__label {
    font-size: 1.2rem;
    margin-left: 2rem;
    margin-top: 0.7rem;
    display: block;
    font-weight: 400;
    font-family: "Nunito", sans-serif;
    transition: all 0.3s;
    transform: translateY(0rem); }
  .form__input:placeholder-shown + .form__label {
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4rem); }
  .form__button {
    display: block;
    background-color: #73A39A;
    width: 100%;
    padding: 1.5rem 2rem 0.8rem 2rem;
    border: none;
    border-radius: 2px;
    font-size: 1.6rem;
    font-weight: 300;
    font-family: "Nunito", sans-serif;
    color: white;
    transition: all 0.3s;
    cursor: pointer; }
    .form__button:hover {
      box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.1); }
    .form__button:hover > .form__button--icon {
      transform: translateX(2rem); }
    .form__button--icon {
      font-size: 3rem;
      vertical-align: -20%;
      margin-left: 2rem;
      transition: all 0.5s;
      display: inline-block; }
  .form__checkbox-input {
    display: none; }
  .form__checkbox-label {
    font-size: 1.6rem;
    cursor: pointer;
    position: relative;
    padding-left: 4.5rem; }
  .form__checkbox-button {
    height: 3rem;
    width: 3rem;
    border: 5px solid #73A39A;
    border-radius: 50%;
    display: inline-block;
    position: absolute;
    left: 0;
    top: -0.4rem; }
    .form__checkbox-button::after {
      content: "";
      display: block;
      height: 1.3rem;
      width: 1.3rem;
      border-radius: 50%;
      position: absolute;
      background-color: #73A39A;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      opacity: 0;
      transition: opacity 0.2s; }
  .form__checkbox-input:checked ~ .form__checkbox-label .form__checkbox-button::after {
    opacity: 1; }
  .form__checkbox-input:invalid ~ .form__checkbox-label .form__checkbox-button {
    border-color: #ff7730; }

.row {
  max-width: 114rem;
  margin: 0 auto; }
  .row:not(:last-child) {
    margin-bottom: 8rem; }
  .row::after {
    content: "";
    display: table;
    clear: both; }
  .row .col-1-of-2 {
    width: calc((100% - 6rem)/2);
    float: left; }
    .row .col-1-of-2:not(:last-child) {
      margin-right: 6rem; }
  .row .col-1-of-3 {
    width: calc((100% - 6rem*2)/3);
    float: left; }
    .row .col-1-of-3:not(:last-child) {
      margin-right: 6rem; }
  .row .col-1-of-4 {
    width: calc((100% - 6rem*3)/4);
    float: left; }
    .row .col-1-of-4:not(:last-child) {
      margin-right: 6rem; }

.content {
  margin-top: 11rem; }

.about {
  padding: 10rem 20vw 10rem 20vw;
  display: flex;
  background-color: #F2F2F1; }
  @media (max-width: 90em) {
    .about {
      padding: 10rem; } }
  @media (max-width: 37.5em) {
    .about {
      padding: 6rem; } }
  .about__text-box {
    text-align: left;
    flex: 1; }

.qualifications {
  padding: 10rem 20vw 10rem 20vw;
  display: flex;
  background-color: #D1F4EC; }
  @media (max-width: 90em) {
    .qualifications {
      padding: 10rem; } }
  @media (max-width: 37.5em) {
    .qualifications {
      padding: 6rem; } }
  .qualifications__text-box {
    text-align: left;
    flex: 1; }
  .qualifications__box {
    column-count: 2; }
    @media (max-width: 37.5em) {
      .qualifications__box {
        column-count: 1; } }
  .qualifications__item {
    margin-bottom: 5rem; }

.services-list__item {
  padding: 8rem 20vw 8rem 20vw;
  text-align: center; }
  .services-list__item:nth-child(3n + 1) {
    background-color: #E3F6D0;
    background-image: url(/img/service-bg1.jpg);
    background-size: cover;
    background-position: center; }
  .services-list__item:nth-child(3n + 2) {
    background-color: #F2F2F1;
    background-image: url(/img/service-bg2.jpg);
    background-size: cover;
    background-position: center; }
  .services-list__item:nth-child(3n + 3) {
    background-color: #D1F4EC;
    background-image: url(/img/service-bg3.jpg);
    background-size: cover;
    background-position: center; }
  @media (max-width: 90em) {
    .services-list__item {
      padding: 8rem; } }
  @media (max-width: 56.25em) {
    .services-list__item {
      padding: 6rem; } }

.pricing-list {
  text-align: center; }
  .pricing-list__heading {
    padding: 3rem;
    font-size: 2.5rem; }
  .pricing-list__price {
    padding: 3rem;
    font-size: 2.5rem; }
  .pricing-list__item-container {
    display: inline-block;
    padding-bottom: 10rem; }
    .pricing-list__item-container:nth-child(3n + 1) > * {
      background-color: #E3F6D0; }
    .pricing-list__item-container:nth-child(3n + 2) > * {
      background-color: #F2F2F1; }
    .pricing-list__item-container:nth-child(3n + 3) > * {
      background-color: #D1F4EC; }
  .pricing-list__item {
    text-align: center;
    width: 40rem;
    margin: 0 3rem; }
    @media (max-width: 56.25em) {
      .pricing-list__item {
        width: 35rem;
        margin: 0 2rem; } }
  .pricing-list__feature-item {
    display: block;
    font-size: 2rem;
    border-bottom: 2px solid white;
    border-top: 2px solid white;
    padding: 1rem 0; }
    .pricing-list__feature-item:first-child {
      border-top: 4px solid white; }
    .pricing-list__feature-item:last-child {
      border-bottom: 4px solid white; }
  .pricing-list__footnotes {
    padding: 0 20rem 5rem 20rem;
    text-align: left; }
    @media (max-width: 90em) {
      .pricing-list__footnotes {
        padding: 0 10rem 0 10rem; } }
    @media (max-width: 37.5em) {
      .pricing-list__footnotes {
        padding: 0 5rem 0 5rem; } }

.map {
  width: 100%;
  height: 50rem; }

.contact-form {
  text-align: center;
  padding: 8rem 0;
  background-color: #D1F4EC; }
  .contact-form__container {
    padding: 0 3rem;
    width: 60rem;
    max-width: 100%;
    margin: 0 auto;
    display: inline-block; }
  .contact-form__form {
    margin: 5rem 0;
    text-align: left; }
  .contact-form__more {
    column-count: 2; }
    @media (max-width: 37.5em) {
      .contact-form__more {
        column-count: 1;
        text-align: center; } }
    .contact-form__more-item {
      text-align: left;
      margin-bottom: 5rem; }
      @media (max-width: 37.5em) {
        .contact-form__more-item {
          text-align: center; } }

.faq-list {
  padding: 10rem 25vw 10rem 25vw; }
  @media (max-width: 90em) {
    .faq-list {
      padding: 10rem; } }
  @media (max-width: 37.5em) {
    .faq-list {
      padding: 6rem; } }
  .faq-list__item {
    margin-bottom: 8rem; }
    .faq-list__item--question::before {
      content: "Frage: ";
      color: #73A39A; }

.impressum {
  padding: 5rem 20vw 10rem 20vw;
  font-size: 1.6rem; }
  .impressum h2 {
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 2rem; }
  @media (max-width: 90em) {
    .impressum {
      padding: 5rem; } }
  @media (max-width: 37.5em) {
    .impressum {
      padding: 3rem; } }

.privacy {
  padding: 5rem 20vw 10rem 20vw;
  font-size: 1.6rem; }
  .privacy ul li {
    margin-left: 5rem; }
  .privacy h2 {
    font-family: "Libre Baskerville", serif;
    font-style: italic;
    font-size: 2rem; }
  @media (max-width: 90em) {
    .privacy {
      padding: 5rem; } }
  @media (max-width: 37.5em) {
    .privacy {
      padding: 3rem; } }
