.mobile_menu{position:fixed;z-index:100;display:none}.mobile_menu .inner{height:100%;background:#000;overflow-y:scroll}.mobile_menu.active.position_left{box-shadow:2px 0 5px 0 rgba(0,0,0,.5)}.mobile_menu.active.position_top{box-shadow:0 2px 5px 0 rgba(0,0,0,.5)}.mobile_menu.active.position_right{box-shadow:-2px 0 5px 0 rgba(0,0,0,.5)}.mobile_menu.active.position_bottom{box-shadow:0 -2px 5px 0 rgba(0,0,0,.5)}.mobile_menu.active.no_shadow{box-shadow:none!important}.mobile_menu_trigger{display:none}.mobile_menu_wrapper{position:relative;width:100%;overflow:hidden}.mobile_menu_overlay{position:fixed;top:0;left:0;width:100%;height:100vh;z-index:99}.mobile_menu_overlay.background{background:rgba(0,0,0,.5)}.mobile_menu li.submenu_hide>ul{display:none}.mobile_menu li.submenu_show>ul{display:block}body.ie8 .mobile_menu,body.ie8 .mobile_menu_trigger,body.ie9 .mobile_menu,body.ie9 .mobile_menu_trigger{display:none!important}
.cc-head>*:first-child{margin-top:0}.cc-head>*:last-child{margin-bottom:15px}.contao-cookiebar{--ccb-backdrop: rgba(0, 0, 0, .75);--ccb-anim-duration: .5s;--ccb-checked-clr: #399d32;--ccb-checked-bg: #dcf3db;--ccb-unchecked-clr: #9c9b99;--ccb-unchecked-bg: #fff;--ccb-disabled-clr: #c8c7c5;--ccb-disabled-bg: #f4f4f4;--ccb-focus-clr: #00a4f4;position:fixed;inset:0;z-index:9999;display:flex;align-items:var(--ccb-align, center);justify-content:var(--ccb-justify, center);letter-spacing:0;padding:15px;max-height:100dvh;box-sizing:border-box;pointer-events:none;overflow:hidden;color:var(--ccb-clr, #444)}.contao-cookiebar *{box-sizing:border-box}.contao-cookiebar p{color:var(--ccb-text, #868686);line-height:1.4}.contao-cookiebar label{position:relative;display:block;padding:8px 13px 8px 0;line-height:1.2rem}.contao-cookiebar label.group{font-weight:600}.contao-cookiebar input{position:absolute;width:1px;height:1px;outline:0 none;opacity:0}.contao-cookiebar input+label{padding:8px 13px 8px 45px;cursor:pointer}.contao-cookiebar input+label:before,.contao-cookiebar input+label:after{content:"";position:absolute;border-radius:10px}.contao-cookiebar input+label:before{top:7px;left:0;width:35px;height:18px;margin:0;box-sizing:content-box;background:var(--ccb-unchecked-bg);border:1px solid var(--ccb-unchecked-clr);transition:border-color .2s}.contao-cookiebar input+label:after{display:block;top:11px;left:4px;width:12px;height:12px;background:var(--ccb-unchecked-clr);transition:background .2s,margin-left .2s,padding .2s}.contao-cookiebar input+label:active:after{padding-left:5px}.contao-cookiebar input.cc-group-half+label:after{background:linear-gradient(to right, var(--ccb-unchecked-clr) 0%, var(--ccb-unchecked-clr) 50%, var(--ccb-checked-clr) 50%, var(--ccb-checked-clr) 100%)}.contao-cookiebar input:checked+label:after{background:var(--ccb-checked-clr);margin-left:17px}.contao-cookiebar input:checked+label:active:after{margin-left:12px}.contao-cookiebar input:checked+label:before{background:var(--ccb-checked-bg);border-color:var(--ccb-checked-clr)}.contao-cookiebar input:disabled+label{pointer-events:none}.contao-cookiebar input:disabled+label:after{background:var(--ccb-disabled-clr)}.contao-cookiebar input:disabled+label:before{background:var(--ccb-disabled-bg);border-color:var(--ccb-disabled-clr)}.contao-cookiebar input:focus-visible:not(.cc-hide-focus)+label:before{outline:3px dashed var(--ccb-focus-clr);outline-offset:2px}.contao-cookiebar .cc-btn{display:inline-block;cursor:pointer;width:100%;padding:8px 14px;margin-bottom:8px;font-size:15px;outline:0 none;border:1px solid var(--ccb-btn-bdr, #cfcfcf);border-radius:4px;color:var(--ccb-btn-clr, #444);background:var(--ccb-btn-bg, #f5f5f5)}.contao-cookiebar .cc-btn:hover,.contao-cookiebar .cc-btn:focus{background:var(--ccb-btn-bg-hvr, #ececec)}.contao-cookiebar .cc-btn:last-child{margin-bottom:0}.contao-cookiebar .grayscale{--ccb-btn-bg: #f1efef;--ccb-btn-bg-hvr: #ececec}.contao-cookiebar .grayscale .success{--ccb-btn-bg: #fbfbfb;--ccb-btn-bg-hvr: #f7f7f7}.contao-cookiebar .highlight .success{--ccb-btn-bg: #4e9e3e;--ccb-btn-bg-hvr: #4c933f;--ccb-btn-bdr: #3e7830;--ccb-btn-clr: #fff}.cc-focus:not(.cc-hide-focus):focus-visible{outline:3px dashed var(--ccb-focus-clr);outline-offset:-3px}.cc-invisible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;float:left}.cc-inner{display:inline-block;overflow-y:auto;max-height:100%;max-width:100%;padding:23px;border-radius:3px;opacity:0;pointer-events:none;visibility:hidden;font-size:1rem;text-align:left;background:var(--ccb-bg, #fff);box-shadow:var(--ccb-box-shadow, rgba(99, 99, 99, 0.2)) 0 2px 8px 0;animation:var(--ccb-anim, cookiebar-middle-in) var(--ccb-anim-duration) ease-in-out forwards}.cc-group{position:relative;border:1px solid var(--ccb-bdr, #d0d0d0);border-radius:5px;margin-bottom:10px}.cc-cookie-info{font-size:.875rem;background:var(--ccb-info-bg, #fff);border:1px solid var(--ccb-info-bdr, #efefef);padding:10px;border-radius:5px}.cc-cookie-info>div>span{font-weight:600}.cc-cookie-info>div+div{margin-top:5px;word-wrap:break-word}.cc-cookie-info+button.cc-detail-btn-details{margin-top:15px}.cc-cookies{background:var(--ccb-cookies-bg, #fbfbfb);border-radius:0 0 5px 5px}.cc-cookies>p{font-size:.875rem}.cc-cookies>p,.cc-cookies>.cc-cookie{margin:0;padding:15px;border-top:1px solid var(--ccb-cookies-bdr, #fbfbfb)}.cc-cookie label.cookie+*{margin-top:10px}.cc-cookie p{margin:0 0 15px;font-size:.875rem}.cc-cookie-desc p{margin-bottom:0}.cc-footer,.cc-info{text-align:center}.cc-info{margin-top:15px}.cc-info>p{font-size:.875rem}.cc-info>a{display:inline-block;font-size:.813rem;color:var(--ccb-detail-clr, #a2a2a2);text-decoration:none}.cc-info>a:hover{color:var(--ccb-detail-clr-hvr, #717171)}.cc-info>a+a:before{display:inline-block;content:"·";margin-right:5px}.cc-active .cc-inner{opacity:1;pointer-events:auto;visibility:visible}.cc-active.cc-blocked{pointer-events:auto;animation:cookiebar-overlay-in var(--ccb-anim-duration) ease-in-out forwards}.cc-saved.cc-inner{opacity:0;pointer-events:none;visibility:hidden}.cc-saved.cc-blocked{pointer-events:none;animation:cookiebar-overlay-out var(--ccb-anim-duration) ease-in-out forwards}.cc-left{--ccb-justify: flex-start}.cc-right{--ccb-justify: flex-end}.cc-top{--ccb-align: flex-start}.cc-top.cc-active{--ccb-anim: cookiebar-top-in}.cc-top.cc-saved{--ccb-anim: cookiebar-top-out}.cc-middle.cc-active{--ccb-anim: cookiebar-middle-in}.cc-middle.cc-saved{--ccb-anim: cookiebar-middle-out}.cc-bottom{--ccb-align: flex-end}.cc-bottom.cc-active{--ccb-anim: cookiebar-bottom-in}.cc-bottom.cc-saved{--ccb-anim: cookiebar-bottom-out}@media(min-width: 768px){.contao-cookiebar .cc-btn{width:auto;margin-bottom:0}.cc-inner{max-width:var(--ccb-max-width, 750px)}}@media(forced-colors){.contao-cookiebar input+label:after{border:1px solid currentColor}.cc-inner{border:1px solid currentColor}input.cc-group-half+label:after{margin-left:9px}}@media(prefers-reduced-motion){.contao-cookiebar{--ccb-anim-duration: 2s}}@media print{.contao-cookiebar{opacity:0}}@keyframes cookiebar-overlay-in{0%{background:rgba(0,0,0,0)}to{background:var(--ccb-backdrop)}}@keyframes cookiebar-overlay-out{0%{background:var(--ccb-backdrop)}to{background:rgba(0,0,0,0);visibility:hidden}}@keyframes cookiebar-top-in{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes cookiebar-top-out{0%{opacity:1;visibility:visible;transform:translateY(0)}to{opacity:0;visibility:hidden;transform:translateY(-100%)}}@keyframes cookiebar-middle-in{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes cookiebar-middle-out{0%{opacity:1;visibility:visible;transform:scale(1)}to{opacity:0;visibility:hidden;transform:scale(0)}}@keyframes cookiebar-bottom-in{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes cookiebar-bottom-out{0%{opacity:1;visibility:visible;transform:translateY(0)}to{opacity:0;visibility:hidden;transform:translateY(100%)}}.cc-group{display:flex;flex-wrap:wrap;justify-content:space-between;align-content:center}.cc-group>label{flex-grow:1;margin:5px 0 5px 10px}.cc-cookies{display:none;width:100%}.cc-detail-btn{padding:8px 10px;line-height:1.2rem}.cc-detail-btn-details{text-decoration:underline;padding:0;margin:0 0 10px}.cc-detail-btn,.cc-detail-btn-details{display:inline-block;color:var(--ccb-detail-clr, #a2a2a2);border:0 none;outline:0 none;background:rgba(0,0,0,0);font-size:13px;letter-spacing:0;text-transform:initial;cursor:pointer}.cc-detail-btn span:nth-child(2),.cc-detail-btn-details span:nth-child(2){display:none}.cc-detail-btn.cc-active span:nth-child(1),.cc-detail-btn-details.cc-active span:nth-child(1){display:none}.cc-detail-btn.cc-active span:nth-child(2),.cc-detail-btn-details.cc-active span:nth-child(2){display:inline}.cc-detail-btn:hover,.cc-detail-btn-details:hover{background:rgba(0,0,0,0);color:var(--ccb-detail-clr-hvr, #717171)}
#colorbox,#cboxOverlay,#cboxWrapper{position:absolute;top:0;left:0;z-index:9999;overflow:hidden;-webkit-transform:translate3d(0,0,0)}#cboxWrapper{max-width:none}#cboxOverlay{position:fixed;width:100%;height:100%}#cboxMiddleLeft,#cboxBottomLeft{clear:left}#cboxContent{position:relative}#cboxLoadedContent{overflow:auto;-webkit-overflow-scrolling:touch}#cboxTitle{margin:0}#cboxLoadingOverlay,#cboxLoadingGraphic{position:absolute;top:0;left:0;width:100%;height:100%}#cboxPrevious,#cboxNext,#cboxClose,#cboxSlideshow{cursor:pointer}.cboxPhoto{float:left;margin:auto;border:0;display:block;max-width:none;-ms-interpolation-mode:bicubic}.cboxIframe{width:100%;height:100%;display:block;border:0;padding:0;margin:0}#colorbox,#cboxContent,#cboxLoadedContent{box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}#cboxOverlay{background:#000;opacity:.9;filter:alpha(opacity = 90)}#colorbox{outline:0}#cboxContent{margin-top:20px;background:#000}.cboxIframe{background:#fff}#cboxError{padding:50px;border:1px solid #ccc}#cboxLoadedContent{border:5px solid #000;background:#fff}#cboxTitle{position:absolute;top:-20px;left:0;color:#ccc}#cboxCurrent{position:absolute;top:-20px;right:0;color:#ccc}#cboxLoadingGraphic{background:url(../../assets/colorbox/images/loading.gif) no-repeat center center}#cboxPrevious,#cboxNext,#cboxSlideshow,#cboxClose{border:0;padding:0;margin:0;overflow:visible;width:auto;background:0 0}#cboxPrevious:active,#cboxNext:active,#cboxSlideshow:active,#cboxClose:active{outline:0}#cboxSlideshow{position:absolute;top:-20px;right:90px;color:#fff}#cboxPrevious{position:absolute;top:50%;left:5px;margin-top:-32px;background:url(../../assets/colorbox/images/controls.png) no-repeat top left;width:28px;height:65px;text-indent:-9999px}#cboxPrevious:hover{background-position:bottom left}#cboxNext{position:absolute;top:50%;right:5px;margin-top:-32px;background:url(../../assets/colorbox/images/controls.png) no-repeat top right;width:28px;height:65px;text-indent:-9999px}#cboxNext:hover{background-position:bottom right}#cboxClose{position:absolute;top:5px;right:5px;display:block;background:url(../../assets/colorbox/images/controls.png) no-repeat top center;width:38px;height:19px;text-indent:-9999px}#cboxClose:hover{background-position:bottom center}
table.sortable thead th{background-image:url(../../assets/tablesorter/images/default.svg);background-repeat:no-repeat;background-position:center right}table.sortable thead th.tablesorter-headerAsc{background-image:url(../../assets/tablesorter/images/asc.svg)}table.sortable thead th.tablesorter-headerDesc{background-image:url(../../assets/tablesorter/images/desc.svg)}
@charset "UTF-8";
/* montserrat-300 - latin */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 300;
  src: url("/files/theme/fonts/montserrat-v12-latin-300.eot"); /* IE9 Compat Modes */
  src: local("Montserrat Light"), local("Montserrat-Light"), url("/files/theme/fonts/montserrat-v12-latin-300.eot?#iefix") format("embedded-opentype"), url("/files/theme/fonts/montserrat-v12-latin-300.woff2") format("woff2"), url("/files/theme/fonts/montserrat-v12-latin-300.woff") format("woff"), url("/files/theme/fonts/montserrat-v12-latin-300.ttf") format("truetype"), url("/files/theme/fonts/montserrat-v12-latin-300.svg#Montserrat") format("svg"); /* Legacy iOS */
}
/* montserrat-regular - latin */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 400;
  src: url("/files/theme/fonts/montserrat-v12-latin-regular.eot"); /* IE9 Compat Modes */
  src: local("Montserrat Regular"), local("Montserrat-Regular"), url("/files/theme/fonts/montserrat-v12-latin-regular.eot?#iefix") format("embedded-opentype"), url("/files/theme/fonts/montserrat-v12-latin-regular.woff2") format("woff2"), url("/files/theme/fonts/montserrat-v12-latin-regular.woff") format("woff"), url("/files/theme/fonts/montserrat-v12-latin-regular.ttf") format("truetype"), url("/files/theme/fonts/montserrat-v12-latin-regular.svg#Montserrat") format("svg"); /* Legacy iOS */
}
/* montserrat-italic - latin */
@font-face {
  font-family: "Montserrat";
  font-style: italic;
  font-weight: 400;
  src: url("/files/theme/fonts/montserrat-v12-latin-italic.eot"); /* IE9 Compat Modes */
  src: local("Montserrat Italic"), local("Montserrat-Italic"), url("/files/theme/fonts/montserrat-v12-latin-italic.eot?#iefix") format("embedded-opentype"), url("/files/theme/fonts/montserrat-v12-latin-italic.woff2") format("woff2"), url("/files/theme/fonts/montserrat-v12-latin-italic.woff") format("woff"), url("/files/theme/fonts/montserrat-v12-latin-italic.ttf") format("truetype"), url("/files/theme/fonts/montserrat-v12-latin-italic.svg#Montserrat") format("svg"); /* Legacy iOS */
}
/* montserrat-600 - latin */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 600;
  src: url("/files/theme/fonts/montserrat-v12-latin-600.eot"); /* IE9 Compat Modes */
  src: local("Montserrat SemiBold"), local("Montserrat-SemiBold"), url("/files/theme/fonts/montserrat-v12-latin-600.eot?#iefix") format("embedded-opentype"), url("/files/theme/fonts/montserrat-v12-latin-600.woff2") format("woff2"), url("/files/theme/fonts/montserrat-v12-latin-600.woff") format("woff"), url("/files/theme/fonts/montserrat-v12-latin-600.ttf") format("truetype"), url("/files/theme/fonts/montserrat-v12-latin-600.svg#Montserrat") format("svg"); /* Legacy iOS */
}
/* montserrat-700 - latin */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 700;
  src: url("/files/theme/fonts/montserrat-v12-latin-700.eot"); /* IE9 Compat Modes */
  src: local("Montserrat Bold"), local("Montserrat-Bold"), url("/files/theme/fonts/montserrat-v12-latin-700.eot?#iefix") format("embedded-opentype"), url("/files/theme/fonts/montserrat-v12-latin-700.woff2") format("woff2"), url("/files/theme/fonts/montserrat-v12-latin-700.woff") format("woff"), url("/files/theme/fonts/montserrat-v12-latin-700.ttf") format("truetype"), url("/files/theme/fonts/montserrat-v12-latin-700.svg#Montserrat") format("svg"); /* Legacy iOS */
}
.clearfix:after {
  content: "";
  display: table;
  clear: both;
}

