
@font-face {
    font-family: 'Geomanist';
    src: url('../Fonts/geomanist-bold-webfont.woff2') format('woff2'),
    url('../Fonts/geomanist-bold-webfont.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Geomanist';
    src: url('../Fonts/geomanist-medium-webfont.woff2') format('woff2'),
    url('../Fonts/geomanist-medium-webfont.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Geomanist';
    src: url('../Fonts/geomanist-regular-webfont.woff2') format('woff2'),
    url('../Fonts/geomanist-regular-webfont.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

html, body {
    height: 100%;

    background-repeat:repeat-x;
    margin: 0;
    padding: 0;
    font-family: 'Geomanist', arial;
    font-size:18px;
}
html{scroll-behavior:smooth}


table, tr, td, th {
    font-family: 'Geomanist', arial;
    font-size:18px;
}

.text-right,
.align-right {
    text-align:right;

}
.text-center,
.align-center {
    text-align:center;
}
.clear { clear:both; }


:root {
    --color-1:#095538; /* grün dunkel*/
    --color-1-75: rgba(9,85,56,.75);

    --color-2:#84B59F; /*hellgrün*/
    --color-3:#193825; /*dunkle alternative zu 1*/
    --color-4:#FAFAF8; /* hg navi */
    --color-5:#CEE1D8; /* bg navi item */
    --color-6:#E6E4DB; /* bg subnavi item */

    --color-7: #000;
}


* { box-sizing:border-box;    -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale; }

.team .c33,
img,
a:after,
svg,
.top, .top .main, .nav,
.teaser img, input, .nbar, .st0, .st1,
a, li {
    -webkit-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  -moz-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  -o-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  }


img {
  border:0px;
}


.all {
  width:100%;
  min-width:100%;
  padding-left:40px;
  padding-right:40px;
}
.all.content {  scroll-margin-top: 0px; } /* sticky navi offset */

.main {
  max-width:1340px;
  margin: 0px auto;
  padding:0px;
  position:relative;
  text-align: left;
}
.main:after { content:''; display:table; clear:both; }


.cStage {display: flex;margin:0 -15px;flex-wrap: wrap;}
.cStage > div{padding:0 15px;}

.cStage.f-10 {align-items: center}
.cStage.f-11 {align-items: flex-end}

.c33 { -ms-flex: 0 0 33.3333%;flex: 0 0 33.3333%; max-width: 33.3333%; }
.c66 { -ms-flex: 0 0 66.6666%;flex: 0 0 66.6666%; max-width: 66.6666%; }
.c16 { -ms-flex: 0 0 16.6666%;flex: 0 0 16.6666%; max-width: 16.6666%; }
.c30 { -ms-flex: 0 0 30%;flex: 0 0 30%; max-width: 30%; }
.c70 { -ms-flex: 0 0 70%;flex: 0 0 70%; max-width: 70%; }
.c40 { -ms-flex: 0 0 40%;flex: 0 0 40%; max-width: 40%; }
.c20 { -ms-flex: 0 0 20%;flex: 0 0 20%; max-width: 20%;}
.c50 { -ms-flex: 0 0 50%;flex: 0 0 50%; max-width: 50%;}
.c25 { -ms-flex: 0 0 25%;flex: 0 0 25%; max-width: 25%; }
.c75 { -ms-flex: 0 0 75%;flex: 0 0 75%; max-width: 75%; }
.c30 { -ms-flex: 0 0 30%;flex: 0 0 30%; max-width: 30%;}
.c35 { -ms-flex: 0 0 35%;flex: 0 0 35%; max-width: 35%; }
.c60 { -ms-flex: 0 0 60%;flex: 0 0 60%; max-width: 60%; }
.c80 { -ms-flex: 0 0 80%;flex: 0 0 80%; max-width: 80%; }
.c20 { -ms-flex: 0 0 20%;flex: 0 0 20%; max-width: 20%; }


img,video {max-width: 100%; height:auto;}

a + p,
.main * > *:first-child {margin-top:0px;}
.main * > *:last-child {margin-bottom:0px;}


a {color:inherit; text-decoration: none}




a + p,
.main div > *:first-child {margin-top:0px;}


.btn {display: inline-block; color:var(--color-7); font-size:20px; background:var(--color-2); padding:12px 20px 12px 30px; border-radius: 30px; border-top-right-radius: 0}
.btn:after {content:''; margin-left:20px; width: 18px; height:18px; display: inline-block; vertical-align: middle; background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="18.436" height="18.436" viewBox="0 0 18.436 18.436"><defs><clipPath id="a"><path fill="none" stroke="%23193825" stroke-width="1.5" d="M0 0h18.436v18.436H0z" data-name="Rechteck 38"/></clipPath></defs><g data-name="Gruppe 44"><g fill="none" stroke="%23193825" stroke-miterlimit="10" stroke-width="1.5" clip-path="url(%23a)" data-name="Gruppe maskieren 43"><path d="M.681 17.755 17.472.964" data-name="Linie 4"/><path d="M.681.964h16.791v16.791" data-name="Pfad 65"/></g></g></svg>') }
.btn:hover:after {transform: rotate(45deg)}
.btn:hover {background:var(--color-5);}

.btn[href^="tel:"]:after  { background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 22 22"><defs><clipPath id="a"><path fill="none" stroke="%23193825" stroke-width="1.5" d="M-1-1h22v22H-1z" data-name="Rechteck 200"/></clipPath></defs><g clip-path="url(%23a)" data-name="Gruppe 221" transform="translate(1 1)"><path fill="none" stroke="%23193825" stroke-miterlimit="10" stroke-width="1.5" d="m10.657 17.037 1.827-1.905 1.373-1.431.547-.592 3.576.74 1.048.216v4.892a12.2 12.2 0 0 1-7.106-1.259c-.426-.22-.854-.421-1.264-.66a15 15 0 0 1-.957-.592 22 22 0 0 1-3.4-2.767 22 22 0 0 1-2.767-3.4c-.216-.319-.41-.638-.592-.957-.239-.41-.441-.839-.66-1.264A12.2 12.2 0 0 1 1.017.946h4.892l.216 1.048.74 3.576-.592.547-1.427 1.372-1.91 1.827" data-name="Pfad 481"/></g></svg>') no-repeat; background-size:100% auto}

h1,h2 {font-size:50px; line-height:1.1em; text-transform: uppercase}

.header {position:relative;  overflow: hidden; }
.header .main {border-radius:30px; overflow: hidden;}
.header img {display: block;}
.header .overlay {position: absolute;  color:#fff; padding:40px; display: flex;    justify-content: flex-start;align-items: flex-end;top:0; left:0; width: 100%; height:100%; background: linear-gradient(180deg,rgba(0, 0, 0, 0) 0%, var(--color-1-75) 100%);}
.header h1 {font-size:64px; margin:0; max-width: 65%}
.header .btn {position:absolute; right:40px; bottom:40px;}


.top {position:relative; z-index: 2;}
.top .main {padding:30px 0; display: flex;    justify-content: space-between;    align-items: center;}
.top .main:after {display: none;}
.top .main ul {margin:0; padding:0; list-style-type: none;    display: flex;align-items: center;}
.top .main ul li {display: inline-block}
.top .main ul li + li {margin-left:20px;}
.top .main ul li.mnav {transform:scale(.8); }

#menu_open { font-size:19px; border:0; background:none; text-align: center; text-transform: uppercase; padding:20px 15px 15px 15px; border-radius: 15px; display: block; cursor: pointer; position: relative; z-index: 1}
#menu_open > span {width: 60px;height:40px; display: block; margin-bottom:0px;}
#menu_open > span > span {position: relative; display: block; top: 0;height: 3px;background-color: var(--color-1);margin-bottom: 10px;transition: 0.3s ease transform, 0.3s ease top, 0.3s ease width, 0.3s ease right;}
#menu_open > span > span:first-child {transform-origin: 0;}
#menu_open > span > span:last-child {margin-bottom: 0;transform-origin: 60px;}
#menu_open > span > span:nth-child(2) {right: 0px; width: 60px;}
.showNav #menu_open > span > span:first-child {top: -6px;left:8px;transform: rotateZ(45deg);}
.showNav #menu_open > span > span:last-child {top: 10px;right:10px;transform: rotateZ(45deg);}
.showNav #menu_open > span > span:nth-child(2) {width: 60px;top: 2px;right: 0px;transform: rotateZ(-45deg);}

nav#menu > ul > li.showSub > ul,
nav#menu > ul > li > ul,
.showNav nav#menu,
nav#menu {
    -webkit-transition: all 500ms ease;
    -moz-transition: all 500ms ease;
    -o-transition: all 500ms ease;
    transition: all 500ms ease;
}

nav#menu > ul > li > ul > li > ul {
    -webkit-transition: all 500ms ease;
    -moz-transition: all 500ms ease;
    -o-transition: all 500ms ease;
    transition: all 500ms ease;

    padding-bottom:5px;
}
nav#menu {background:var(--color-4); font-size:20px; color:var(--color-1); padding:35px; border-radius: 30px; border-top-left-radius: 0; opacity: 0; overflow: scroll; margin:unset; visibility: hidden; transform:translate(0,-200%); position: absolute; z-index: 1; top:135px; width:610px; height:810px;    right: calc((100% - 1340px) / 2); }

.showNav nav#menu {visibility: visible;opacity: 1; transform:translate(0,0);}

nav#menu ul {margin:0; padding:0 0 0 150px; font-weight:400;list-style-type: none;}

nav#menu > ul > li {}
nav#menu > ul > li > ul > li + li,
nav#menu > ul > li + li {margin-top:25px;}

nav#menu > ul > li > ul > li > span,
nav#menu > ul > li > span {display: block;  position: relative; color:var(--n-color);}

nav#menu > ul > li > ul > li > span > a.page,
nav#menu > ul > li > span > a.page {display: block; font-size:20px; background:var(--color-5); padding:10px 50px 10px 25px; border-radius: 20px; border-top-right-radius: 0 }


nav#menu > ul > li.act > span > a.page,
nav#menu > ul > li:hover > span > a.page {background:var(--color-6);}


nav#menu > ul > li > ul > li  > span > button.showSub,
nav#menu > ul > li  > span > button.showSub {display: inline-block; border:0; cursor:pointer; position: absolute; right:0; top:0; vertical-align: middle; border-radius: 20px; border-top-right-radius: 0; width:45px; height:100%; background:var(--color-2);     display: flex;align-items: center;justify-content: center;}

nav#menu > ul > li > ul {position: absolute; background:var(--color-4); visibility: hidden; z-index: 1; transform:translate(120%,0); top:0; left:0;     width: 100%;height: 100%;overflow: hidden;margin: unset;border-radius: 30px;padding: 35px 35px 35px 185px;}

nav#menu > ul > li.showSub > ul { transform:translate(0,0); visibility: visible; }
nav#menu > ul > li.showSub > a.showSub {background:var(--color-2-75);}

nav#menu > ul > li > ul > li  > span > button.showSub svg,
nav#menu > ul > li  > span > button.showSub svg {transform:rotate(90deg)}

nav#menu > ul > li > ul > li  > span > button.showSub:hover svg,
nav#menu > ul > li  > span > button.showSub:hover svg,
nav#menu > ul > li > ul > li  > span > button.showSub:focus svg,
nav#menu > ul > li  > span > button.showSub:focus svg {transform:rotate(45deg)}

nav#menu > ul > li > ul > li > span > button.showSub {display: none}

nav#menu > ul > li > ul > li  > span > button.showSub:hover,
nav#menu > ul > li  > span > button.showSub:hover,
nav#menu > ul > li > ul > li  > span > button.showSub:focus,
nav#menu > ul > li  > span > button.showSub:focus { }

nav#menu > ul > li > ul > li {display: block;}


nav#menu > ul > li > ul > li.back button {display:flex;  cursor:pointer; color:inherit; border:0; background:none; font-family: inherit; font-size:inherit;  align-items: center; }
nav#menu > ul > li > ul > li.back svg {display: inline-block; width:45px; transform:rotate(-90deg); vertical-align: middle;}
nav#menu > ul > li > ul > li.back:hover svg,
nav#menu > ul > li > ul > li.back:focus-within svg {transform:rotate(-45deg);}

nav#menu > ul > li > ul > li.back span {display: inline-block; margin-right:15px; background:var(--color-2); width:70px; height:70px; border-radius: 50%; border-top-right-radius: 0; display: flex;    justify-content: center;align-items: center;}

nav#menu > ul > li > ul > li > span > a.page {display: block; background:var(--color-6); color:var(--color-1); }

nav#menu > ul > li > ul > li.act > span > a.page,
nav#menu > ul > li > ul > li:hover > span > a.page {background:var(--color-5);}

/*
nav#menu > ul > li > ul > li.Selected > span > a.page,
nav#menu > ul > li > ul > li:hover > span > a.page,
nav#menu > ul > li > ul > li:focus-within > span > a.page,
nav#menu > ul > li > ul > li > ul > li.Selected > span > a.page,
nav#menu > ul > li > ul > li > ul > li:hover > span > a.page,
nav#menu > ul > li > ul > li > ul > li:focus-within > span > a.page {color:var(--n-color);}
*/


nav#menu > ul > li > ul > li > ul > li > span > a {display: block;padding:5px 15px 5px 25px; font-size:95% }

nav#menu li.contact {border-bottom:0 !important; padding:20px 0; text-transform: uppercase; font-size:95%;}
nav#menu li li.contact {padding:10px;}
nav#menu li.contact span {display: flex; margin-top:15px;    justify-content: space-between; }
nav#menu li.contact span a {border:1px solid var(--color-1-75); text-align: center; width:45px; height:45px; padding:10px; display: inline-block; border-radius: 50%;}
nav#menu li.contact span a svg {width:20px; height:20px;  }

.content a:not(.btn):hover {opacity: .6}

.content.image {position:relative; padding-top:75px; padding-bottom:75px}
.content.image .main {border-radius:30px; overflow: hidden; }
.content.image .main > picture > img {position:absolute; left:0; top:0; object-fit:cover; width: 100%; height:100%;}
.content.image .main .overlay {background:var(--color-1-75); padding:30px 40px; color:#fff; position:relative;}

.content li,
.content p {line-height:1.5em;}

.frame + .frame {margin-top:30px;}

.content .main {padding:75px 0;}
.content.image .main {padding:0;}


footer .c75 {padding-left:25%}
footer .frame-type-menu_subpages ul {margin:0; text-align:right; padding:0; list-style-type: none;}
footer .frame-type-menu_subpages ul li {display: inline-block}
footer .frame-type-menu_subpages ul li + li {margin-left:20px}

.ce-gallery[data-ce-columns="3"] .ce-column {
    width:calc(33.3333% - 15px)
}
.ce-gallery[data-ce-columns="2"] .ce-column {
    width:calc(50% - 15px)
}

@media (max-width: 1100px) {

    .ce-textpic.ce-intext .ce-gallery {max-width:50%;}
}

/* Only Phones */
@media (max-width: 900px) {

    .c33,
    .c66,
    .c16,
    .c30,
    .c70,
    .c40,
    .c20,
    .c50,
    .c80,
    .c25,
    .c75,
    .c30,
    .c35,
    .c60 { -ms-flex: 0 0 100%;flex: 0 0 100%; max-width: 100%; }

    .cStage > div + div {margin-top:30px;}
    .cStage.l-99 {flex-direction: column-reverse}

}

@media (max-width: 650px) {

    .content .ce-left .ce-gallery,
    .content .ce-right .ce-gallery {
        float: none;
    }
    .content .ce-intext.ce-right .ce-gallery {
        margin-left: 0px;
    }
    .content .ce-intext.ce-left .ce-gallery {
        margin-right: 0px;
    }
    .ce-textpic.ce-intext .ce-gallery {max-width:100%;}

	.c30, .c35 {width:100%; padding-bottom:20px;}
}




/* Formulare */


.frame-type-form_formframework p { font-size:90%; }

input[type="checkbox"] { margin-right:15px; }
.control-label { display:none; }
.form-group input[type="text"],
.form-group textarea,
.csc-form-element-textline input {
  font-family:inherit;
  font-size:inherit;
  color: var(--color-1);
  background:#fff;
  width:100%;
  border:1px solid var(--color-1);
  padding:8px 15px;

  margin-bottom:6px;
}
.form-group input[type="text"]:focus,
.form-group textarea:focus {
  background:#222e59;
}


form .row {display: flex; flex-wrap: wrap; margin:0 -10px;}
form .row .col-1 { --cols: calc( 100% / 12 * 1); }
form .row .col-2 { --cols: calc( 100% / 12 * 2); }
form .row .col-3 { --cols: calc( 100% / 12 * 3); }
form .row .col-4 { --cols: calc( 100% / 12 * 4); }
form .row .col-5 { --cols: calc( 100% / 12 * 5); }
form .row .col-6 { --cols: calc( 100% / 12 * 6); }
form .row .col-7 { --cols: calc( 100% / 12 * 7); }
form .row .col-8 { --cols: calc( 100% / 12 * 8); }
form .row .col-9 { --cols: calc( 100% / 12 * 9); }
form .row .col-10 { --cols: calc( 100% / 12 * 10); }
form .row .col-11 { --cols: calc( 100% / 12 * 11); }
form .row .col-12 { --cols: calc( 100% / 12 * 12); }
form .row > div {-ms-flex: 0 0 var(--cols);flex: 0 0 var(--cols); max-width: var(--cols); padding:0 10px;}

@media (max-width: 1000px) {
    form .row > div {-ms-flex: 0 0 100%;flex: 0 0 100%; max-width: 100%; padding:0 10px;}
}



/* The container */
.form-check-label {
  display: block;
  position: relative;
  padding-left: 35px;
  margin-bottom: 12px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* Hide the browser's default checkbox */
.form-check-label input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

/* Create a custom checkbox */
.form-check-label span {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background-color: transparent;
  border:2px solid  var(--color-1);
}
.form-check-label span.required { position:relative;width:auto; height:auto; border:0px; }

/* On mouse-over, add a grey background color */
.form-check-label:hover input ~ span {
  background-color:  var(--color-1);
}

/* When the checkbox is checked, add a blue background */
.form-check-label input:checked ~ span {
  background-color:  var(--color-1);
}

/* Create the checkmark/indicator (hidden when not checked) */
span:after {
  content: "";
  position: absolute;
  display: none;
}

/* Show the checkmark when checked */
.form-check-label input:checked ~ span:after {
  display: block;
}

/* Style the checkmark/indicator */
.form-check-label span:after {
  left: 6px;
  top: 3px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

