@charset "UTF-8";
* + .uk-h1,
* + .uk-h2,
* + .uk-h3,
* + .uk-h4,
* + .uk-h5,
* + .uk-h6,
* + h1,
* + h2,
* + h3,
* + h4,
* + h5,
* + h6 {
  margin-top: 4rem;
}

.uk-h1,
.uk-h2,
.uk-h3,
.uk-h4,
.uk-h5,
.uk-h6,
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0 0 0.5rem 0;
}

* + .uk-grid-margin,
.uk-grid + .uk-grid,
.uk-grid > .uk-grid-margin {
  margin-top: 0;
}

* + address,
* + dl,
* + fieldset,
* + figure,
* + ol,
* + p,
* + pre,
* + ul {
  margin-top: 0;
}

address,
dl,
fieldset,
figure,
ol,
p,
pre,
ul {
  margin: 0 0 0 0;
}

ol,
ul {
  padding-left: 0;
}

/*uk-width-1-1@s schon bei 640px */
@media only screen and (max-width: 26.25em) {
  .uk-width-1-2 {
    width: 100% !important;
  }
  .uk-child-width-1-2 > * {
    width: 100% !important;
  }
}
/*globals*/
/*
0 - 600px:      Phone
600 - 900px:    Tablet portrait
900 - 1200px:   Tablet landscape
[1200 - 1800] is where our normal styles apply
1800px + :      Big desktop
$breakpoint arguement choices:
- phone
- tab-port
- tab-land
- big-desktop
ORDER: Base + typography > general layout + grid > page layout > components
1em = 16px
*/
*,
*::after,
*::before {
  margin: 0;
  padding: 0;
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
}

html {
  height: 100%;
  font-size: 0.9rem;
  background-color: #ededed;
}
@media only screen and (max-width: 75em) {
  html {
    font-size: 0.8rem;
  }
}
@media only screen and (max-width: 60em) {
  html {
    ont-size: 0.75rem;
  }
}
@media only screen and (max-width: 48em) {
  html {
    ont-size: 0.7rem;
  }
}
body {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  height: 100%;
  display: -ms-grid;
  display: grid;
  -ms-grid-rows: 1fr auto 1fr 1fr;
  grid-template-rows: 1fr auto 1fr 1fr;
  color: #4a4a4a;
}
@media only screen and (max-width: 60em) {
  body {
    padding: 0;
  }
}

/*sticky footer*/
.wrapper::after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}

/*footer{

}*/
.uk-container {
  max-width: 78em;
}
.uk-container.no-padding {
  padding-left: 0px !important;
  padding-right: 0px !important;
}

/*********************************************************************
 * Accessibility helpers
 *
 */
/* Hide visually, but remain approachable for screenreader */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  white-space: nowrap;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  border: 0;
}

/* Show bypass link on hover */
.element-focusable:focus {
  clip: auto;
  overflow: visible;
  height: auto;
}

a.feel {
  position: fixed;
  right: 0;
  bottom: 0;
  width: 100%;
  max-width: 200px;
  text-align: center;
  padding: 1rem;
  background-color: red;
  opacity: 1;
  color: #fff !important;
}
a.feel:hover {
  color: #333;
}

/* Sample styling for bypass link */
.bypass-to-main:focus {
  top: 0;
  left: 0;
  width: 100%;
  height: 40px;
  line-height: 40px;
  text-align: center;
  background: #333;
  color: #fff;
}

/*********************************************************************
 * design helpers
 *
 */
.block {
  display: block;
}