.hidden {
  display: none !important;
  visibility: hidden;
}

.invisible {
  border: 0 none;
  clip: rect(0px, 0px, 0px, 0px);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.invisibleAccessible {
  position: absolute !important;
  clip: rect(1px 1px 1px 1px);
  clip: rect(1px, 1px, 1px, 1px);
  padding: 0 !important;
  border: 0 !important;
  height: 1px !important;
  width: 1px !important;
  overflow: hidden !important;
}

.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto;
}

/* normalize.css v2.1.3 | MIT License | git.io/normalize */
/* ==========================================================================
   HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined in IE 8/9.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block;
}

/**
 * Correct `inline-block` display not defined in IE 8/9.
 */
audio,
canvas,
video {
  display: inline-block;
}

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}

/**
 * Address `[hidden]` styling not present in IE 8/9.
 * Hide the `template` element in IE, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none;
}

/* ==========================================================================
   Base
   ========================================================================== */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-family: sans-serif; /* 1 */
  -ms-text-size-adjust: 100%; /* 2 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/**
 * Remove default margin.
 */
body {
  margin: 0;
}

/* ==========================================================================
   Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background: transparent;
}

/**
 * Address `outline` inconsistency between Chrome and other browsers.
 */
a:focus {
  outline: thin dotted;
}

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0;
}

