/*
███████████████████████████████████████████████████████████████████████████████████████████████
    FontAwesome
███████████████████████████████████████████████████████████████████████████████████████████████
*/
@import 'fontawesome/solid.min.css';

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Web-Fonts
███████████████████████████████████████████████████████████████████████████████████████████████
*/
/* roboto-300 - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: local('Roboto Light'), local('Roboto-Light'),
       url('../fonts/roboto-v20-latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto-v20-latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-regular - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: local('Roboto'), local('Roboto-Regular'),
       url('../fonts/roboto-v20-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto-v20-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-italic - latin */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: local('Roboto Italic'), local('Roboto-Italic'),
       url('../fonts/roboto-v20-latin-italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto-v20-latin-italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-500 - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  src: local('Roboto Medium'), local('Roboto-Medium'),
       url('../fonts/roboto-v20-latin-500.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto-v20-latin-500.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-700 - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: local('Roboto Bold'), local('Roboto-Bold'),
       url('../fonts/roboto-v20-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto-v20-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-900italic - latin */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 900;
  src: local('Roboto Black Italic'), local('Roboto-BlackItalic'),
       url('../fonts/roboto-v20-latin-900italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto-v20-latin-900italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Viewport-Anweisung
███████████████████████████████████████████████████████████████████████████████████████████████
*/
@-ms-viewport {
  width: device-width;
  zoom: 1;
}
@-o-viewport {
  width: device-width;
  zoom: 1;
}
@viewport {
  width: device-width;
  zoom: 1;
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Eric Meyer's CSS Reset
███████████████████████████████████████████████████████████████████████████████████████████████
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}
header, section, footer, aside, nav, main, article, figure {
  display: block;
}
body {
  line-height: 1;
}
ol, ul {
  list-style: none;
}
ol li {
  list-style: decimal;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    allgemeine Einstellungen
███████████████████████████████████████████████████████████████████████████████████████████████
*/
html {
  font-size: 18px;
  scroll-behavior: smooth;
  min-height: 100%;
  position: relative;
}
body {
  font-size: 100%;
}
body,
body * {
  box-sizing: border-box;
  font-family: 'Roboto', Arial, Helvetica, Sans-Serif;
  color: #333;
  line-height: 1.5em;
  background-repeat: no-repeat;
  font-weight: 400;
}
p,
table {
  margin-bottom: 1.5em;
}
strong,
.bold {
  font-weight: 700;
}
em {
  font-style: italic;
}
.center {
  text-align: center;
}
.center > * {
  display: inline-block;
}
.clear {
  clear: both;
  float: none;
}
a.fancybox img[style*="float:left"],
a.fancybox img[style*="float: left"] {
  margin: 0 2% 1% 0;
}
a.fancybox img[style*="float:right"],
a.fancybox img[style*="float: right"] {
  margin: 0 0 1% 2%;
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Überschriften
███████████████████████████████████████████████████████████████████████████████████████████████
*/
h1, h2, h3, h4 {
  display: block;
  clear: both;
  float: none;
  overflow: visible;
  color: #189680;
  text-align: left;
  line-height: 1.3em;
  font-style: italic;
  font-weight: 900;
  font-family: 'Roboto', sans-serif;
}
h1,
h2.like_h1 {
  font-size: 2.4em;
  margin-top: 2em;
  margin-bottom: 1.3em;
  text-align: center;
}
h2 {
  font-size: 2.1em;
  margin-top: 2em;
  margin-bottom: .6em;
}
h3 {
  font-size: 1.7em;
  margin-top: 2em;
  margin-bottom: .7em;
}
h2 + h3 {
  margin-top: 1em;
}
h4 {
  font-size: 1.2em;
  margin-top: 1.9em;
  margin-bottom: 1.1em;
  letter-spacing: .04em;
}
h3 + h4 {
  margin-top: .8em;
}
@media (max-width: 1300px) {
  h1,
  h2.like_h1 {
    font-size: 2.25em;
  }
  h2 {
    font-size: 1.8em;
  }
  h3 {
    font-size: 1.5em;
  }
  h4 {
    font-size: 1.1em;
  }
}
@media (max-width: 900px) {
  h1,
  h2.like_h1 {
    font-size: 2em;
  }
  h2 {
    font-size: 1.6em;
  }
  h3 {
    font-size: 1.3em;
  }
  h4 {
    font-size: 1em;
  }
}
@media (max-width: 550px) {
  h1,
  h2.like_h1 {
    font-size: 1.8em;
  }
  h2 {
    font-size: 1.45em;
  }
  h3 {
    font-size: 1.25em;
  }
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
    dynamische Schriftgröße
███████████████████████████████████████████████████████████████████████████████████████████████
*/
@media (max-width: 1300px) { body { font-size: 98.4%; } }
@media (max-width: 1200px) { body { font-size: 96.8%; } }
@media (max-width: 1100px) { body { font-size: 95.2%; } }
@media (max-width: 1000px) { body { font-size: 93.6%; } }
@media (max-width: 900px)  { body { font-size: 92.0%; } }
@media (max-width: 800px)  { body { font-size: 90.4%; } }
@media (max-width: 700px)  { body { font-size: 88.8%; } }
@media (max-width: 600px)  { body { font-size: 87.2%; } }
@media (max-width: 500px)  { body { font-size: 85.6%; } }
@media (max-width: 400px)  { body { font-size: 84.0%; } }
@media (max-width: 300px)  { body { font-size: 82.4%; } }

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Layout
███████████████████████████████████████████████████████████████████████████████████████████████
*/
.inner {
  width: 100%;
  max-width: 1280px;
  padding: 0 4rem;
  margin: 0 auto;
  overflow: auto;
}
.anchor {
  display: block;
  position: absolute;
  margin-top: -8em;
  width: 0;
  height: 0;
}
@media (max-width: 1300px) {
  .inner {
    padding: 0 5.5%;
  }
}
@media (max-width: 1230px) {
  .inner {
    padding: 0 3%;
  }
}
@media (max-width: 1100px) {
  .inner {
    padding: 0 2%;
  }
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Header
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#header {
  overflow: visible;
  z-index: 2;
  position: fixed;
  top: 0;
  width: 100%;
  background-color: #fff;
  box-shadow:
    0 0px 1.5px rgba(0, 0, 0, 0.05),
    0 0px 3.8px rgba(0, 0, 0, 0.071),
    0 0px 7.8px rgba(0, 0, 0, 0.089),
    0 0px 16.1px rgba(0, 0, 0, 0.11),
    0 0px 44px rgba(0, 0, 0, 0.16)
  ;
}
/*
===== Top-Line ================================================================================
*/
#header .top_line {
  overflow: hidden;
  background-color: #189680;
  color: #fff;
  font-size: .95em;
}
#header .top_line * {
  color: inherit;
}
#header .top_line a {
  text-decoration: none;
}
#header .top_line a:hover {
  text-decoration: underline;
}
#header .top_line .contact_con {
  float: left;
}
#header .top_line .contact_con .cta {
  display: inline-block;
  opacity: .7;
  margin-right: .5em;
  font-weight: 300;
}
#header .top_line .contact_con .phone {
  font-weight: 500;
}
#header .top_line .contact_con .email {
  background-color: #FF764C;
  display: inline-block;
  margin-left: 1em;
  line-height: 2.3em;
  min-width: 2.5em;
  text-align: center;
}
#header .top_line .contact_con .email:hover {
  filter: saturate(1.5) hue-rotate(-10deg);
}
#header .top_line .sec_nav_con {
  float: right;
  height: 2.25em;
  overflow: hidden;
}
#header .top_line .sec_nav_con a {
  display: inline-block;
  font-size: .9em;
  font-weight: 300;
  padding: 0 .5em;
  line-height: 2.5em;
}
#header .top_line .sec_nav_con a:last-of-type {
  padding-right: 0;
}
@media (max-width: 600px) {
  #header .top_line .contact_con .cta {
    display: none;
  }
  #header .top_line .contact_con .phone {
    font-weight: 300;
  }
  #header .top_line .contact_con .phone::before {
    font-family: "Font Awesome 5 Free";
    content: "\f879";
    font-size: .8em;
    line-height: .5em;
    display: inline-block;
    margin-right: .4em;
  }
}
@media (max-width: 440px) {
  #header .top_line .contact_con .email {
    margin-left: .7em;
    min-width: 2.2em;
  }
  #header .top_line .sec_nav_con a {
    padding: 0 .3em;
  }
}
/*
===== Main-Line ===============================================================================
*/
#header .main_line {
  padding-top: 1.4em;
  padding-bottom: 1.4em;
}
#header .main_line .inner {
  position: relative;
  overflow: hidden;
}
#header .main_line .logo {
  display: block;
  float: left;
  line-height: 0;
}
@media (max-width: 1400px) {
  #header .main_line {
    padding-top: 1em;
    padding-bottom: 1em;
  }
}
@media (max-width: 1300px) {
  #header .main_line {
    padding-top: .5em;
    padding-bottom: .5em;
  }
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Haupt-Navigation
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#navi_con {
  float: right;
  margin-top: 1em;
}
#nav_overlay {
  display: block;
  overflow: visible;
}
#navi * {
  text-decoration: none;
}
/*
===============================================================================================
    ... im Grundzustand
===============================================================================================
*/
#navi ul {
  margin-bottom: 0;
}
#navi ul li {
  display: inline-block;
  text-align: center;
  margin: 0 0 0 .2em;
}
#navi ul li:first-of-type {
  margin-left: 0;
}
#navi ul li:last-of-type {
  margin-right: -.8em;
}
#navi ul li a {
  display: block;
  overflow: visible;
  text-align: inherit;
  width: 100%;
  padding: .5em .8em;
  line-height: 1.6em;
  font-weight: 300;
  color: #222;
  text-transform: uppercase;
}
#navi ul li a:hover {
  color: #189680;
}
#navi ul li a * {
  font-weight: inherit;
  color: inherit;
}
#navi ul li a:hover span {
  position: relative;
}
#navi ul li a:hover span::after {
  content: '';
  display: block;
  position: absolute;
  bottom: -.4em;
  left: 0;
  width: 100%;
  border-bottom: 2px solid #189680;
}
@media (max-width: 1000px) {
  #navi ul li a {
    text-transform: none;
  }
}
/*
===============================================================================================
    geschlossenes Menu
===============================================================================================
*/
#nav_toggle {
  display: none;
  background-color: transparent;
  cursor: pointer;
  outline: none;
  padding: .5em 0 .5em .5em;
  border: none;
  color: #222;
  line-height: 2em;
  margin: 0;
}
#nav_toggle * {
  color: inherit;
}
#nav_toggle::before {
  font-family: "Font Awesome 5 Free";
  content: "\f0c9";
  font-size: 2.5em;
  display: inline-block;
  float: left;
  margin-right: .4em;
}
#header.pinned #nav_toggle::before {
  font-size: 2.3em;
}
#nav_toggle span {
  display: block;
  font-size: 1.3em;
  float: left;
  font-weight: 300;
}
@media (max-width: 740px) {
  #nav_toggle {
    display: block;
    float: right;
  }
  #navi {
    display: none;
  }
}
/*
===============================================================================================
    offenes Menu
===============================================================================================
*/
#nav_overlay.navopen #navi {
  position: fixed;
  z-index: 1;
  top: 0;
  right: 0;
  display: block;
  overflow: auto;
  width: 100%;
  padding: 5% 10% 460% 10%;
}
#nav_overlay.navopen #navi > ul {
  background-color: #444;
  padding: 3%;
  box-shadow: 0px 0px 80px 0px rgba(0,0,0,1);
}
#nav_overlay.navopen #navi > ul > li {
  display: block;
  float: none;
  margin-left: 0;
  margin-right: 0;
  margin-top: .5em;
  outline: 1px solid rgba(255,255,255,.6);
  outline-offset: -1px;
}
#nav_overlay.navopen #navi > ul > li:first-of-type {
  margin-top: 0;
}
#nav_overlay.navopen #navi > ul > li a {
  color: #fff;
}
#nav_overlay.navopen #navi ul li a {
  text-align: left;
  display: block;
  width: 100%;
  padding: .7rem;
  margin: 0;
  line-height: 1em;
  white-space: nowrap;
}
#nav_overlay.navopen #navi ul li a:hover {
  background-color: rgba(0,0,0,.7);
}
@media (max-width: 740px) {
  #nav_overlay.navopen #navi {
    padding: 0 0 100% 0;
  }
  #nav_overlay.navopen #navi > ul {
    padding: 5% 4rem 5% 5%;
  }
}
/*
===============================================================================================
    Burger-Menu
===============================================================================================
*/
#nav_overlay.navopen #nav_toggle {
  font-size: 3em;
  font-weight: 400;
  float: right;
  right: 1rem;
  top: 1rem;
  position: fixed;
  z-index: 2;
  margin-top: 0;
  color: #D75151;
  line-height: .5em;
  width: .7em;
  padding: 0;
  background-color: transparent;
  border: none;
}
#nav_overlay.navopen #nav_toggle:hover {
  color: #FF1616;
}
#nav_overlay.navopen #nav_toggle::before {
  display: none;
}
@media (max-width: 550px) {
  #nav_overlay.navopen #nav_toggle {
    top: 1rem;
  }
}
@media (max-width: 460px) {
  #nav_overlay #nav_toggle span {
    display: none;
  }
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Header-Bild
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#header_pic {
  width: 100%;
  padding-bottom: 31%;
  background-image: url('../bilder/typewriter-801921_1920.jpg');
  background-size: cover;
  background-position: 50% 0;
  border-top: 130px solid #888;
}
@media (max-width: 1300px) {
  #header_pic {
    border-top-width: 120px;
  }
}
@media (max-width: 500px) {
  #header_pic {
    border-top-width: 110px;
  }
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Content-Bereich
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#content {
  padding: 3em 0;
}
.home #content {
  padding: 0;
}
#content ul {
  margin-left: 1.5rem;
  list-style: none !important;
}
#content ul li {
  line-height: inherit;
  margin-top: .7em;
  line-height: 1.25em;
}
#content ul li::before {
  content: '\f058';
  font-family: 'Font Awesome 5 Free';
  font-size: .9em;
  display: block;
  float: left;
  width: 2em;
  margin-left: -2em;
  text-align: center;
  opacity: .8;
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Intro
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#intro {
  padding: 3em 0;
  background-color: #fff;
}
#intro .inner {
  overflow: hidden;
}
#intro h1 {
  margin-top: 0;
  margin-bottom: 1em;
}
#intro .two_column {
  overflow: auto;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: stretch;
  align-content: stretch;
  margin-left: -2.5%;
  margin-right: -2.5%;
}
#intro .two_column .col {
  flex-grow: 0;
  flex-shrink: 1;
  margin: 0 2.5%;
  width: 45%;
}
#intro .two_column .col img {
  display: block;
  width: 100%;
  max-width: 541px;
  margin-bottom: 1.5em;
}
#intro .two_column .col p {
  line-height: 1.7em;
  text-align: justify;
}
@media (max-width: 1200px) {
  #intro {
    padding-bottom: 2em;
  }
}
@media (max-width: 800px) {
  #intro {
    padding: 2em 0 1em 0;
  }
  #intro h1 {
    line-height: 1.1em;
  }
  #intro .two_column .col {
    width: 100%;
  }
  #intro .two_column .col img {
    margin: 0 auto 1.5em auto;
  }
  #intro .two_column .col p {
    line-height: 1.5em;
  }
}
@media (max-width: 600px) {
  #intro h1 {
    text-align: left;
  }
  #intro .two_column .col p {
    text-align: left;
  }
  #intro .two_column .col img {
    margin: 0 0 1.5em 0;
  }
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Leistungen
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#services {
  padding: 4em 0;
  background-color: transparent;
  box-shadow:
    inset 0 0px 3.2px rgba(0, 0, 0, 0.028),
    inset 0 0px 7.6px rgba(0, 0, 0, 0.04),
    inset 0 0px 14.3px rgba(0, 0, 0, 0.05),
    inset 0 0px 25.5px rgba(0, 0, 0, 0.06),
    inset 0 0px 47.6px rgba(0, 0, 0, 0.072),
    inset 0 0px 114px rgba(0, 0, 0, 0.1)
  ;
}
#services::before {
  content: '';
  display: block;
  position: fixed;
  z-index: -2;
  top: 0;
  width: 100vw;
  height: 100vh;
  background-image: url('../bilder/typewriter-801921_1920.jpg');
  background-size: cover;
  background-position: 50% 50%;
  filter: contrast(.5) brightness(1.5);
}
#services::after {
  content: '';
  display: block;
  position: fixed;
  z-index: -1;
  top: 0;
  width: 100vw;
  height: 100vh;
  background-color: #fff;
  opacity: .5;
}
#services > .inner {
  overflow: hidden;
}
#services h2 {
  margin-top: 0;
  color: #000;
}
#services p,
#services li {
  color: #000;
}
@media (max-width: 800px) {
  #services {
    padding: 2em 0 1em 0;
  }
}
@media (max-width: 600px) {
  #services h2 {
    text-align: left;
  }
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Referenzen
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#credentials {
  padding: 3em 0;
  background-color: #fff;
}
#credentials h2 {
  margin-top: 0;
  margin-bottom: .5em;
}
@media (max-width: 1200px) {
  #credentials p.center {
    text-align: left;
  }
}
@media (max-width: 600px) {
  #credentials h2 {
    text-align: left;
  }
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Referenzen-Galerie
███████████████████████████████████████████████████████████████████████████████████████████████
*/
.gallery {
  overflow: auto;
}
.gallery .picture_list {
  display: block;
  overflow: auto;
}
.gallery .picture_list a {
  display: block;
  position: relative;
  float: left;
  margin-right: 1%;
  margin-bottom: 1%;
  line-height: 0;
  outline-offset: -1px;
  cursor: zoom-in;
  outline: 1px solid #ddd;
  width: 24.25%;
}
.gallery .picture_list a:nth-of-type(4n+0) {
  margin-right: 0;
}
.gallery .picture_list a:after {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-box-shadow: inset 0px 0px 2px 0px rgba(0,0,0,0.1);
  -moz-box-shadow: inset 0px 0px 2px 0px rgba(0,0,0,0.1);
  box-shadow: inset 0px 0px 2px 0px rgba(0,0,0,0.1);
}
.gallery .picture_list a:hover:after {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  outline: 2px solid #189680;
  outline-offset: -8px;
}
.gallery a img {
  width: 100%;
  height: auto;
}
.gallery a:hover img {
  filter: saturate(1.4) brightness(.8);
}
.gallery .picture_list a div {
  position: absolute;
  bottom: 0;
  width: 100%;
  background-color: rgba(25, 25, 25, .8);
  padding: .4em .2em .3em .3em;
  line-height: 1.2em;
  color: #fff;
}
.gallery .picture_list a:hover div {
  background-color: #189680;
}
@media (max-width: 900px) {
  .gallery .picture_list a {
    width: 32.66666%;
  }
  .gallery .picture_list a:nth-of-type(4n+0) {
    margin-right: 1%;
  }
  .gallery .picture_list a:nth-of-type(3n+0) {
    margin-right: 0;
  }
}
@media (max-width: 650px) {
  .gallery .picture_list a {
    width: 49.5%;
  }
  .gallery .picture_list a:nth-of-type(3n+0) {
    margin-right: 1%;
  }
  .gallery .picture_list a:nth-of-type(2n+0) {
    margin-right: 0;
  }
}
@media (max-width: 350px) {
  .gallery .picture_list a {
    width: 100% !important;
    max-width: unset;
    margin-right: 0 !important;
  }
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Kontakt
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#contact_con {
  overflow: auto;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: stretch;
  align-content: stretch;
  background-color: #fff;
}
#contact_con .col {
  flex-grow: 0;
  flex-shrink: 1;
  width: 45%;
}
#contact_con .form {
  width: 61%;
  background-color: #ddd;
  background-image: url('../bilder/form-bg.jpg');
  background-size: cover;
  background-position: 0 100%;
}
#contact_con .map {
  width: 39%;
  background-color: #B0DAB0;
}
@media (max-width: 1600px) {
  #contact_con .form {
    background-position: 5% 100%;
  }
}
@media (max-width: 1500px) {
  #contact_con .form {
    width: 63%;
    background-position: 13% 100%;
  }
  #contact_con .map {
    width: 37%;
  }
}
@media (max-width: 1400px) {
  #contact_con .form {
    width: 64%;
  }
  #contact_con .map {
    width: 36%;
  }
}
@media (max-width: 1350px) {
  #contact_con .form {
    background-position: 100% 100%;
  }
}
@media (max-width: 1300px) {
  #contact_con .form {
    width: 65%;
  }
  #contact_con .map {
    width: 35%;
  }
}
@media (max-width: 1200px) {
  #contact_con .form {
    width: 66%;
  }
  #contact_con .map {
    width: 34%;
  }
}
@media (max-width: 900px) {
  #contact_con .form {
    width: 100%;
    background-position: 3% 100%;
  }
  #contact_con .map {
    width: 100%;
    height: 300px;
  }
}
@media (max-width: 800px) {
  #contact_con .form {
    background-position: 10% 100%;
  }
}
@media (max-width: 600px) {
  #contact_con .form {
    background-position: 100% 100%;
  }
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Kontaktformular
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#form_container {
  width: 757px;
  float: right;
  padding-right: 3em;
  margin: 3em 0;
}
#form_container .heading {
  font-family: 'Roboto', sans-serif;
  font-size: 1.7em;
  line-height: 1em;
  margin-bottom: .4em;
  text-align: left;
  color: #555;
  font-weight: 300;
}
#form_container form {
  display: block;
  overflow: auto;
  padding: .2em;
  margin: 0 auto;
  font-size: .9em;
}
#form_container form * {
  font-size: inherit;
}
#form_container form .columns_inputs {
  overflow: auto;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
  align-content: stretch;
}
#form_container form .columns_inputs input {
  flex-grow: 0;
  flex-shrink: 1;
  width: 49%;
}
#form_container form input[type=text],
#form_container form textarea,
#form_container form select {
  border: none;
  padding: .5em .8em .45em .8em;
  line-height: 1.2em;
  color: #000;
  background-color: #fff;
  outline-color: #538BEE;
  margin-top: .1em;
  margin-bottom: .8em;
}
#form_container form textarea {
  height: 6rem;
  width: 100%;
  margin: 0 0 .5em 0;
}
#form_container form ::-webkit-input-placeholder { /* Edge */
  opacity: .9;
  font-weight: 300;
}
#form_container form :-ms-input-placeholder { /* Internet Explorer 10-11 */
  opacity: .9;
  font-weight: 300;
}
#form_container form ::placeholder {
  opacity: .9;
  font-weight: 300;
}
#form_container form .columns_completion {
  overflow: hidden;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
  align-content: stretch;
}
#form_container form .columns_completion .col {
  flex-grow: 0;
  flex-shrink: 1;
}
#form_container form .columns_completion .consent_con {
  width: 69%;
}
#form_container form .columns_completion .btn_con {
  width: 29%;
}
#form_container form .consent_con input[type=checkbox] {
  float: left;
  font-size: 1.1em;
  height: 1.1em;
  width: 1.1em;
  margin: 0;
}
#form_container form .consent_con .consent_text {
  text-align: left;
  line-height: 1.3em;
  padding: 0 0 0 1.8em;
  font-size: .8em;
  color: #000;
}
#form_container form .consent_con .consent_text * {
  font-size: inherit;
  color: inherit;
  line-height: inherit;
}
#form_container form .consent_con .consent_text a {
  white-space: nowrap;
}
#form_container form input[type=submit] {
  float: right;
  border: none;
  background-color: #FF764C;
  color: #fff;
  font-weight: 400;
  font-size: 1.1em;
  text-transform: uppercase;
  line-height: 1em;
  padding: 1em;
  width: 100%;
  border-radius: .3em;
  cursor: pointer;
}
#form_container form input[type=submit]:hover {
  filter: saturate(1.6) contrast(1.3);
  box-shadow:
    inset 0 0px 0.5px rgba(0, 0, 0, 0.024),
    inset 0 0px 1.3px rgba(0, 0, 0, 0.035),
    inset 0 0px 3px rgba(0, 0, 0, 0.046),
    inset 0 0px 10px rgba(0, 0, 0, 0.07)
  ;
  text-shadow: 0 0 2px rgba(0, 0, 0, .1);
}
#form_container form .errormsg {
  font-style: italic;
  color: #691414;
  font-size: .8em;
  margin-top: -.85em;
  margin-bottom: 1em;
  padding: .2em .4em;
  background-color: rgba(240, 175, 175, .7);
}
#form_container form .mailingmsg {
  display: none;
  font-size: 1.8rem;
  font-weight: 400;
  margin-top: .6em;
}
#form_container form .mailingmsg.success {
  display: block;
  color: #07965C;
}
#form_container form .mailingmsg.fail {
  display: block;
  color: #691414;
}
@media (max-width: 1550px) {
  #form_container form .columns_completion .consent_con {
    background-color: rgba(255, 255, 255, .4);
    padding: .5em;
  }
}
@media (max-width: 1350px) {
  #form_container {
    padding-right: 2em;
    margin: 2em 0;
  }
}
@media (max-width: 1280px) {
  #form_container {
    width: 100%;
    padding: 0 2em;
  }
}
@media (max-width: 900px) {
  #form_container {
    width: 85%;
    padding: 0 2%;
  }
}
@media (max-width: 600px) {
  #form_container {
    width: 100%;
  }
  #form_container form .columns_completion .consent_con {
    width: 100%;
    margin-bottom: 1em;
    background-color: transparent;
    padding: 0;
  }
  #form_container form .columns_completion .btn_con {
    width: 100%;
  }
  #form_container form input[type=submit] {
    padding: 1em 4em;
    width: auto;
  }
}
@media (max-width: 500px) {
  #form_container form .columns_inputs input {
    width: 100%;
  }
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Google Maps On Demand
███████████████████████████████████████████████████████████████████████████████████████████████
*/
.gmod {
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
}
.gmod::after {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  z-index: 0;
}
.gmod .bg_map {
  position: absolute;
  top: -1%;
  left: -1%;
  height: 102%;
  width: 102%;
  background-image: url('../bilder/gmod-bg.png');
  background-repeat: repeat;
  background-position: 0 0;
  filter: blur(.05rem);
}
.gmod .opt_in_banner {
  background-color: rgba(120,120,120,.8);
  color: #fff;
  padding: 1em;
  position: relative;
  z-index: 1;
  top: 50%;
  transform: translateY(-50%);
  text-align: center;
  font-size: .85em;
}
.gmod .opt_in_banner .desc {
  color: #fff;
  text-align: center;
  margin-bottom: 1em;
  line-height: 1.3em;
}
.gmod .opt_in_banner .desc a {
  color: inherit !important;
}
.gmod .opt_in_banner .show_map_btn {
  display: inline-block;
  padding: .6em 1.2em;
  margin-bottom: .9em;
  background-color: #2AA549;
  color: #fff;
  border: none;
  font-size: 1em;
  line-height: 1.2em;
  cursor: pointer;
  border: 1px solid rgba(0,0,0,.3);
}
.gmod .opt_in_banner .show_map_btn:hover {
  background-color: #208039;
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Footer
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#footer {
  background-color: #189680;
  color: #fff;
  text-align: center;
  padding: .7em 2% .6em 2%;
  font-weight: 300;
}
#footer * {
  color: inherit;
}
#footer .separator {
  display: inline-block;
  margin: 0 .4em;
  opacity: .3;
}
#footer .separator::after {
  content: '|';
  display: inline-block;
}
@media (max-width: 600px) {
  #footer .separator {
    display: block;
    height: 0;
    width: 100%;
    margin: 0;
    opacity: 0;
  }
  #footer .separator::after {
    display: none;
  }
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Bildquelle
███████████████████████████████████████████████████████████████████████████████████████████████
*/
.psc {
  position: relative;
}
.pic_source {
  font-family: Arial, Verdana, Helvetica, sans-serif !important;
  position: absolute;
  z-index: 1;
  right: 3px;
  bottom: 3px;
  display: inline-block;
  background-color: #777;
  color: #fff;
  vertical-align: top;
  line-height: 1em;
  padding: 1px 0 0 0;
  font-size: 13px;
  cursor: pointer;
  border-radius: 10px;
  font-weight: 300;
}
.pic_source * {
  color: inherit !important;
  vertical-align: inherit !important;
  line-height: inherit !important;
  font-weight: inherit !important;
  margin: 0 !important;
  font-size: inherit !important;
  text-transform: none !important;
}
.pic_source::before {
  content: '\00A9';
  display: block;
  float: left;
  overflow: hidden;
  width: 1em;
  height: 1em;
  text-align: center;
  font-weight: 100;
  font-size: 1.2em;
  line-height: 1.05em;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
}
.pic_source input[type=checkbox] {
  display: none;
}
.pic_source span {
  display: none;
  padding-top: 1px;
  padding-right: .5em;
  line-height: 1em;
}
.pic_source input[type=checkbox]:checked ~ span {
  display: inline-block;
}
.pic_source input[type=checkbox]:checked ~ span:first-of-type {
  padding-left: .1em;
}