.flex-end {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.grid {
  display: -ms-grid;
  display: grid;
}

.no-list {
  list-style: none;
}

.container-iframe {
  position: relative;
  overflow: hidden;
  width: 100%;
  padding-top: 56.25%; /* 16:9 Aspect Ratio (divide 9 by 16 = 0.5625) */
}

/* Then style the iframe to fit in the container div with full height and width */
.responsive-iframe {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
}

a {
  color: #759646;
}

a:hover {
  color: #666 !important;
  text-decoration: none;
}

@font-face {
  font-family: "alte_din_1451_mittelschriftRg";
  src: url("/site/templates/assets/fonts/din1451alt/din1451alt-webfont.woff2") format("woff2"), url("/site/templates/assets/fonts/din1451alt/din1451alt-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}
body {
  font-family: "alte_din_1451_mittelschriftRg";
}

/*typo*/
h1,
h2 {
  font-family: "alte_din_1451_mittelschriftRg";
  text-align: center;
  font-size: 2.5rem;
  line-height: 1.2;
  letter-spacing: 0.2rem;
  margin: 0 0 35px 0;
  text-transform: uppercase;
  color: #777;
}

.subheadline {
  text-align: center;
  font-size: 2.5rem;
  line-height: 1.2;
  color: #777;
  letter-spacing: 0.2rem;
}

h1 span::after {
  content: "®";
}

h2 {
  font-family: "alte_din_1451_mittelschriftRg";
  text-transform: uppercase;
  margin: 20px 0 10px 0;
  font-size: 1.5rem;
  line-height: 1.2;
  color: #111;
}
h2.smaller {
  font-size: 1.15rem;
  letter-spacing: 0;
}

h3,
h4 {
  font-family: "alte_din_1451_mittelschriftRg";
  text-align: center;
  text-transform: uppercase;
  margin-bottom: 10px;
  color: #111;
}

p,
#main li {
  font-family: "alte_din_1451_mittelschriftRg";
  font-size: 1.3rem;
}

.text p + p {
  margin-bottom: 2rem;
}
.text p + ul {
  margin-top: 0;
  margin-bottom: 2rem;
}
.text ul {
  list-style: disc;
}
@media only screen and (max-width: 40em) {
  .text p,
  .text ul {
    -ms-hyphens: auto;
        hyphens: auto;
  }
}

#main .body li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-left: 0;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
  line-height: 1.3;
}
#main .body li:before {
  content: "";
  border-color: transparent #111;
  border-style: solid;
  border-width: 0.35em 0 0.35em 0.45em;
  display: block;
  height: 0;
  width: 0;
  margin-top: 7px;
  position: relative;
}

sup,
sub {
  position: relative;
  vertical-align: baseline;
  top: -0.4em;
}

sub {
  top: 0.4em;
}

/*key features*/
/*products*/
.left {
  text-align: left;
}

.text-shadow, h1,
h2 {
  -webkit-text-shadow: 0px 0px 0 #fff;
  -moz-text-shadow: 0px 0px 0 #fff;
  text-shadow: 0px 0px 0 #fff;
  /* @include box-shadow();*/
}

.center {
  text-align: center;
}

.two_col {
  -moz-column-count: 2;
  -moz-column-gap: 35px;
  -webkit-column-count: 2;
  -webkit-column-gap: 35px;
}

/*********************************************************************
 * design helpers
 *
 */
.block {
  display: block;
}

.flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.flex.row-reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}
@media only screen and (max-width: 48em) {
  .flex {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .flex.row-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.flex img {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  height: -webkit-max-content;
  height: -moz-max-content;
  height: max-content;
}
.flex .flex1 {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.flex-end {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.h--noflex {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-left: -40px;
}
@media only screen and (max-width: 75em) {
  .h--noflex {
    margin-left: -30px;
  }
}
@media only screen and (max-width: 48em) {
  .h--noflex {
    margin-left: 0;
  }
}
.h--noflex > * {
  width: calc(50% - 40px);
  padding-left: 40px;
}
@media only screen and (max-width: 75em) {
  .h--noflex > * {
    width: calc(50% - 30px);
    padding-left: 30px;
  }
}
@media only screen and (max-width: 48em) {
  .h--noflex > * {
    width: 100%;
    padding-left: 0;
  }
}

.center {
  text-align: center;
}

.grid {
  display: -ms-grid;
  display: grid;
}

.no-list,
.no-list ul li {
  list-style: none;
}
.no-list .uk-accordion-content ul,
.no-list .uk-accordion-content ul li,
.no-list ul li .uk-accordion-content ul,
.no-list ul li .uk-accordion-content ul li {
  list-style: disc;
}
.no-list::before,
.no-list ul li::before {
  content: none !important;
}

.container-iframe {
  position: relative;
  overflow: hidden;
  width: 100%;
  padding-top: 56.25%;
  /* 16:9 Aspect Ratio (divide 9 by 16 = 0.5625) */
}

/* Then style the iframe to fit in the container div with full height and width */
.responsive-iframe {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
}

:root {
  --global-width50: 50px;
  --global-unit1: 1rem;
  --global-unit2: 2rem;
  --global-unit3: 3rem;
  --global-unit4: 4rem;
  --global-unit5: 5rem;
  --global-unit6: 6rem;
  --global-unit7: 7rem;
}

@media only screen and (max-width: 48em) {
  :root {
    --global-width50: 25px;
  }
}
@media only screen and (max-width: 40em) {
  :root {
    --global-width50: 0px;
  }
}
.mt1 {
  margin-top: var(--global-unit1);
}

.mt2 {
  margin-top: var(--global-unit2);
}

.mt3 {
  margin-top: var(--global-unit3);
}

.mt4 {
  margin-top: var(--global-unit4);
}

.mt5 {
  margin-top: var(--global-unit5);
}

.mt6 {
  margin-top: var(--global-unit6);
}

.mt7 {
  margin-top: var(--global-unit7);
}

.mb1 {
  margin-bottom: var(--global-unit1);
}

.mb2 {
  margin-bottom: var(--global-unit2);
}

.mb3 {
  margin-bottom: var(--global-unit3);
}

.mb4 {
  margin-bottom: var(--global-unit4);
}

.mb5 {
  margin-bottom: var(--global-unit5);
}

.mb6 {
  margin-bottom: var(--global-unit6);
}

.mb7 {
  margin-bottom: var(--global-unit7);
}

:root {
  --global-width50: 50px;
  --global-unit1: 1rem;
  --global-unit2: 2rem;
  --global-unit3: 3rem;
  --global-unit4: 4rem;
  --global-unit5: 5rem;
  --global-unit6: 6rem;
  --global-unit7: 7rem;
}

@media only screen and (max-width: 48em) {
  :root {
    --global-width50: 25px;
  }
}
@media only screen and (max-width: 40em) {
  :root {
    --global-width50: 0px;
  }
}
.pt1 {
  padding-top: var(--global-unit1);
}

.pt2 {
  padding-top: var(--global-unit2);
}

.pt3 {
  padding-top: var(--global-unit3);
}

.pt4 {
  padding-top: var(--global-unit4);
}

.pt5 {
  padding-top: var(--global-unit5);
}

.pt6 {
  padding-top: var(--global-unit6);
}

.pt7 {
  padding-top: var(--global-unit7);
}

.pb1 {
  padding-bottom: var(--global-unit1);
}

.pb2 {
  padding-bottom: var(--global-unit2);
}

.pb3 {
  padding-bottom: var(--global-unit3);
}

.pb4 {
  padding-bottom: var(--global-unit4);
}

.pb5 {
  padding-bottom: var(--global-unit5);
}

.pb6 {
  padding-bottom: var(--global-unit6);
}

.pb7 {
  padding-bottom: var(--global-unit7);
}

input.text,
input[type=text],
input[type=button],
input[type=submit],
.input-checkbox {
  -webkit-appearance: none;
  -webkit-border-radius: 0;
}

form#FormBuilder_kontakt {
  font-size: 1.6rem;
}
form#FormBuilder_kontakt > div.Inputfields {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 2rem;
}
form#FormBuilder_kontakt .InputfieldSubmit button {
  padding: 5px 10px;
  border: none;
  font-size: 1.2rem;
  background-color: #111;
  color: #fff;
  cursor: pointer;
  font-family: "alte_din_1451_mittelschriftRg";
}
form#FormBuilder_kontakt label {
  font-size: 1.15rem;
}
form#FormBuilder_kontakt input,
form#FormBuilder_kontakt textarea {
  border: 1px solid #111;
  width: 100%;
  padding: 5px;
  font-size: 1.2rem;
  font-family: "alte_din_1451_mittelschriftRg";
}
form#FormBuilder_kontakt .Inputfield_spider,
form#FormBuilder_kontakt .Inputfield_your_message {
  display: none;
}
form#FormBuilder_kontakt #Inputfield_emailbereich legend,
form#FormBuilder_kontakt #Inputfield_emailbereich .InputfieldRadios span,
form#FormBuilder_kontakt #Inputfield_telefonbereich legend,
form#FormBuilder_kontakt #Inputfield_telefonbereich .InputfieldRadios span {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  white-space: nowrap;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  border: 0;
}
form#FormBuilder_kontakt #Inputfield_emailbereich input[type=radio],
form#FormBuilder_kontakt #Inputfield_telefonbereich input[type=radio] {
  margin-right: 1rem;
  width: 15px;
  height: 15px;
  border: 1px solid #111;
}
form#FormBuilder_kontakt .InputfieldRadios.radiowrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5rem;
  margin-top: 5px;
}
form#FormBuilder_kontakt .uk-form-stacked .uk-form-label {
  margin-bottom: 0 !important;
}
form#FormBuilder_kontakt .short-input input {
  max-width: 6rem;
}

.FormBuilder-kontakt .uk-alert-success {
  background-color: transparent;
  color: #111;
}

aside form.uk-search {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin: 0 auto;
  width: 70%;
}
aside form.uk-search .uk-search-icon {
  color: #fff;
}
aside form.uk-search input.uk-search-input {
  color: #fff !important;
  font-size: 1.7rem;
}

/*search form*/
div.search {
  max-width: 250px;
  margin-top: 10px;
}