/* ==========================================================================
   Typography
   ========================================================================== */
/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari 5, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/**
 * Address styling not present in IE 8/9, Safari 5, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted;
}

/**
 * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
 */
b,
strong {
  font-weight: bold;
}

/**
 * Address styling not present in Safari 5 and Chrome.
 */
dfn {
  font-style: italic;
}

/**
 * Address differences between Firefox and other browsers.
 */
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  height: 0;
}

/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000;
}

/**
 * Correct font family set oddly in Safari 5 and Chrome.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, serif;
  font-size: 1em;
}

/**
 * Improve readability of pre-formatted text in all browsers.
 */
pre {
  white-space: pre-wrap;
}

/**
 * Set consistent quote types.
 */
q {
  quotes: "“" "”" "‘" "’";
}

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

/* ==========================================================================
   Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9.
 */
img {
  border: 0;
}

/**
 * Correct overflow displayed oddly in IE 9.
 */
svg:not(:root) {
  overflow: hidden;
}

/* ==========================================================================
   Figures
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari 5.
 */
figure {
  margin: 0;
}

/* ==========================================================================
   Forms
   ========================================================================== */
/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct `color` not being inherited in IE 8/9.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0; /* 1 */
  padding: 0; /* 2 */
}

/**
 * 1. Correct font family not being inherited in all browsers.
 * 2. Correct font size not being inherited in all browsers.
 * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
 */
button,
input,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 2 */
  margin: 0; /* 3 */
}

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
button,
input {
  line-height: normal;
}

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
 * Correct `select` style inheritance in Firefox 4+ and Opera.
 */
button,
select {
  text-transform: none;
}

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type=button],
input[type=reset],
input[type=submit] {
  -webkit-appearance: button; /* 2 */
  cursor: pointer; /* 3 */
}

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default;
}

/**
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type=checkbox],
input[type=radio] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
 *    (include `-moz` to future-proof).
 */
input[type=search] {
  -webkit-appearance: textfield; /* 1 */
  -webkit-box-sizing: content-box; /* 2 */
  box-sizing: content-box;
}

/**
 * Remove inner padding and search cancel button in Safari 5 and Chrome
 * on OS X.
 */
input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

/**
 * 1. Remove default vertical scrollbar in IE 8/9.
 * 2. Improve readability and alignment in all browsers.
 */
textarea {
  overflow: auto; /* 1 */
  vertical-align: top; /* 2 */
}

/* ==========================================================================
   Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/******************************************************************
CUSTOMIZED RESET VALUES
I added these extra styles as a more personalized reset. Feel free
to remove them if you like or add your own. If you want to update
the normalize styles, make sure to edit from this point up.
******************************************************************/
b, strong, .strong {
  font-weight: bold;
}

dfn, em, .em {
  font-style: italic;
}

small, .small {
  font-size: 75%;
}

ul, ol {
  padding: 0;
  list-style-type: none;
}

dd {
  margin: 0;
}

.sidebar ul,
.sidebar ol,
.commentlist {
  list-style: none;
}

html, body {
  font-size: 16px;
  font-family: "Montserrat", Tahoma, Verdana, sans-serif;
  line-height: 1.5;
  color: #4D4D4D;
}

p {
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: 300;
  color: #4D4D4D;
  margin: 0 0 1em 0;
}
@media screen and (min-width: 48em) {
  p {
    font-size: 18px;
    font-size: 1.125rem;
  }
}
p.subhead {
  font-size: 16px;
  font-size: 1rem;
  font-weight: 400;
}
@media screen and (min-width: 48em) {
  p.subhead {
    font-size: 20px;
    font-size: 1.25rem;
  }
}

::-moz-selection {
  background: #516B98;
  color: #fff;
  text-shadow: none;
}

::selection {
  background: #516B98;
  color: #fff;
  text-shadow: none;
}

html {
  -webkit-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

*,
*:before,
*:after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
}

h1 {
  font-size: 38px;
  font-size: 2.375rem;
  font-family: "Montserrat", Tahoma, Verdana, sans-serif;
  font-weight: 600;
  color: #4D4D4D;
  line-height: 1.2;
  margin: 0 0 0.5em 0;
  position: relative;
}
@media screen and (min-width: 48em) {
  h1 {
    font-size: 60px;
    font-size: 3.75rem;
  }
}

h2 {
  font-size: 24px;
  font-size: 1.5rem;
  font-family: "Montserrat", Tahoma, Verdana, sans-serif;
  font-weight: 600;
  color: #4D4D4D;
  line-height: 1.2;
  margin: 0 0 0.5em 0;
}
@media screen and (min-width: 48em) {
  h2 {
    font-size: 30px;
    font-size: 1.875rem;
  }
}

h3 {
  font-size: 20px;
  font-size: 1.25rem;
  font-family: "Montserrat", Tahoma, Verdana, sans-serif;
  font-weight: 600;
  color: #4D4D4D;
  line-height: 1.2;
  margin: 0 0 0.5em 0;
}
@media screen and (min-width: 48em) {
  h3 {
    font-size: 26px;
    font-size: 1.625rem;
  }
}

h4 {
  font-size: 16px;
  font-size: 1rem;
  font-family: "Montserrat", Tahoma, Verdana, sans-serif;
  font-weight: 400;
  color: #516B98;
  line-height: 1.2;
  margin: 0 0 0.5em 0;
}
@media screen and (min-width: 48em) {
  h4 {
    font-size: 20px;
    font-size: 1.25rem;
  }
}

h5 {
  font-size: 16px;
  font-size: 1rem;
  font-family: "Montserrat", Tahoma, Verdana, sans-serif;
  font-weight: 600;
  color: #516B98;
  line-height: 1.2;
  margin: 0 0 0.5em 0;
}

h6 {
  font-size: 16px;
  font-size: 1rem;
  font-family: "Montserrat", Tahoma, Verdana, sans-serif;
  font-weight: 600;
  color: #516B98;
  line-height: 1.2;
  margin: 0 0 0.5em 0;
}

h1, h2, h3, h4, h5, h6 {
  line-height: 1.2;
}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
  text-decoration: none;
  color: inherit;
}

img, picture {
  max-width: 100%;
  height: auto;
  line-height: 0;
}

figure {
  line-height: 0;
  margin: 0;
}

.float_left {
  float: left;
  margin: 0 1em 1em 0;
}

.float_right {
  float: right;
  margin: 0 0 1em 1em;
}

.image_container figcaption,
.content-image figcaption {
  padding: 1rem;
  font-style: italic;
  text-align: center;
  line-height: 1.2;
}

a {
  color: #516B98;
  text-decoration: underline;
}
a:hover, a:focus {
  color: #4D4D4D;
}

a[href^="tel:"] {
  text-decoration: none;
}
a[href^="tel:"]:hover, a[href^="tel:"]:focus {
  color: inherit;
}

.ce_text ul,
.content-text ul {
  padding: 0 0 0 1.4em;
  list-style-type: none;
}
.ce_text ul li,
.content-text ul li {
  font-size: 14px;
  font-size: 0.875rem;
  font-weight: 300;
  color: #4D4D4D;
  margin-bottom: 0.5em;
}
@media screen and (min-width: 48em) {
  .ce_text ul li,
  .content-text ul li {
    font-size: 18px;
    font-size: 1.125rem;
  }
}
.ce_text ul li:before,
.content-text ul li:before {
  content: url("data:image/svg+xml,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='4' cy='4' r='4' fill='%23C52A30'/%3E%3C/svg%3E");
  display: inline-block;
  width: 1rem;
  margin-left: -1rem;
  -webkit-transform: translateY(-2px);
          transform: translateY(-2px);
}
.ce_text ol,
.content-text ol {
  padding: 0 0 0 1.4em;
}
.ce_text ol li,
.content-text ol li {
  list-style-type: decimal;
}
.ce_text ol li li,
.content-text ol li li {
  list-style-type: decimal;
}