.form-search,
.mod_search {
  /*@supports (display: grid) {
  	.formbody{
  		display: grid;
  		grid-template-columns: 185px 25px;
     	}
  }*/
}
.form-search .formbody,
.mod_search .formbody {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.form-search .formbody > div:first-child,
.mod_search .formbody > div:first-child {
  margin: 0 20px 0 0;
}
.form-search input.text,
.mod_search input.text {
  border: 1px solid #999;
  border-radius: 7px;
  padding: 0 4px;
  width: 100%;
  max-width: 170px;
  font-size: 1rem;
  color: #555;
  height: 20px;
}
.form-search input.submit,
.mod_search input.submit {
  font-size: 0;
  width: 20px;
  height: 20px;
  background: transparent url("../img/lupe.png") 0 0;
  border: none;
  cursor: pointer;
}
.form-search .radio_container,
.mod_search .radio_container {
  display: none;
}
.form-search p.header,
.mod_search p.header {
  margin: 20px 0;
}
.form-search h3,
.mod_search h3 {
  text-align: left;
}
.form-search > div,
.mod_search > div {
  margin-bottom: 35px;
}

header {
  position: relative;
}
header .image_header {
  background: #e0e0e0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
header .flex {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

.search-language {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

a.logo {
  padding: 20px 0;
}
a.logo :hover {
  border-bottom: none;
}
@media only screen and (max-width: 48em) {
  a.logo {
    max-width: 300px;
  }
}

/*4 hamburger icon*/
#hamburger,
.menu {
  z-index: 100;
  right: 1rem;
  padding: 0;
  width: 45px !important;
  height: 37px !important;
  font-size: 0;
  line-height: 0;
  border: none;
  background-color: transparent;
  cursor: pointer;
}
#hamburger span,
.menu span {
  margin: 0 auto;
  width: 45px;
  height: 37px;
  display: block;
  background-image: url(../img/trigger.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

footer {
  width: 100%;
  clear: both;
  background-color: #fff;
  padding-top: 25px;
}
footer li {
  font-size: 1.2rem;
}
footer li:first-child {
  text-align: right;
}
@media only screen and (max-width: 40em) {
  footer li:first-child {
    text-align: center;
  }
}
@media only screen and (max-width: 40em) {
  footer li {
    text-align: center;
  }
}
footer .toplink {
  padding: 2rem 0;
}
footer .toplink a {
  font-size: 0;
  display: inline-block;
  width: 30px;
  height: 16px;
  background: transparent url("../img/nav_pfeil_top.png") right 0 no-repeat;
}

#toggle-sidebar {
  background-color: #759646;
}

nav.nav_main {
  padding-top: 2rem;
  padding-bottom: 3rem;
}
nav.nav_main ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 3rem;
  letter-spacing: 0.1rem;
  font-size: 2rem;
}
nav.nav_main ul a {
  color: #759646;
}
nav.nav_main ul a:hover {
  color: darken #759646, 5%;
  text-decoration: none;
}
nav.nav_main ul span.active {
  color: darken #4a4a4a, 10%;
}

.language-switcher {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 0.5rem;
  font-size: 1.6rem;
}

nav.nav_overlay ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 20px;
  font-size: 2rem;
  margin-top: 3rem;
  margin-bottom: 3rem;
}
nav.nav_overlay .language-switcher {
  font-size: 2rem;
  gap: 20px;
}

.metawrapper {
  background-color: #ededed;
  padding: 0 0 5vw 0;
}

#wrapper {
  padding-bottom: 3vw;
}

.rep_item figure {
  margin-bottom: 1rem;
}

/*kontakt form*/
.contact .widget {
  padding: 0 0 30px 0;
}
.contact label {
  font-size: 1.2rem;
}
.contact input,
.contact textarea {
  background-color: #fff;
  width: 90%;
  display: inline-block;
  padding: 3px 6px;
  border: 1px solid #777;
  line-height: 2rem;
  font-size: 1.2rem;
  color: #444;
}
.contact input[type=submit],
.contact .button {
  display: inline-block;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  border: none;
  width: 100%;
  max-width: 200px;
}
.contact input.captcha {
  width: 30px;
}
.contact .captcha_text {
  font-size: 1.2rem;
  padding-left: 10px;
}
.contact fieldset > div {
  float: left;
  width: 50%;
}
.contact .widget-radio fieldset {
  margin-top: 25px;
}
.contact .widget-radio input {
  margin-top: 3px;
  width: 10%;
  float: left;
}
.contact .widget-radio label {
  float: left;
  width: 90%;
}