/* Contao elements */
.ce_text,
.content-text {
  margin-bottom: 90px;
}
.ce_text .float_above,
.content-text .float_above {
  margin-bottom: 51px;
}
.ce_text .float_above img,
.content-text .float_above img {
  width: 100%;
}
.ce_text.media.media--above figure,
.content-text.media.media--above figure {
  margin-bottom: 51px;
}
.ce_text.media.media--above figure img,
.content-text.media.media--above figure img {
  width: 100%;
}

.ce_table,
.content-table {
  overflow-x: auto;
  margin-bottom: 3rem;
  display: block;
}
.ce_table table,
.content-table table {
  max-width: 100%;
}
.ce_table thead,
.content-table thead {
  background: #516B98;
  color: #fff;
}
.ce_table tbody,
.content-table tbody {
  text-align: center;
}
.ce_table tbody tr:nth-child(odd),
.content-table tbody tr:nth-child(odd) {
  background: #F6F6F6;
}
.ce_table tfoot,
.content-table tfoot {
  background: #DCE1EA;
}
.ce_table tr,
.content-table tr {
  border-bottom: 1px solid #DADADA;
}
@media screen and (min-width: 40em) {
  .ce_table th, .ce_table td,
  .content-table th,
  .content-table td {
    padding: 1rem;
  }
}
.ce_table .annotation,
.content-table .annotation {
  font-style: italic;
  font-size: 0.9em;
}

.wrap, .footer > .inside,
#footer > .inside, .header > .inside,
#header > .inside, .main > .inside,
#main > .inside,
main > .inside {
  max-width: 1440px;
  margin: 0 auto;
}

.main > .inside,
#main > .inside,
main > .inside {
  padding: 0 1rem;
}
@media screen and (min-width: 90em) {
  .main > .inside,
  #main > .inside,
  main > .inside {
    padding: 0;
  }
}

.wrap, .footer > .inside,
#footer > .inside, .header > .inside,
#header > .inside, .main > .inside,
#main > .inside,
main > .inside {
  max-width: 1440px;
  margin: 0 auto;
}

/* 
.inside {

} */
.header > .inside,
#header > .inside {
  position: relative;
  height: 180px;
}
@media screen and (min-width: 48em) {
  .header > .inside,
  #header > .inside {
    height: 220px;
  }
}
@media screen and (min-width: 75em) {
  .header > .inside,
  #header > .inside {
    height: 180px;
  }
}
.header .logo,
#header .logo {
  position: absolute;
  top: 1rem;
  left: 1rem;
  padding: 1em 0;
  max-width: 200px;
}
@media screen and (min-width: 48em) {
  .header .logo,
  #header .logo {
    max-width: 300px;
  }
}
@media screen and (min-width: 92em) {
  .header .logo,
  #header .logo {
    left: 0;
  }
}
.header .callme,
#header .callme {
  text-align: center;
  -webkit-transform: translateY(120px);
          transform: translateY(120px);
}
@media screen and (min-width: 48.0625em) {
  .header .callme,
  #header .callme {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    position: absolute;
    right: 1.5rem;
    top: 1rem;
  }
}
.header .mainnav,
#header .mainnav {
  display: none;
}
@media screen and (min-width: 48.0625em) {
  .header .mainnav,
  #header .mainnav {
    display: block;
    height: 80px;
    position: absolute;
    top: calc(100% - 80px);
    right: 1rem;
  }
}
@media screen and (min-width: 75em) {
  .header .mainnav,
  #header .mainnav {
    max-width: calc(100vw - 300px - 60px);
  }
}
@media screen and (min-width: 92em) {
  .header .mainnav,
  #header .mainnav {
    right: 0;
  }
}

#subheader {
  position: relative;
  overflow: hidden;
  border-bottom: 15px solid #C52A30;
  background-color: #516B98;
}
#subheader .mod_pageImage {
  height: 300px;
}
#subheader .mod_pageImage img, #subheader .mod_pageImage picture {
  max-width: none;
}
#subheader .mod_pageImage .image-wrapper {
  padding-bottom: 300px !important;
}
#subheader .slogan {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  padding: 0 2rem;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  z-index: 1;
  color: #fff;
  font-size: 30px;
  font-size: 1.875rem;
  font-family: "Montserrat", Tahoma, Verdana, sans-serif;
  font-weight: 600;
  line-height: 1.2;
  margin: 0 0 0.5em 0;
  max-width: 680px;
  text-shadow: 1px 0px 5px rgba(0, 0, 0, 0.95);
  text-align: center;
}
@media screen and (min-width: 47.9375em) {
  #subheader .slogan {
    font-size: 38px;
    font-size: 2.375rem;
    text-align: right;
    text-shadow: 1px 0px 5px rgba(0, 0, 0, 0.65);
    right: 1rem;
  }
}
@media screen and (min-width: 56.25em) {
  #subheader .slogan {
    right: 6rem;
  }
}

.footer,
#footer {
  border-top: 15px solid #C52A30;
  background-color: #516B98;
  padding: 2rem 1rem 4rem 1rem;
}
@media screen and (min-width: 48em) {
  .footer > .inside,
  #footer > .inside {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  .footer > .inside > div, .footer > .inside > nav,
  #footer > .inside > div,
  #footer > .inside > nav {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 30%;
            flex: 0 0 30%;
  }
}
.footer *,
#footer * {
  color: #fff;
}
.footer .footerheadline,
#footer .footerheadline {
  font-size: 20px;
  font-size: 1.25rem;
  font-family: "Montserrat", Tahoma, Verdana, sans-serif;
  font-weight: 600;
  line-height: 1.2;
  margin: 0 0 0.5em 0;
  color: #fff;
  margin-bottom: 4rem;
  position: relative;
}
@media screen and (min-width: 48em) {
  .footer .footerheadline,
  #footer .footerheadline {
    font-size: 26px;
    font-size: 1.625rem;
  }
}
.footer .footerheadline:after,
#footer .footerheadline:after {
  content: "";
  height: 6px;
  width: 8rem;
  background-color: #fff;
  position: absolute;
  bottom: -2rem;
  left: 0;
}
.footer .ce_text,
.footer .content-text,
#footer .ce_text,
#footer .content-text {
  margin-bottom: 2rem;
}
@media screen and (min-width: 48em) {
  .footer .ce_text > p:first-child,
  .footer .content-text > .rte p:first-child,
  #footer .ce_text > p:first-child,
  #footer .content-text > .rte p:first-child {
    margin-top: 95px;
  }
}
.footer a,
#footer a {
  text-decoration: none;
  border-bottom: 1px solid #fff;
}
.footer a:hover, .footer a:focus, .footer a:active,
#footer a:hover,
#footer a:focus,
#footer a:active {
  border-color: #C52A30;
  color: #fff;
}
.footer a[href^="tel:"],
#footer a[href^="tel:"] {
  text-decoration: none;
  border: none;
  cursor: default;
}
.footer a[href^="tel:"]:hover, .footer a[href^="tel:"]:focus,
#footer a[href^="tel:"]:hover,
#footer a[href^="tel:"]:focus {
  color: inherit;
}

.mod_article {
  padding: 2em 0;
}
@media screen and (min-width: 48em) {
  .mod_article {
    padding: 4em 0;
  }
}
@media screen and (min-width: 75em) {
  .mod_article {
    padding: 6em 0;
  }
}

#hero {
  position: relative;
  padding: 0;
}
#hero h1 {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  padding: 0 2rem 0 2rem;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  z-index: 1;
  color: #fff;
  font-size: 30px;
  font-size: 1.875rem;
  font-family: "Montserrat", Tahoma, Verdana, sans-serif;
  font-weight: 600;
  line-height: 1.2;
  margin: 0 0 0.5em 0;
  max-width: 680px;
  text-shadow: 1px 0px 5px rgba(0, 0, 0, 0.95);
  text-align: center;
}
@media screen and (min-width: 37.5em) {
  #hero h1 {
    font-size: 38px;
    font-size: 2.375rem;
  }
}
@media screen and (min-width: 47.9375em) {
  #hero h1 {
    font-size: 48px;
    font-size: 3rem;
    text-align: right;
    text-shadow: 1px 0px 5px rgba(0, 0, 0, 0.65);
  }
}
@media screen and (min-width: 75em) {
  #hero h1 {
    font-size: 60px;
    font-size: 3.75rem;
    padding: 0 6rem 0 2rem;
  }
}

#einleitung:before, #einleitung:after {
  content: "";
  display: table;
}
#einleitung:after {
  /* clearfix */
  clear: both;
}
@media screen and (min-width: 48em) {
  #einleitung > * {
    float: left;
  }
  #einleitung .ce_text:nth-child(1),
  #einleitung .content-text:nth-child(1) {
    width: 33%;
    margin-right: 4%;
  }
  #einleitung .ce_text:nth-child(2),
  #einleitung .content-text:nth-child(2) {
    width: 63%;
    margin-right: 0;
  }
}
@supports (grid-area: auto) {
  @media screen and (min-width: 48em) {
    #einleitung {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      grid-gap: 70px;
      padding: 10rem 0 4rem 0;
    }
    #einleitung .ce_text:nth-child(2),
    #einleitung .content-text:nth-child(2) {
      grid-column: 2/span 2;
    }
  }
  #einleitung > .ce_text.ce_text, #einleitung > .content-text.content-text {
    width: auto;
    margin: 0;
  }
  #einleitung:before {
    display: none;
  }
}

.gridbox:before, .gridbox:after {
  content: "";
  display: table;
}
.gridbox:after {
  /* clearfix */
  clear: both;
}
.gridbox.col2, .gridbox.col3, .gridbox.col4 {
  margin-bottom: 3rem;
}
@media screen and (min-width: 33.75em) {
  .gridbox.col4 > * {
    width: 48%;
    margin-right: 4%;
    margin-bottom: 5rem;
  }
  .gridbox.col2 > *:last-child, .gridbox.col4 > *:last-child {
    margin-right: 0;
  }
}
@media screen and (min-width: 33.75em) and (max-width: 62.4375em) {
  .gridbox.col4 > *:nth-child(2n) {
    margin-right: 0;
  }
}
@media screen and (min-width: 48em) {
  .gridbox > * {
    float: left;
  }
  .gridbox.col2 > * {
    width: 48%;
    margin-right: 4%;
  }
}
@media screen and (min-width: 62.5em) {
  .gridbox.col3 > * {
    width: 32%;
    margin-right: 3%;
    margin-bottom: 0;
  }
  .gridbox.col3 > *:nth-child(3n) {
    margin-right: 0;
  }
  .gridbox.col4 > * {
    width: 22%;
    margin-right: 4%;
    margin-bottom: 0;
  }
  .gridbox.col4 > *:nth-child(4n) {
    margin-right: 0;
  }
}
@supports (grid-area: auto) {
  .gridbox.col2, .gridbox.col3, .gridbox.col4 {
    display: grid;
    grid-gap: 50px 0;
    margin-bottom: 0;
  }
  @media screen and (min-width: 48em) {
    .gridbox.col2 {
      grid-gap: 70px;
      grid-template-columns: 1fr 1fr;
    }
  }
  @media screen and (min-width: 56.25em) {
    .gridbox.col3 {
      grid-gap: 70px;
      grid-template-columns: 1fr 1fr 1fr;
    }
  }
  @media screen and (min-width: 33.75em) {
    .gridbox.col4 {
      grid-gap: 35px;
      grid-template-columns: 1fr 1fr;
    }
  }
  @media screen and (min-width: 62.5em) {
    .gridbox.col4 {
      grid-gap: 70px;
      grid-template-columns: 1fr 1fr 1fr 1fr;
    }
  }
  .gridbox.col2 > *, .gridbox.col3 > *, .gridbox.col4 > * {
    width: auto;
    margin: 0;
  }
  .gridbox:before {
    display: none;
  }
}

.grid-productdetail:before, .grid-productdetail:after {
  content: "";
  display: table;
}
.grid-productdetail:after {
  /* clearfix */
  clear: both;
}
@media screen and (min-width: 48em) {
  .grid-productdetail > * {
    float: left;
  }
  .grid-productdetail .intro {
    width: 71%;
    margin-right: 4%;
    margin-bottom: 3rem;
  }
  .grid-productdetail .ce_image,
  .grid-productdetail .content-image {
    width: 25%;
    margin-bottom: 3rem;
  }
  .grid-productdetail .content {
    width: 100%;
    margin: 0;
  }
}
@supports (display: grid) {
  .grid-productdetail {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    -ms-grid-rows: auto 70px auto 70px auto;
        grid-template-areas: "headline" "image" "content";
    grid-gap: 70px;
  }
  @media screen and (min-width: 48em) {
    .grid-productdetail {
      -ms-grid-columns: 3fr 70px 1fr;
      grid-template-columns: 3fr 1fr;
      grid-auto-rows: minmax(150px, auto);
      -ms-grid-rows: auto 70px auto;
          grid-template-areas: "headline image" "content content";
    }
  }
  .grid-productdetail .intro {
    -ms-grid-row: 1;
    -ms-grid-column: 1;
    grid-area: headline;
  }
  .grid-productdetail .ce_image,
  .grid-productdetail .content-image {
    -ms-grid-row: 3;
    -ms-grid-column: 1;
    grid-area: image;
  }
  .grid-productdetail .content {
    -ms-grid-row: 5;
    -ms-grid-column: 1;
    grid-area: content;
  }
  @media screen and (min-width: 48em){
    .grid-productdetail .intro {
      -ms-grid-row: 1;
      -ms-grid-column: 1;
    }
    .grid-productdetail .ce_image,
  .grid-productdetail .content-image {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
    }
    .grid-productdetail .content {
      -ms-grid-row: 3;
      -ms-grid-column: 1;
      -ms-grid-column-span: 3;
    }
  }
  .grid-productdetail .intro,
  .grid-productdetail .ce_image,
  .grid-productdetail .content,
  .grid-productdetail .content-image {
    width: auto;
    margin: 0;
  }
  .grid-productdetail:before {
    display: none;
  }
}

@media screen and (min-width: 48.0625em) {
  .mainnav ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin: 0;
  }
  .mainnav li {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    -ms-flex-preferred-size: auto;
        flex-basis: auto;
  }
  .mainnav a {
    white-space: nowrap;
    line-height: 80px;
    display: block;
    padding: 0 0.75rem;
    font-weight: 600;
    text-decoration: none;
    font-size: 18px;
    font-size: 1.125rem;
    color: hsl(0, 0%, 46%);
    position: relative;
  }
}
@media screen and (min-width: 48.0625em) and (min-width: 56.25em) {
  .mainnav a {
    padding: 0 1.5rem;
  }
}
@media screen and (min-width: 48.0625em) {
  .mainnav a:after {
    content: "";
    height: 6px;
    width: 0;
    position: absolute;
    top: 75px;
    left: 0;
    background-color: #C52A30;
    -webkit-transition: all 0.2s linear;
    transition: all 0.2s linear;
  }
  .mainnav a:hover:after,
  .mainnav a:focus:after,
  .mainnav a.active:after,
  .mainnav a.trail:after {
    width: 100%;
  }
}

.mod_mobile_menu {
  position: absolute;
  right: 1.5rem;
  top: 3rem;
}
.mod_mobile_menu .icon-menu {
  height: 36px;
  width: 40px;
  color: #516B98;
  cursor: pointer;
}
.mod_mobile_menu span {
  position: absolute !important;
  clip: rect(1px 1px 1px 1px);
  clip: rect(1px, 1px, 1px, 1px);
  padding: 0 !important;
  border: 0 !important;
  height: 1px !important;
  width: 1px !important;
  overflow: hidden !important;
}

.mobile_menu .inner {
  background-color: #516B98;
}
.mobile_menu .mainnav {
  display: block;
}
.mobile_menu .menu-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
}
.mobile_menu .menu-close span {
  position: absolute !important;
  clip: rect(1px 1px 1px 1px);
  clip: rect(1px, 1px, 1px, 1px);
  padding: 0 !important;
  border: 0 !important;
  height: 1px !important;
  width: 1px !important;
  overflow: hidden !important;
}
.mobile_menu .menu-close .icon-menu {
  height: 36px;
  width: 40px;
  color: #fff;
}
.mobile_menu .mod_navigation {
  -webkit-transform: translateY(2rem);
          transform: translateY(2rem);
  padding: 1rem;
  position: relative;
}
.mobile_menu .mod_navigation a {
  font-size: 18px;
  font-size: 1.125rem;
  color: #fff;
  text-decoration: none;
  padding: 0.5rem 1rem 0.5rem 0;
  display: block;
  line-height: 1.1;
}
.mobile_menu .mod_navigation a.submenu:after {
  content: url("data:image/svg+xml,%3Csvg width='10' height='13' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.75 7.164l-5.313 5.313a.904.904 0 0 1-.664.273.904.904 0 0 1-.664-.273l-.859-.899a.904.904 0 0 1-.273-.664c0-.26.09-.482.273-.664L5 6.5 1.25 2.75a.904.904 0 0 1-.273-.664c0-.26.09-.482.273-.664l.86-.899A.904.904 0 0 1 2.772.25c.26 0 .482.091.664.273L8.75 5.836a.904.904 0 0 1 .273.664c0 .26-.09.482-.273.664z' fill='%23fff'/%3E%3C/svg%3E");
  width: 10px;
  height: 13px;
  margin-left: 0.5rem;
}
.mobile_menu .mod_navigation a.active, .mobile_menu .mod_navigation a:hover, .mobile_menu .mod_navigation a:focus {
  color: #fff;
  font-weight: bold;
}
.mobile_menu .mod_navigation a.trail {
  font-weight: bold;
}
.mobile_menu .mod_navigation .level_2 li {
  padding-left: 1rem;
}
.mobile_menu .mobile-menu-footer {
  color: #fff;
  background-color: #A8B5CB;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 0.5rem 1rem;
}
.mobile_menu .mobile-menu-footer a {
  color: #fff;
}

.footernav li {
  margin-bottom: 0.5em;
}

.ce_gallery ul,
.content-gallery ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -ms-flex-line-pack: center;
      align-content: center;
  gap: 2rem;
}
.ce_gallery li,
.content-gallery li {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 190px;
          flex: 0 1 190px;
  margin: 0;
  padding: 0;
}
.ce_gallery figure,
.content-gallery figure {
  display: inline-block;
}
.ce_gallery img,
.content-gallery img {
  max-width: 190px;
  height: auto;
}

.callme a {
  font-size: 24px;
  font-size: 1.5rem;
  font-weight: 700;
  color: #516B98;
  text-decoration: none;
}
.callme .icon-phone {
  width: 24px;
  height: 24px;
  -webkit-transform: translateY(5px);
          transform: translateY(5px);
}

.produkte-teaser .ce_image,
.produkte-teaser .content-image {
  margin-bottom: 3rem;
  -ms-grid-column-align: center;
      justify-self: center;
}
.produkte-teaser .ce_image a,
.produkte-teaser .content-image a {
  position: relative;
  overflow: hidden;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  z-index: 1;
  display: block;
  -webkit-box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.25);
          box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.25);
}
.produkte-teaser .ce_image a:before, .produkte-teaser .ce_image a:after,
.produkte-teaser .content-image a:before,
.produkte-teaser .content-image a:after {
  width: 0;
  height: 14px;
  content: "";
  position: absolute;
  top: calc(100% - 14px);
  left: 0;
  -webkit-transition: width 0.3s ease-out;
  transition: width 0.3s ease-out;
}
.produkte-teaser .ce_image a:before,
.produkte-teaser .content-image a:before {
  z-index: 3;
  background-color: #C52A30;
}
.produkte-teaser .ce_image a:after,
.produkte-teaser .content-image a:after {
  z-index: 2;
  background-color: #516B98;
  width: 100%;
}
.produkte-teaser .ce_image a:hover:before,
.produkte-teaser .content-image a:hover:before {
  width: 100%;
}
.produkte-teaser .ce_image .caption,
.produkte-teaser .ce_image figcaption,
.produkte-teaser .content-image .caption,
.produkte-teaser .content-image figcaption {
  font-weight: 900;
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 1.2;
  padding-top: 0.63em;
  -ms-hyphens: auto;
      hyphens: auto;
  font-style: normal;
  text-align: center;
}
.produkte-teaser .ce_image figure,
.produkte-teaser .content-image figure {
  overflow: hidden;
}
.produkte-teaser .ce_image figure:hover img, .produkte-teaser .ce_image figure:focus img,
.produkte-teaser .content-image figure:hover img,
.produkte-teaser .content-image figure:focus img {
  -webkit-transform: scale(1.03);
          transform: scale(1.03);
}
.produkte-teaser .ce_image img,
.produkte-teaser .content-image img {
  -webkit-transition: 0.4s ease;
  transition: 0.4s ease;
}
@media screen and (max-width: 56.25em) {
  .produkte-teaser .ce_image figure,
  .produkte-teaser .content-image figure {
    text-align: center;
  }
}
.ie .produkte-teaser img {
  max-width: none;
  width: 100%;
}

.button {
  display: inline-block;
  text-decoration: none;
  margin: 1.2em 0 0 0;
  -webkit-box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
          box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
}
.button a {
  color: #fff;
  padding: 0.875em 1.6875em;
  background: #516B98;
  display: block;
  text-decoration: inherit;
  -webkit-box-shadow: inherit;
          box-shadow: inherit;
  -webkit-transition: background 0.2s linear;
  transition: background 0.2s linear;
  line-height: 1;
  letter-spacing: 1px;
  font-size: 16px;
  font-size: 1rem;
}
.button a:hover, .button a:focus {
  background: #C52A30;
}

.ce_form .submit {
  color: #fff;
  padding: 0.875em 1.6875em;
  background: #516B98;
  display: block;
  text-decoration: inherit;
  -webkit-box-shadow: inherit;
          box-shadow: inherit;
  -webkit-transition: background 0.2s linear;
  transition: background 0.2s linear;
  line-height: 1;
  letter-spacing: 1px;
  font-size: 16px;
  font-size: 1rem;
  border: none;
}
.ce_form .submit:hover, .ce_form .submit:focus {
  background: #C52A30;
}
.ce_form label,
.ce_form input {
  display: block;
}
.ce_form input[type=text],
.ce_form input[type=email],
.ce_form textarea {
  padding: 0.5em;
  width: 100%;
  border: 1px solid #A1A1A1;
  background-color: #F6F6F6;
}
.ce_form .widget {
  margin-bottom: 1em;
}
.ce_form .widget.datenschutz label, .ce_form .widget.datenschutz input {
  display: inline-block;
}
.ce_form .widget.datenschutz > label {
  display: none;
}
.ce_form span.mandatory {
  color: #C52A30;
}
.ce_form .checkbox_container.datenschutz {
  padding: 0;
  border: none;
}

.intro h1, .intro h2 {
  margin-bottom: 4rem;
  position: relative;
  font-size: 24px;
  font-size: 1.5rem;
}
@media screen and (min-width: 48em) {
  .intro h1, .intro h2 {
    font-size: 30px;
    font-size: 1.875rem;
  }
}
.intro h1:after, .intro h2:after {
  content: "";
  height: 6px;
  width: 8rem;
  background-color: #C52A30;
  position: absolute;
  bottom: -2rem;
  left: 0;
}
.intro p {
  font-weight: 400;
  font-size: 16px;
  font-size: 1rem;
}
@media screen and (min-width: 48em) {
  .intro p {
    font-size: 20px;
    font-size: 1.25rem;
  }
}

.embed-container {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  max-width: 100%;
}
.embed-container.slim {
  padding-bottom: 34.36%;
}

.embed-container iframe,
.embed-container object,
.embed-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/*! Tablesaw - v3.0.9 - 2018-02-14
* https://github.com/filamentgroup/tablesaw
* Copyright (c) 2018 Filament Group; Licensed MIT */

.tablesaw {
  width: 100%;
  max-width: 100%;
  empty-cells: show;
  border-collapse: collapse;
  border: 0;
  padding: 0;
}

.tablesaw * {
  box-sizing: border-box;
}

.tablesaw-stack td .tablesaw-cell-label,
.tablesaw-stack th .tablesaw-cell-label {
  display: none;
}

/* Mobile first styles: Begin with the stacked presentation at narrow widths */

/* Support note IE9+: @media only all */

@media only all {
  /* Show the table cells as a block level element */

  .tablesaw-stack {
    clear: both;
  }

  .tablesaw-stack td,
  .tablesaw-stack th {
    text-align: left;
    display: block;
  }

  .tablesaw-stack tr {
    clear: both;
    display: table-row;
  }

  /* Make the label elements a percentage width */

  .tablesaw-stack td .tablesaw-cell-label,
  .tablesaw-stack th .tablesaw-cell-label {
    display: inline-block;
    padding: 0 .6em 0 0;
    width: 52%;
  }

  /* For grouped headers, have a different style to visually separate the levels by classing the first label in each col group */

  .tablesaw-stack th .tablesaw-cell-label-top,
  .tablesaw-stack td .tablesaw-cell-label-top {
    display: block;
    padding: .4em 0;
    margin: .4em 0;
  }

  .tablesaw-cell-label {
    display: block;
  }

  /* Avoid double strokes when stacked */

  .tablesaw-stack tbody th.group {
    margin-top: -1px;
  }

  /* Avoid double strokes when stacked */

  .tablesaw-stack th.group b.tablesaw-cell-label {
    display: none !important;
  }
}

@media (max-width: 39.9375em) {
  /* Table rows have a gray bottom stroke by default */

  .tablesaw-stack tbody tr {
    display: block;
    width: 100%;
    border-bottom: 1px solid #dfdfdf;
  }

  .tablesaw-stack thead td,
  .tablesaw-stack thead th {
    display: none;
  }

  .tablesaw-stack tbody td,
  .tablesaw-stack tbody th {
    display: block;
    float: left;
    clear: left;
    width: 100%;
  }

  .tablesaw-cell-label {
    vertical-align: top;
  }

  .tablesaw-cell-content {
    display: inline-block;
    max-width: 45%;
  }

  .tablesaw-stack .tablesaw-stack-block .tablesaw-cell-label,
  .tablesaw-stack .tablesaw-stack-block .tablesaw-cell-content {
    display: block;
    width: 100%;
    max-width: 100%;
    padding: 0;
  }

  .tablesaw-stack td:empty,
  .tablesaw-stack th:empty {
    display: none;
  }
}

/* Media query to show as a standard table at 560px (35em x 16px) or wider */

@media (min-width: 40em) {
  .tablesaw-stack tr {
    display: table-row;
  }

  /* Show the table header rows */

  .tablesaw-stack td,
  .tablesaw-stack th,
  .tablesaw-stack thead td,
  .tablesaw-stack thead th {
    display: table-cell;
    margin: 0;
  }

  /* Hide the labels in each cell */

  .tablesaw-stack td .tablesaw-cell-label,
  .tablesaw-stack th .tablesaw-cell-label {
    display: none !important;
  }
}
