@charset "UTF-8";

/*!
Theme Name: La Cucina twentyone Theme
Theme URI:
Description: Individuell programmiertes Wordpress-Theme für La Cucina e casa.
Author: Ralf Hoffmeister, Design: Shuttle Design Studio
Author URI: http://ralfhoffmeister.de
Version: 1
Text Domain: lacu-theme
*/

/* CSS Document */

/*
===============
= ADJUSTMENTS =
===============
*/

/*RESET
   http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126
   License: none (public domain)
**************************************************************/

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,
sub,
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,
button {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block;
}

body {
    line-height: 1;
}

ol,
ul {
    list-style: none;
}

blockquote,
q {
    quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
    content: "";
    content: none;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

/*SELF CLEAR FLOATING ELEMENTS
**************************************************************/

.clear:after {
    content: ".";
    display: block;
    height: 0;
    font-size: 0;
    clear: both;
    visibility: hidden;
}

* html .clear {
    height: 1%;
}

*:first-child + html .clear {
    min-height: 1px;
}

/*BORDER-BOX LAYOUT
**************************************************************/

*,
*:before,
*:after {
    box-sizing: border-box;
}

/*WP-CORE
**************************************************************/

.alignnone {
    margin: 5px 20px 20px 0;
}

.aligncenter,
div.aligncenter {
    display: block;
    margin: 5px auto;
}

.alignright {
    float: right;
    margin: 5px 0 20px 20px;
}

.alignleft {
    float: left;
    margin: 5px 20px 20px 0;
}

.aligncenter {
    display: block;
    margin: 5px auto;
}

a img.alignright {
    float: right;
    margin: 5px 0 20px 20px;
}

a img.alignnone {
    margin: 5px 20px 20px 0;
}

a img.alignleft {
    float: left;
    margin: 5px 20px 20px 0;
}

a img.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.wp-caption {
    background: #fff;
    border: 1px solid #f0f0f0;
    max-width: 96%;
    padding: 5px 3px 10px;
    text-align: center;
}

.wp-caption.alignnone {
    margin: 5px 20px 20px 0;
}

.wp-caption.alignleft {
    margin: 5px 20px 20px 0;
}

.wp-caption.alignright {
    margin: 5px 0 20px 20px;
}

.wp-caption img {
    border: 0 none;
    height: auto;
    margin: 0;
    max-width: 98.5%;
    padding: 0;
    width: auto;
}

.wp-caption p.wp-caption-text {
    font-size: 11px;
    line-height: 17px;
    margin: 0;
    padding: 0 4px 5px;
}

.wp-video,
video.wp-video-shortcode,
.mejs-container,
.mejs-overlay.load {
    width: 100% !important;
    height: 100% !important;
}

.mejs-container {
    padding-top: 56.25%;
}

.wp-video,
video.wp-video-shortcode {
    max-width: 100% !important;
}

video.wp-video-shortcode {
    position: relative;
}

.mejs-mediaelement {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

.mejs-controls {
    display: none;
}

.mejs-overlay-play {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: auto !important;
    height: auto !important;
}

/*
===========
= PLUGINS =
===========
*/

/*Base Styles for third party plugins e.g. Slider, Lightbox*/

/* Popper-Upper */

.popper-upper {
    position: fixed;
    display: block;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 10px;
    background-color: rgba(35, 28, 28, 0.95);
    opacity: 0;
    transition: opacity 0.2s ease-in-out 0.1s;
}

.popper-upper.is_open {
    z-index: 999;
    opacity: 1;
    visibility: visible;
}

.popper-upper.is_hidden {
    display: none;
}

.ppu-closer,
.video-closer,
.close-pop {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    width: 50px;
    height: 50px;
    padding: 10px;
    z-index: 101;
    background-color: transparent !important;
}

.ppu-closer path,
.video-closer path,
.close-pop path {
    stroke: var(--red);
}

.ppu-slider-container .slick-arrow circle {
    fill: var(--red);
    stroke: var(--red);
}

.ppu-slider-container {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    margin: 0 auto;
    max-height: 100vh;
}

.popper-upper .slick-track {
    display: flex;
    justify-content: center;
    align-items: center;
}

.popper-upper .slick-slide {
    display: flex;
    align-items: center;
    justify-content: center;
}

.popper-upper .slick-list {
    background-color: transparent;
}

.popper-upper .slick-slide {
    text-align: center;
    height: 100vh;
}

.popper-upper .slick-initialized .slick-slide {
    display: flex;
}

.ppu-item {
    position: relative;
    display: block;
    margin: 0 auto;
    max-width: 1350px;
}

.ppu-item img {
    max-height: 90vh;
    margin: 0 auto;
    padding-bottom: 80px;
}

.ppu-caption {
    position: fixed;
    bottom: 20px;
    left: 0;
    right: 0;
    padding: 10px;
    background-color: transparent;
    color: var(--red);
    text-align: left;
    /* max-width: 1350px; */
    width: 800px;
    max-width: 100vw;
}

@media screen and (min-width: 768px) {
    .ppu-caption {
        position: fixed;
        bottom: 0;
        left: 20px;
        padding: 10px;
        background-color: transparent;
        color: var(--red);
        text-align: left;
        max-width: 1350px;
        width: 800px;
        max-width: calc(100vw - 320px);
    }
}

.ppu-caption p {
    line-height: 1.2;
}

.popper-upper .slick-dots {
    /* position: absolute !important; */
    bottom: 40px;
    right: 10px;
    width: auto;
    max-width: 1350px;
    position: relative;
    margin: 0 auto;
    text-align: right;
}

@media screen and (min-width: 768px) {
    .popper-upper .slick-dots {
        /* position: absolute !important; */
        bottom: 50px;
        right: 0;
        width: auto;
        max-width: 1350px;
        position: relative;
        margin: 0 auto;
        text-align: right;
    }
}

/* Slider */

.slick-slider {
    position: relative;
    display: block;
    box-sizing: border-box;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
    -khtml-user-select: none;
    touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
}

.slick-list {
    position: relative;
    display: block;
    overflow: hidden;
    margin: 0;
    padding: 0;
}

.slick-list:focus {
    outline: none;
}

.slick-list.dragging {
    cursor: pointer;
    cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
    transform: translate3d(0, 0, 0);
}

.slick-track {
    position: relative;
    top: 0;
    left: 0;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.slick-track:before,
.slick-track:after {
    display: table;
    content: "";
}

.slick-track:after {
    clear: both;
}

.slick-loading .slick-track {
    visibility: hidden;
}

.slick-slide {
    display: none;
    float: left;
    height: 100%;
    min-height: 1px;
}

[dir="rtl"] .slick-slide {
    float: right;
}

.slick-slide img {
    display: block;
}

.slick-slide.slick-loading img {
    display: none;
}

.slick-slide.dragging img {
    pointer-events: none;
}

.slick-initialized .slick-slide {
    display: block;
}

.slick-loading .slick-slide {
    visibility: hidden;
}

.slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
    display: none;
}

/* Slider Styles */

.slick-loading .slick-list {
    background: #fff url("images/ui/ajax-loader.gif") center center no-repeat;
}

/* Arrows */

.slider-nav {
    position: absolute;
    width: 100%;
    height: 0;
    padding-left: 30px;
    padding-right: 30px;
    top: 50%;
    transform: translateY(-50%);
}

.slick-prev,
.slick-next {
    position: relative;
    display: block;
    width: 35px;
    height: 35px;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
    padding: 0;
    cursor: pointer;
    color: transparent;
    border: none;
    outline: none;
    transition: opacity 0.2s ease-in-out;
}

@media screen and (min-width: 1200px) {
    .slick-prev,
    .slick-next {
        width: 50px;
        height: 50px;
    }
}

.slick-prev:hover,
.slick-prev:focus,
.slick-next:hover,
.slick-next:focus {
    color: #fff;
    outline: none;
    opacity: 0.6;
}

.slick-prev:hover:before,
.slick-prev:focus:before,
.slick-next:hover:before,
.slick-next:focus:before {
    opacity: 1;
}

.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before {
    opacity: 0.25;
}

.slick-prev:before,
.slick-next:before {
    font-size: 20px;
    line-height: 1;
    opacity: 0.75;
    color: white;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.slick-prev {
    left: 0;
    float: left;
}

[dir="rtl"] .slick-prev {
    right: 0;
    left: auto;
}

.slick-prev:before {
    content: "";
}

[dir="rtl"] .slick-prev:before {
    content: "";
}

.slick-next {
    right: 0;
    float: right;
}

[dir="rtl"] .slick-next {
    right: auto;
    left: 0;
}

.slick-next:before {
    content: "";
}

[dir="rtl"] .slick-next:before {
    content: "";
}

/* Dots */

.slick-dotted.slick-slider {
    margin-bottom: 0;
}

.slick-dots {
    position: relative;
    bottom: 0;
    display: block;
    width: 100%;
    padding: 0;
    margin: 0;
    list-style: none;
    text-align: center;
}

.slick-dots li {
    position: relative;
    display: inline-block;
    width: 16px;
    height: 16px;
    margin: 0 0;
    padding: 0;
    cursor: pointer;
}

.slick-dots li button {
    position: relative;
    font-size: 0;
    line-height: 0;
    display: block;
    width: 16px;
    height: 16px;
    padding: 4px;
    cursor: pointer;
    color: transparent;
    border: 0;
    outline: none;
    background: transparent;
    text-indent: 0;
}

@media screen and (min-width: 1200px) {
    .slick-dots li button {
        width: 20px;
        height: 20px;
        padding: 5px;
    }
}

.slick-dots li button:hover,
.slick-dots li button:focus {
    outline: none;
}

.slick-dots li button:hover:before,
.slick-dots li button:focus:before {
    color: #ddd;
}

.slick-dots li button:before {
    content: "";
    position: relative;
    display: block;
    top: 0;
    left: 0;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: var(--red);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

@media screen and (min-width: 1200px) {
    .slick-dots li button:before {
        width: 10px;
        height: 10px;
    }
}

.slick-dots li.slick-active button:before {
    background-color: var(--blue);
}

/*
==========
= HELPER =
==========
*/

/*MISC
**************************************************************/

.circle {
    border-radius: 50%;
}

.mask-circle {
    border-radius: 50%;
    overflow: hidden;
    -webkit-mask-image: -webkit-radial-gradient(white, black);
}

/*Call to Action Button*/

.cta {
    position: relative;
    display: inline-block;
    outline: none;
    border: 2px solid var(--red);
    color: var(--red);
    background-color: transparent;
    text-align: center;
    text-decoration: none;
    padding: 1.1em;
    padding-left: calc(1.1em + 20px);
    line-height: 1;
    transition: all 0.15s ease-in-out;
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
}

@media screen and (min-width: 1200px) {
    .cta {
        padding-left: calc(2em + 20px);
        padding-right: 2em;
        font-size: 16px;
        line-height: 19px;
    }
}

.cta:before {
    content: "";
    position: absolute;
    top: 1.2em;
    left: 14px;
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 5px 0 5px 10px;
    border-color: transparent transparent transparent var(--red);
}

@media screen and (min-width: 1200px) {
    .cta:before {
        border-width: 7.5px 0 7.5px 15px;
        left: 22px;
    }
}

.cta:hover,
.cta:active,
.cta.active {
    background-color: var(--red);
    border-color: var(--red);
    color: #fff;
    color: var(--white);
    transition: none;
}

.cta:hover:before,
.cta:active:before,
.cta.active:before {
    border-color: transparent transparent transparent #fff;
}

.warning-msg {
    border-left: 5px solid #f00;
    padding-left: 10px;
}

.info-msg {
    border-left: 5px solid #aaa;
    padding-left: 10px;
}

.okay-msg {
    border-left: 5px solid #0f0;
    padding-left: 10px;
}

/*TYPOGRAPHY & LAYOUT
**************************************************************/

/*size*/

.small {
    font-size: 0.75em;
}

.medium {
    font-size: 1.5em;
}

.large {
    font-size: 2em;
}

.x-large {
    font-size: 2.5em;
}

/*alignment*/

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

.align-justify {
    text-align: justify;
}

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

.align-left {
    text-align: left;
}

/*styling*/

.drop-cap {
    font-size: 3em;
    line-height: 1;
    font-weight: 600;
    padding: 2px 8px 0 0;
    float: left;
}

.run-in {
    font-weight: bold;
}

.italic {
    font-style: italic;
}

.bold {
    font-weight: 700;
}

.uppercase {
    text-transform: uppercase;
}

.lowercase {
    text-transform: lowercase;
}

/*other*/

.hide-text {
    border: 0;
    font: 0/0 a;
    text-shadow: none;
    color: transparent;
}

.smooth {
    -webkit-font-smoothing: antialiased;
}

.sub-smooth {
    -webkit-font-smoothing: subpixel-antialiased;
}

.r-br {
    display: none;
}

/*responsive line break - no break on mobile*/

@media screen and (min-width: 600px) {
    .r-br {
        display: block;
    }
    /*responsive line break*/
}

/*DISPLAY OPTIONS
**************************************************************/

/*floats*/

.left {
    float: left;
}

.right {
    float: right;
}

/*display*/

.block {
    display: block;
}

.inline {
    display: inline;
}

/*position*/

.fixed {
    position: fixed;
}

.absolute {
    position: absolute;
}

.relative {
    position: relative;
}

.static {
    position: static;
}

.slick-dots li:only-child {
    display: none;
}

/* CSS Debugger */

/* *:not(path):not(g) {
  color:                    hsla(210, 100%, 100%, 0.9) !important;
  background:               hsla(210, 100%,  50%, 0.5) !important;
  outline:    solid 0.25rem hsla(210, 100%, 100%, 0.5) !important;
  box-shadow: none !important;
} */

/*
=========================================================
= ===================== BASE STYLES =================== =
=========================================================
*/

@font-face {
    font-family: "Nexa";
    src: url("fonts/5936849/53dae8b1-5f8c-47b8-835c-d8dacc374de1.woff2") format("woff2"),
        url("Fonts/5936849/e325023c-5aab-4c12-aa37-430a9efb8b95.woff") format("woff");
    font-weight: 300;
    font-style: normal;
}

@font-face {
    font-family: "Nexa";
    src: url("fonts/5936949/faaba122-0508-40a3-acfb-f74709081e74.woff2") format("woff2"),
        url("Fonts/5936949/070ec778-3332-4191-9fd8-8fdd2ca1b2b3.woff") format("woff");
    font-weight: 700;
    font-style: normal;
}

@import url("https://fast.fonts.net/lt/1.css?apiType=css&c=2448de5b-d08d-4833-9a73-90b928612dab&fontids=1296786");
@font-face {
    font-family: "Windsor";
    src: url("fonts/1296786/53630049-b593-4318-a2af-49197ba2fb32.woff2") format("woff2"),
        url("Fonts/1296786/b9ac8f3b-addc-436b-865d-62dd91ea165d.woff") format("woff");
    font-weight: 400;
    font-style: normal;
}

/* Colors */

:root {
    --black: #231c1c;
    --black85: rgba(35, 28, 28, 0.85);
    --red: #db1012;
    --blue: #e1f0ed;
    --white: #fff;
}

/*Basic Styling for Headlines, Forms, links etc. */

html {
    min-height: 100vh;
    font-size: 100%;
    background-color: #fff;
    background-color: var(--white);
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    /* -webkit-font-smoothing: antialiased; */
    -webkit-text-size-adjust: none;
    -moz-text-size-adjust: none;
    -ms-text-size-adjust: none;
    text-size-adjust: none;
    overflow-x: hidden;
}

body {
    position: relative;
    min-height: 100%;
    font-family: "Nexa", Helvetica, Arial, sans-serif;
    font-weight: 300;
    font-size: 15px;
    line-height: 26px;
    color: #231c1c;
    color: var(--black);
}

@media screen and (min-width: 1200px) {
    body {
        font-size: 21px;
        line-height: 36px;
    }
}

p {
    margin-bottom: 10px;
    -epub-word-break: hyphenate;
    -ms-word-break: hyphenate;
    word-break: normal;
    word-wrap: normal;
    -webkit-hyphens: auto;
    -epub-hyphens: auto;
    -ms-hyphens: auto;
    hyphens: auto;
}

@media screen and (min-width: 1200px) {
    p {
        margin-bottom: 15px;
    }
}

h1,
.h1 {
    position: relative;
    font-size: 34px;
    line-height: 42px;
    font-weight: 700;
}

h1 {
    padding-bottom: 20px;
    margin-bottom: 25px;
}

h1:after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 70px;
    height: 2px;
    background-color: #db1012;
    background-color: var(--red);
}

@media screen and (min-width: 1200px) {
    h1,
    .h1 {
        font-size: 64px;
        line-height: 1.1875;
    }
}

h2,
.h2 {
    position: relative;
    font-size: 30px;
    line-height: 37px;
    font-weight: 700;
}

h2 {
    padding-bottom: 20px;
    margin-bottom: 25px;
}

h2:after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 70px;
    height: 2px;
    background-color: #db1012;
    background-color: var(--red);
}

@media screen and (min-width: 1200px) {
    h2,
    .h2 {
        font-size: 42px;
        line-height: 48px;
    }
    h2 {
        padding-bottom: 30px;
        margin-bottom: 35px;
    }
    h2:after {
        height: 3px;
    }
}

h3,
.h3 {
    font-size: 13px;
    line-height: 16px;
    text-transform: uppercase;
    font-weight: 700;
}

@media screen and (min-width: 1200px) {
    h3,
    .h3 {
        font-size: 16px;
        line-height: 19px;
    }
}

h4 {
    font-size: 18px;
    line-height: 1.3;
}

h5 {
    font-size: 18px;
    line-height: 1.3;
}

h6 {
    font-size: 18px;
    line-height: 1.3;
}

.error404 .section-error {
    padding-top: 100px;
    padding-bottom: 100px;
}

a {
    color: #db1012;
    color: var(--red);
    text-decoration: underline;
}

a:hover {
}

a:focus {
}

a:active {
}

button,
.cta {
    cursor: pointer;
}

button:hover {
    background-color: #aaa;
}

button:focus {
    background-color: #aaa;
}

button:active {
    background-color: #000;
    color: #fff;
}

em {
    font-style: italic;
}

strong,
b {
    font-weight: 700;
}

code {
    font-family: courier, monospace;
    background-color: #eee;
    padding: 0 5px;
}

address {
    font-style: italic;
}

pre {
    font-family: courier, monospace;
    white-space: pre-wrap;
}

ul[class],
ol[class] {
    padding: 0;
    list-style: none;
}

ul {
    list-style: disc;
}

ol {
    list-style: decimal;
    list-style-type: none;
    counter-reset: item;
    margin: 0;
    padding: 0;
}

ol > li {
    display: table;
    counter-increment: item;
    margin-bottom: 0.6em;
}

ol > li:before {
    content: counters(item, ".") ". ";
    display: table-cell;
    padding-right: 0.6em;
}

li ol > li {
    margin: 0;
}

li ol > li:before {
    content: counters(item, ".") " ";
}

li {
    list-style-position: inside;
}

nav li {
    list-style: none;
}

sup {
    vertical-align: super;
    font-size: smaller;
}

img {
    position: relative;
    max-width: 100%;
    width: auto;
    /* ie8 */
    height: auto !important;
    -ms-interpolation-mode: bicubic;
    border: 0;
}

video {
    max-width: 100%;
    height: auto !important;
}

blockquote {
    position: relative;
    font-family: "Windsor", Georgia, serif;
    font-size: 32px;
    line-height: 39px;
    padding-bottom: 19px;
    margin-bottom: 22px;
}

blockquote:after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 70px;
    height: 2px;
    background-color: #db1012;
    background-color: var(--red);
}

@media screen and (min-width: 768px) {
    blockquote {
        padding-bottom: 20px;
        margin-bottom: 25px;
    }
}

@media screen and (min-width: 1200px) {
    blockquote {
        font-size: 56px;
        line-height: 67px;
    }
}

blockquote > p {
    margin-bottom: 0;
    -webkit-hyphens: manual;
    -ms-hyphens: manual;
    hyphens: manual;
}

/*  ::-webkit-selection { background-color: #aaa; color: #fff; }
     ::-moz-selection { background-color: #aaa; color: #fff; }
          ::selection { background-color: #aaa; color: #fff; }

         h1::-webkit-selection { color: #222; }
            h1::-moz-selection { color: #222; }
                 h1::selection { color: #222; }

         h2::-webkit-selection { color: #222; }
            h2::-moz-selection { color: #222; }
                 h2::selection { color: #222; }

         h3::-webkit-selection { color: #222; }
            h3::-moz-selection { color: #222; }
                 h3::selection { color: #222; }

         h4::-webkit-selection { color: #222; }
            h4::-moz-selection { color: #222; }
                 h4::selection { color: #222; }

         h5::-webkit-selection { color: #222; }
            h5::-moz-selection { color: #222; }
                 h5::selection { color: #222; }

         h6::-webkit-selection { color: #222; }
            h6::-moz-selection { color: #222; }
                 h6::selection { color: #222; }

          a::-webkit-selection { color: #222; }
             a::-moz-selection { color: #222; }
                  a::selection { color: #222; }

 blockquote::-webkit-selection { color: #222; }
    blockquote::-moz-selection { color: #222; }
         blockquote::selection { color: #222; } */

/*FONT AND COLOR CLASSES
**************************************************************/

.sans {
    font-family: "Nexa", Helvetica, Arial, sans-serif;
}

.serif {
    font-family: "Windsor", Georgia, serif;
}

.anchor {
    position: absolute;
    top: 0;
    left: 0;
    visibility: hidden;
    pointer-events: none;
    height: 0;
    width: 0;
    margin-top: -150px;
}

/*
==================
= PAGE STRUCTURE =
==================
*/

/* Basic Page Structure (Container and Frame Sizes, standard-Padding etc...)

  section:  always full width, contains frames that belong together, can have full-width-bg;

  .frame:   defines content width, contains page modules, often centered (margin: 0 auto);

  .module:  contains elements that belong together, can have padding;
            modules can be: widgets, forms, author-info, search-field, intro, slideshow, etc.;

  .page-pad: adds left & right padding to element;
              reccomenden for full-width modules, outer padding, so the content doesn’t stick to the window;
  .half,
  .third,
  .quarter: special modules, that are mainly used for grids. if used inside modules, containing module should have no padding;

  _____________
  How it works:

  section___________________________________________________________
  |          .frame______________________________________           |
  |          |      .module________________________      |          |
  |          |      |                              |     |          |
  |          |      |  elments, forms...           |     |          |
  |          |      |  modules have padding,       |     |          |
  |          |      |  sections and frames not     |     |          |
  |          |      |______________________________|     |          |
  |          |___________________________________________|          |
  |          .frame.clear________________________________           |
  |          |      .half__________.half___________      |          |
  |          |      |              |               |     |          |
  |          |      |              |               |     |          |
  |          |      |              |               |     |          |
  |          |      |              |               |     |          |
  |          |      |______________|_______________|     |          |
  |          |___________________________________________|          |
  |_________________________________________________________________|
  section___________________________________________________________
  |          .frame.clear________________________________           |
  |          |      .quarter_.third________________      |          |
  |          |      |        |                     |     |          |
  |          |      |        |                     |     |          |
  |          |      |        |                     |     |          |
  |          |      |        |                     |     |          |
  |          |      |________|_____________________|     |          |
  |          |___________________________________________|          |
  |_________________________________________________________________|
*/

/*PAGE-SEGMENTS
**************************************************************/

.container {
    /*contains the whole Page */
    position: relative;
    min-height: 100%;
    width: 100%;
}

.content {
    position: relative;
    overflow: hidden;
}

section {
    position: relative;
}

.frame,
[class*="frame-"] {
    position: relative;
    width: 100%;
    max-width: 698px;
    margin: 0 auto;
}

.frame-narrow {
    max-width: 560px;
}

.frame-800 {
    max-width: 800px;
}

@media screen and (min-width: 1200px) {
    .frame,
    [class*="frame-"] {
        max-width: 1200px;
    }
    .frame-800 {
        max-width: 800px;
    }
    .frame-narrow {
        max-width: 1000px;
    }
}

.module,
[class*="module-"] {
    /*module, lives inside .frame, contains  */
    padding-left: 30px;
    padding-right: 30px;
}

@media screen and (min-width: 768px) {
    .module,
    [class*="module-"] {
        /*module, lives inside .frame, contains  */
        padding-left: 10px;
        padding-right: 10px;
    }
    .frame-indent {
        padding-left: 80px;
    }
}

@media screen and (min-width: 1200px) {
    .module,
    [class*="module-"] {
        /*module, lives inside .frame, contains  */
        padding-left: 15px;
        padding-right: 15px;
    }
}

.module-nop {
    /*module, lives inside .frame, contains  */
    padding-left: 25px;
    padding-right: 25px;
}

@media screen and (min-width: 768px) {
    .module-nop {
        /*module, lives inside .frame, contains  */
        padding-left: 0;
        padding-right: 0;
    }
}

@media screen and (min-width: 1200px) {
    .module-nop {
        /*module, lives inside .frame, contains  */
        padding-left: 0;
        padding-right: 0;
    }
}

.page-pad,
.page-padding {
    /* adds l/r padding to element */
    padding-left: 8px;
    padding-right: 8px;
}

/*
FLEX
*/

@media screen and (min-width: 800px) {
    .flex {
        display: flex;
    }
    .flex-reverse {
        flex-direction: row-reverse;
    }
    .flex-align-center {
        align-items: center;
    }
    .flex-justify-center {
        justify-content: center;
    }
    .flex-wrap-mobile {
        flex-wrap: nowrap;
    }
    .flex-wrap {
        flex-wrap: wrap;
    }
}

/* =
MODULES
= */

/*
specific Layout-Modules and Components. keep it light, specifics and variations will be defined in content.css
(Class-Name System: .moduleName-componentName-state)
*/

form > div {
    margin-bottom: 20px;
}

form label {
    display: inline-block;
    padding-bottom: 5px;
}

input,
select,
textarea,
button {
    font-family: inherit;
    font-size: inherit;
}

input[type="text"],
input[type="email"],
input[type="tel"],
textarea {
    display: block;
    cursor: pointer;
    width: 100%;
    border: 1px solid #000;
    background-color: transparent;
    padding: 5px 10px;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
textarea:focus {
}

/*
  ::-webkit-input-placeholder,
  :-moz-placeholder,
  ::-moz-placeholder,
  :-ms-input-placeholder {

  }

  input::-webkit-input-placeholder {
    color: #fff;
  }

  input:-moz-placeholder {
    color: #fff;
  }

  input::-moz-placeholder {
    color: #fff;
  }

  input:-ms-input-placeholder {
    color: #fff;
  }
*/

::-moz-selection {
    color: var(--white);
    background: var(--red);
    text-shadow: none;
}

::selection {
    color: var(--white);
    background: var(--red);
    text-shadow: none;
}

input:focus::-webkit-input-placeholder,
textarea:focus::-webkit-input-placeholder {
    color: transparent;
}

input:focus::-webkit-input-placeholder,
textarea:focus::-webkit-input-placeholder {
    color: transparent;
}

input:focus::-webkit-input-placeholder,
textarea:focus::-webkit-input-placeholder {
    color: transparent;
}

input:focus::-webkit-input-placeholder,
textarea:focus::-webkit-input-placeholder {
    color: transparent;
}

input:focus::-webkit-input-placeholder,
textarea:focus::-webkit-input-placeholder {
    color: transparent;
}

input:focus::-webkit-input-placeholder,
textarea:focus::-webkit-input-placeholder {
    color: transparent;
}

input:focus::-webkit-input-placeholder,
textarea:focus::-webkit-input-placeholder {
    color: transparent;
}

input:focus::-webkit-input-placeholder,
textarea:focus::-webkit-input-placeholder {
    color: transparent;
}

input:focus::-webkit-input-placeholder,
textarea:focus::-webkit-input-placeholder {
    color: transparent;
}

input:focus::-webkit-input-placeholder,
input:focus:-ms-input-placeholder,
input:focus::placeholder,
textarea:focus::-webkit-input-placeholder,
textarea:focus:-ms-input-placeholder,
textarea:focus::placeholder {
    color: transparent;
}

input[type="submit"],
button {
    /*-webkit-tap-highlight-color: rgba(0, 0, 0, 0);*/
}

input[type="submit"]:hover,
button:hover {
}

input[type="submit"]:active,
button:active {
}

input[type="submit"]:focus,
button:focus {
}

/*
HERO
*/

.section-hero {
    position: relative;
}

.section-hero img {
    width: 100%;
    max-width: none;
    display: block;
}

.section-hero .slider-caption {
    position: absolute;
    opacity: 0;
    transition: opacity 0.6s ease-in-out 0.3s;
}

.hero-item:not(:first-child),
.quote-item:not(:first-child),
.slider-item:not(:first-child) {
    display: none;
}

.js .section-hero .slider-caption {
    position: absolute;
    opacity: 1;
}

/*
Carousel
*/

.section-carousel {
    position: relative;
}

.carousel {
    margin-bottom: 30px;
    padding-left: 50px;
    padding-right: 50px;
}

.section-carousel .slider-nav {
    padding-left: 10px;
    padding-right: 10px;
}

/*
VITRINE
*/

.section-vitrine {
    padding-top: 100px;
    padding-bottom: 100px;
    background-attachment: fixed;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    text-align: center;
}

.color-swatch {
    width: 100%;
    height: 0;
    padding-bottom: 100%;
}

.bg-empty {
    background-color: #f5f5f5;
}

.bg-black {
    background-color: #000;
}

.black {
    color: #000;
}

.bg-red {
    background-color: #f00;
}

.red {
    color: #f00 !important;
}

.accordion-item {
    border-bottom: 2px solid #231c1c;
}

.accordion-item:first-child {
    border-top: 2px solid #231c1c;
}

.accordion-trigger {
    cursor: pointer;
    padding-top: 10px;
    padding-bottom: 10px;
}

/* .accordion-trigger:hover {
    background-color: #eee;
} */

/* End Modules */

/*
==========
= HEADER =
==========
 */

/*Header stuff (Navigation, Logo etc.)*/

header {
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    will-change: true;
    width: 100%;
    z-index: 10;
    background-color: var(--black85);
    transition: transform 0.2s ease-in-out;
}

.header-meta {
    background-color: var(--red);
    color: #fff;
    font-weight: 300;
    font-size: 16px;
    box-shadow: inset 0 -2px 3px 0 rgba(0, 0, 0, 0.2);
}

.scrolled_a_bit.nav_is_open header {
    transform: translateY(-30px);
    min-height: 100vh;
}

@media screen and (min-width: 768px) {
    .scrolled_a_bit.nav_is_open header {
        height: auto;
        overflow: visible;
        min-height: 0;
    }
}

.header-meta-dt {
    display: none;
}

.header-meta-m {
    display: block;
}

@media screen and (min-width: 768px) {
    .header-meta-dt {
        display: block;
    }
    .header-meta-m {
        display: none;
    }
}

.header-meta .frame {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    flex-wrap: wrap;
}

.header-meta p {
    margin-bottom: 0;
    line-height: 1.88;
}

.header-meta a {
    color: #fff;
    text-decoration: none;
}

.buffer {
    display: inline-block;
    padding-left: 10px;
    padding-right: 10px;
}

.logo-container {
    padding: 22px 30px;
}

@media screen and (min-width: 768px) {
    .logo-container {
        padding: 32px 5px;
    }
}

@media screen and (min-width: 1200px) {
    .logo-container {
        padding: 45px 15px;
    }
}

.logo {
    display: block;
    text-decoration: none;
    width: 129px;
    height: 25px;
}

@media screen and (min-width: 1200px) {
    .logo {
        width: 155px;
        height: 30px;
    }
}

/*--
Mobile-Nav
--*/

.main-nav-container {
    width: 100%;
    position: fixed;
    right: 0;
    top: 0;
    bottom: 0;
    max-height: 100vh;
    background-color: var(--black);
    overflow: auto;
    opacity: 0;
    transform: translateX(101%);
    transition: opacity 0.3s ease-in-out, transform 0s ease-in-out 0.3s;
    -webkit-overflow-scrolling: touch;
}

.nav_is_open .main-nav-container {
    opacity: 1;
    transform: translateX(0);
    transform: translateY(30px);
    transition: opacity 0.3s ease-in-out, transform 0s ease-in-out;
}

.main-nav-container-inner {
    position: relative;
    padding-bottom: 80px;
    min-height: 100vh;
}

.main-nav-container .logo-container:after {
    content: "";
    display: block;
    position: absolute;
    left: 30px;
    right: 30px;
    bottom: 0;
    height: 1px;
    background-color: #fff;
}

.main-nav {
    width: 100%;
    position: relative;
    font-size: 18px;
    padding-top: 50px;
    padding-bottom: 50px;
    padding-left: 30px;
    padding-right: 30px;
}

.main-nav {
    transform: translateY(25px);
    transition: transform 0.3s ease-in-out;
}

.nav_is_open .main-nav {
    transform: translateY(0);
}

.main-nav li {
    position: relative;
    list-style: none;
}

.main-nav > ul > li {
    position: relative;
    padding-right: 40px;
    padding-top: 5px;
    padding-bottom: 5px;
}

.main-nav > ul > li:before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 70px;
    height: 2px;
    background-color: var(--red);
}

.main-nav > ul > li:first-child:before {
    display: none;
}

.main-nav .dropper {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: transparent;
    border: none;
    top: 0;
    right: 0;
    bottom: 0;
    width: 40px;
    height: 59px;
}

.dropper-icn {
    display: block;
    width: 29px;
    height: 16px;
    position: relative;
    transition: all 0.2s ease-in-out;
}

.dropper-icn-svg {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    margin: 0 auto;
    width: 29px;
    height: 16px;
}

.dropper-icn-svg path {
    fill: var(--red);
}

.main-nav li.is_open .dropper-icn {
    transform: rotate(-180deg);
}

.main-nav a {
    text-decoration: none;
    width: 100%;
    display: block;
    font-size: 16px;
    color: #ffffff;
    letter-spacing: 0;
    line-height: 30px;
}

.main-nav > ul > li > a {
    font-size: 24px;
    color: var(--red);
    font-weight: 700;
    padding-top: 10px;
    padding-bottom: 9px;
    transition: all 0.35s ease-in-out;
}

@media (hover: hover) {
    .main-nav > ul > li > a:hover {
        color: var(--blue);
        transition: all 0.08s ease-in-out;
    }
}

/* Submenu */

.main-nav .sub-menu {
    list-style: none;
    max-height: 0;
    padding-top: 0;
    padding-bottom: 0;
    overflow: hidden;
    transition: all 0.2s ease-in-out;
    font-weight: 300;
    font-size: 13px;
    color: #ffffff;
    letter-spacing: 0;
    line-height: 25px;
}

.main-nav li.is_open .sub-menu {
    max-height: 600px;
    padding-bottom: 7px;
}

.main-nav .sub-menu a {
    transition: all 0.35s ease-in-out;
}

@media (hover: hover) {
    .main-nav .sub-menu a:hover {
        color: var(--red);
        transition: all 0.08s ease-in-out;
    }
}

/* Legal Nav */

.legal-nav {
    position: absolute;
    bottom: 0;
    padding: 22px 30px;
    font-size: 15px;
    color: var(--red);
    line-height: 26px;
    font-weight: 700;
}

.legal-nav a {
    text-decoration: none;
}

/* Social Nav */

.social-nav {
    position: absolute;
    right: 0;
    bottom: 0;
    padding: 22px 30px;
}

.social-nav ul {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.social-nav li {
    padding: 5px;
}

.social-nav a {
    display: block;
    text-decoration: none;
    width: 42px;
    height: 42px;
}

.social-nav a .hover-change-bg {
    fill: var(--white);
    transition: all 0.35s ease-in-out;
}

@media (hover: hover) {
    .social-nav a:hover .hover-change-bg {
        fill: var(--red);
        transition: all 0.08s ease-in-out;
    }
}

/* --
Main Nav Tablet
--*/

@media screen and (min-width: 768px) {
    .main-nav {
        width: 100%;
        max-width: 680px;
        padding-left: 50px;
        padding-right: 0;
        margin: 0 auto;
    }
    .main-nav-container,
    .main-nav-container-inner {
        max-height: 100vh;
        min-height: 0;
        bottom: auto;
    }
    .main-nav > ul {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        flex-wrap: wrap;
    }
    .main-nav > ul > li {
        flex: 0 0 33.3333%;
        padding-left: 20px;
        padding-right: 0;
        padding-bottom: 12px;
    }
    .main-nav > ul > li:before,
    .main-nav > ul > li:first-child:before {
        content: "";
        display: block;
        position: absolute;
        left: 20px;
        top: 53px;
        width: 70px;
        height: 2px;
        background-color: var(--red);
    }
    .main-nav a {
        font-size: 13px;
        line-height: 25px;
    }
    .main-nav > ul > li > a {
        font-size: 18px;
        line-height: 23px;
        padding-top: 10px;
        padding-bottom: 22px;
        margin-bottom: 12px;
    }
    .main-nav .sub-menu {
        height: auto;
        max-height: none;
    }
    .main-nav .dropper {
        display: none;
    }
    .main-nav-container .legal-nav,
    .main-nav-container .social-nav {
        display: none;
    }
}

/*--
MAin Nav DT
--*/

@media screen and (min-width: 1200px) {
    .main-nav {
        width: 100%;
        max-width: 1200px;
        position: relative;
        font-size: 18px;
        padding-top: 0;
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
    }
    .main-nav-container .logo-container {
        margin-bottom: 50px;
    }
    .main-nav-container .logo-container:after {
        left: 15px;
        right: 15px;
    }
    .main-nav > ul > li {
        flex: 0 0 16.666%;
        padding-left: 15px;
        padding-right: 15px;
    }
    .main-nav a {
        font-size: 16px;
        line-height: 30px;
    }
    .main-nav > ul > li > a {
        font-size: 21px;
    }
}

@media (hover: hover) and (min-width: 768px) {
    .main-nav .dropper {
        display: none;
    }
    .main-nav > ul > .menu-item-has-children:hover > .sub-menu {
        max-height: 600px;
    }
}

/* Menu-Button */

.menu-button,
.menu-button:hover {
    z-index: 10;
    display: block;
    position: absolute;
    top: 5px;
    right: 24px;
    width: 50px;
    height: 50px;
    border: none;
    background-color: transparent;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 24px 16px;
    outline: none;
}

@media screen and (min-width: 768px) {
    .menu-button,
    .menu-button:hover {
        top: 15px;
        right: 5px;
    }
    .menu-button:before {
        content: "MENÜ";
        display: block;
        position: absolute;
        right: calc(100% + 20px);
        font-weight: 700;
        font-size: 16px;
        color: #db1012;
        letter-spacing: 1px;
        top: 13px;
        opacity: 1;
        transition: opacity 0.28s ease-in-out;
    }
    .nav_is_open .menu-button:before {
        opacity: 0;
    }
}

@media screen and (min-width: 1200px) {
    .menu-button,
    .menu-button:hover {
        top: 35px;
        right: 8px;
    }
    .menu-button:before {
        top: 8px;
    }
}

.menu-button:focus {
    background-color: transparent;
}

@-webkit-keyframes menutop {
    0% {
        transform: translateY(0) rotate(0deg);
    }
    50% {
        transform: translateY(10px) rotate(0deg);
    }
    100% {
        width: 40px;
        transform: translateY(10px) rotate(45deg);
    }
}

@keyframes menutop {
    0% {
        transform: translateY(0) rotate(0deg);
    }
    50% {
        transform: translateY(10px) rotate(0deg);
    }
    100% {
        width: 40px;
        transform: translateY(10px) rotate(45deg);
    }
}

@-webkit-keyframes menubottom {
    0% {
        transform: translateY(0) rotate(0deg);
    }
    50% {
        transform: translateY(-10px) rotate(0deg);
    }
    100% {
        width: 40px;
        transform: translateY(-10px) rotate(-45deg);
    }
}

@keyframes menubottom {
    0% {
        transform: translateY(0) rotate(0deg);
    }
    50% {
        transform: translateY(-10px) rotate(0deg);
    }
    100% {
        width: 40px;
        transform: translateY(-10px) rotate(-45deg);
    }
}

@-webkit-keyframes menutopstart {
    0% {
        width: 40px;
        transform: translateY(10px) rotate(45deg);
    }
    50% {
        transform: translateY(10px) rotate(0deg);
    }
    100% {
        transform: translateY(0) rotate(0deg);
    }
}

@keyframes menutopstart {
    0% {
        width: 40px;
        transform: translateY(10px) rotate(45deg);
    }
    50% {
        transform: translateY(10px) rotate(0deg);
    }
    100% {
        transform: translateY(0) rotate(0deg);
    }
}

@-webkit-keyframes menubottomstart {
    0% {
        width: 40px;
        transform: translateY(-10px) rotate(-45deg);
    }
    50% {
        transform: translateY(-10px) rotate(0deg);
    }
    100% {
        transform: translateY(0) rotate(0deg);
    }
}

@keyframes menubottomstart {
    0% {
        width: 40px;
        transform: translateY(-10px) rotate(-45deg);
    }
    50% {
        transform: translateY(-10px) rotate(0deg);
    }
    100% {
        transform: translateY(0) rotate(0deg);
    }
}

.nav-line {
    width: 40px;
    height: 1px;
    background-color: var(--red);
    left: 0;
    right: 0;
    margin: 0 auto;
    transition: all 0.35s ease-in-out;
}

@media screen and (min-width: 1200px) {
    .nav-line {
        width: 50px;
        height: 2px;
    }
}

@media (hover: hover) {
    .menu-button:hover .nav-line {
        background-color: var(--white);
        transition: all 0.08s ease-in-out;
    }
}

.line-top {
    position: absolute;
    top: 15px;
    -webkit-animation: menutopstart 0.5s forwards;
    animation: menutopstart 0.5s forwards;
}

@media screen and (min-width: 1200px) {
    .line-top {
        top: 12px;
    }
}

.nav_is_open .line-top {
    top: 16px;
    -webkit-animation: menutop 0.5s forwards;
    animation: menutop 0.5s forwards;
}

.line-center {
    position: absolute;
    top: 50%;
    /* -webkit-transition: opacity 0.2s ease-in-out 0.2s;
    transition: opacity 0.2s ease-in-out 0.2s; */
}

.nav_is_open .line-center {
    opacity: 0;
}

.line-bottom {
    position: absolute;
    bottom: 13px;
    -webkit-animation: menubottomstart 0.5s forwards;
    animation: menubottomstart 0.5s forwards;
}

@media screen and (min-width: 1200px) {
    .line-bottom {
        bottom: 10px;
    }
}

.nav_is_open .line-bottom {
    -webkit-animation: menubottom 0.5s forwards;
    animation: menubottom 0.5s forwards;
}

@media screen and (min-width: 1200px) {
    .nav_is_open .line-bottom {
        bottom: 12px;
    }
}

/*
===========
= CONTENT =
===========
 */

/*Content Styling for Page Templates, e.g. variations from the module section*/

.page-modules section {
    margin-bottom: 150px;
}

.page-modules .section-hl {
    font-size: 16px;
    font-weight: 700;
    padding-bottom: 5px;
    line-height: 1.2;
    margin-bottom: 35px;
    color: #aaa;
    border-bottom: 1px solid #aaa;
}

/* .hero */

.section-hero .slick-track {
    line-height: 0;
}

.section-hero-alt {
    padding-bottom: 70px;
}

.section-hero-alt + .section-txt {
    padding-top: 33px;
}

@media screen and (min-width: 768px) {
    .section-hero-alt {
        padding-bottom: 70px;
    }
    .section-hero-alt + .section-txt {
        padding-top: 150px;
    }
}

.hero-item img,
.hero-item video {
    display: block;
    width: 100%;
    height: 100% !important;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    min-height: 555px;
}

@media screen and (min-width: 768px) {
    .hero-item img,
    .hero-item video {
        min-height: 596px;
    }
}

@media screen and (min-width: 1200px) {
    .hero-item img,
    .hero-item video {
        min-height: 0;
        max-height: calc(100vh - 120px);
    }
}

.slick-dotted.hero-slider,
.slick-dotted.hero-slider-alt {
    margin-bottom: 0;
}

.section-hero .slider-caption {
    position: absolute;
    width: auto;
    bottom: 50px;
    left: 0;
    right: 0;
}

.hero-caption-txt {
    margin-bottom: 25px;
}

.hero-caption-txt p {
    text-transform: uppercase;
    font-size: 16px;
    letter-spacing: 1px;
    line-height: 19px;
    max-width: 470px;
}

.slider-caption-inner {
    max-width: 375px;
}

@media screen and (min-width: 1200px) {
    .section-hero .slider-caption {
        position: absolute;
        width: auto;
        bottom: 70px;
    }
    .slider-caption-inner {
        max-width: 650px;
    }
}

.hero-slider .slick-dots,
.section-hero-alt .slider-dots,
.quote-slider .slick-dots,
.section-funbox .slick-dots {
    position: absolute;
    z-index: 1;
    left: 0;
    right: 0;
    margin: 0 auto;
    text-align: right;
    bottom: 20px;
    max-width: 698px;
    padding-left: 30px;
    padding-right: 30px;
}
.hero-slider .slick-dots {
    position: absolute;
    z-index: 1;
    left: auto;
    right: 0;
    margin: 0;
    text-align: right;
    bottom: 20px;
    max-width: 698px;
    padding-left: 30px;
    padding-right: 30px;
    display: inline-block;
    width: auto;
}
.section-hero .slick-track {
    display: flex !important;
}

.section-hero .slick-slide > div {
    display: flex !important;
    height: 100% !important;
}
.section-hero .hero-item {
    height: inherit !important;
}
.quote-slider {
    line-height: 0;
}

.slick-track {
    display: flex !important;
}

.slick-slide {
    height: auto;
}

.section-hero-alt .slick-dots {
    text-align: right;
}

@media screen and (min-width: 768px) {
    .hero-slider .slick-dots,
    .section-hero-alt .slider-dots,
    .quote-slider .slick-dots,
    .section-funbox .slick-dots {
        position: absolute;
        text-align: right;
        bottom: 60px;
        padding-left: 5px;
        padding-right: 5px;
    }
    .section-hero-alt .slider-dots {
        bottom: 55px;
    }
}

@media screen and (min-width: 1200px) {
    .hero-slider .slick-dots,
    .section-hero-alt .slider-dots,
    .quote-slider .slick-dots,
    .section-funbox .slick-dots {
        max-width: 1200px;
        bottom: 60px;
        padding-left: 15px;
        padding-right: 15px;
    }
}

.quote-img-dt.has_mobile_alternative,
.hero-img-dt.has_mobile_alternative {
    display: none;
}

.quote-img-m,
.hero-img-m {
    display: block;
}

@media screen and (min-width: 768px) {
    .quote-img-dt.has_mobile_alternative,
    .hero-img-dt.has_mobile_alternative {
        display: block;
    }
    .quote-img-m,
    .hero-img-m {
        display: none !important;
    }
}

/* Color-Caption */

@media screen and (min-width: 768px) {
    .nav-pos-helper {
        position: relative;
    }
}

@-webkit-keyframes animateUp {
    from {
        opacity: 0;
        transform: translateY(40px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes animateUp {
    from {
        opacity: 0;
        transform: translateY(40px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.color-caption {
    margin-top: -118px;
    padding-left: 10px;
    padding-right: 10px;
}

.color-caption-inner {
    width: 100%;
    max-width: 345px;
    padding: 23px 30px;
    background-color: #fff;
    box-shadow: 0 18px 45px 0 rgba(0, 0, 0, 0.5);
    -webkit-animation-name: animateUp;
    animation-name: animateUp;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-delay: 0.5s;
    animation-delay: 0.5s;
    opacity: 0;
    transform: translateY(40px);
}

.color-caption h2 {
    font-size: 26px;
    line-height: 32px;
}

@media screen and (min-width: 768px) {
    .color-caption {
        margin-top: -142px;
    }
    .color-caption-inner {
        max-width: 538px;
        padding: 40px 70px;
    }
    .color-caption h2 {
        font-size: 34px;
        line-height: 42px;
    }
}

@media screen and (min-width: 1200px) {
    .color-caption {
        margin-top: -196px;
    }
    .color-caption-inner {
        width: 100%;
        max-width: 670px;
        padding: 55px 100px;
    }
    .color-caption h2 {
        font-size: 42px;
        line-height: 48px;
    }
}

/* Specific Color-Classes */

/* red */

.bg-red {
    background-color: var(--red) !important;
    color: var(--black);
}

.hl1-red h1,
.hl2-red h2,
.hl3-red h3,
.txt-red p,
.quote-red blockquote > p,
.hl2-red blockquote > p,
.txt-red .fun-content-txt a {
    color: var(--red) !important;
}

.txt-red .fun-content-txt a {
    transition: all 0.35s ease-in-out;
}

@media (hover: hover) {
    .txt-red .fun-content-txt a:hover {
        color: var(--black) !important;
        transition: all 0.08s ease-in-out;
    }
}

.line-red h1:after,
.line-red h2:after,
.line-red blockquote:after {
    background-color: var(--red) !important;
}

.cta-red .cta {
    color: var(--red) !important;
    border-color: var(--red);
}

.cta-red .cta:before {
    border-color: transparent transparent transparent var(--red) !important;
}

.cta-red .cta:hover,
.cta-red .cta:active,
.cta-red .cta.active {
    background-color: var(--red) !important;
    color: var(--white) !important;
    border-color: var(--red) !important;
}

.cta-red .cta:hover:before,
.cta-red .cta:active:before,
.cta-red .cta.active:before {
    border-color: transparent transparent transparent var(--white) !important;
}

/* blue */

.bg-blue {
    background-color: var(--blue) !important;
    color: var(--black);
}

.hl1-blue h1,
.hl2-blue h2,
.hl3-blue h3,
.txt-blue p,
.txt-blue .fun-content-txt a,
.quote-blue blockquote > p,
.hl2-blue blockquote > p {
    color: var(--blue) !important;
}

.txt-blue .fun-content-txt a {
    transition: all 0.35s ease-in-out;
}

@media (hover: hover) {
    .txt-blue .fun-content-txt a:hover {
        color: var(--red) !important;
    }
    .txt-black .fun-content-txt a {
        transition: all 0.08s ease-in-out;
    }
}

.line-blue h1:after,
.line-blue h2:after,
.line-blue blockquote:after {
    background-color: var(--blue) !important;
}

.cta-blue .cta {
    color: var(--blue) !important;
    border-color: var(--blue) !important;
}

.cta-blue .cta:before {
    border-color: transparent transparent transparent var(--blue) !important;
}

.cta-blue .cta:hover,
.cta-blue .cta:active,
.cta-blue .cta.active {
    background-color: var(--blue) !important;
    color: var(--black) !important;
    border-color: var(--blue) !important;
}

.cta-blue .cta:hover:before,
.cta-blue .cta:active:before,
.cta-blue .cta.active:before {
    border-color: transparent transparent transparent var(--black) !important;
}

/* black */

.bg-black {
    background-color: var(--black) !important;
    color: var(--white);
}

.bg-dark {
    background-color: var(--black) !important;
}

.hl1-black h1,
.hl2-black h2,
.hl3-black h3,
.txt-black p,
.txt-black .fun-content-txt a,
.quote-black blockquote > p,
.hl2-black blockquote > p {
    color: var(--black) !important;
}

.txt-black .fun-content-txt a {
    transition: all 0.35s ease-in-out;
}

@media (hover: hover) {
    .txt-black .fun-content-txt a:hover {
        color: var(--red) !important;
        transition: all 0.08s ease-in-out;
    }
}

.line-black h1:after,
.line-black h2:after,
.line-black blockquote:after {
    background-color: var(--black) !important;
}

.cta-black .cta {
    color: var(--black) !important;
    border-color: var(--black) !important;
}

.cta-black .cta:before {
    border-color: transparent transparent transparent var(--black) !important;
}

.cta-black .cta:hover,
.cta-black .cta:active,
.cta-black .cta.active {
    background-color: var(--black) !important;
    color: var(--white) !important;
    border-color: var(--black) !important;
}

.cta-black .cta:hover:before,
.cta-black .cta:active:before,
.cta-black .cta.active:before {
    border-color: transparent transparent transparent var(--white) !important;
}

/* white */

.bg-white {
    background-color: var(--white) !important;
    color: var(--black);
}

.hl1-white h1,
.hl2-white h2,
.hl3-white h3,
.txt-white p,
.txt-white .fun-content-txt a,
.quote-white blockquote > p,
.hl2-white blockquote > p {
    color: var(--white) !important;
}

.txt-white .fun-content-txt a {
    transition: all 0.35s ease-in-out;
}

@media (hover: hover) {
    .txt-white .fun-content-txt a:hover {
        color: var(--red) !important;
        transition: all 0.08s ease-in-out;
    }
    .bg-red .fun-content-txt a:hover {
        color: var(--black) !important;
    }
}

.line-white h1:after,
.line-white h2:after,
.line-white blockquote:after {
    background-color: var(--white) !important;
}

.cta-white .cta {
    color: var(--white) !important;
    border-color: var(--white) !important;
}

.cta-white .cta:before {
    border-color: transparent transparent transparent var(--white) !important;
}

.cta-white .cta:hover,
.cta-white .cta:active,
.cta-white .cta.active {
    background-color: var(--white) !important;
    color: var(--red) !important;
    border-color: var(--white) !important;
}

.cta-white .cta:hover:before,
.cta-white .cta:active:before,
.cta-white .cta.active:before {
    border-color: transparent transparent transparent var(--red) !important;
}

.section-hero-txt .cta {
    background-color: rgba(0, 0, 0, 0.5) !important;
}

/* Intro */

.section-intro,
.section-txt,
.fun-content,
.section-carousel-s,
.section-video,
.section-tabbed {
    padding-top: 53px;
    padding-bottom: 22px;
}

.section-video {
    padding-top: 0;
}

.txt-before-logogrid {
    padding-bottom: 0;
}

@media screen and (min-width: 768px) {
    .section-intro,
    .section-txt,
    .fun-content,
    .section-carousel-s,
    .section-video,
    .section-tabbed {
        padding-top: 53px;
        padding-bottom: 32px;
    }
    .txt-before-logogrid {
        padding-bottom: 0;
    }
    .section-video {
        padding-top: 0;
    }
}

@media screen and (min-width: 1200px) {
    .section-intro,
    .section-txt,
    .fun-content,
    .section-carousel-s,
    .section-video,
    .section-tabbed {
        padding-top: 150px;
        padding-bottom: 150px;
    }
    .txt-before-logogrid {
        padding-bottom: 0;
    }
    .section-video {
        padding-top: 0;
    }
}

.intro-txt,
.txt,
.fun-content-txt,
.txt-group {
    width: 100%;
    max-width: 470px;
    margin-bottom: 25px;
}

.section-intro {
    position: relative;
}

@media screen and (min-width: 1200px) {
    .intro-txt,
    .txt,
    .fun-content-txt,
    .txt-group {
        max-width: 670px;
        margin-bottom: 70px;
    }
}

.section-intro .anniversary-img {
    position: relative;
    width: 70px;
    pointer-events: none;
    margin-bottom: 20px;
}

@media screen and (min-width: 750px) {
    .section-intro .anniversary-img {
        position: absolute;
        top: 0;
        right: 15px;
    }
}

.txt-right .txt-container {
    display: flex;
    justify-content: flex-end;
}

.txt-left .txt-container {
    display: flex;
    justify-content: flex-start;
}

.slider-caption-inner .words .word {
    opacity: 0;
    display: inline-block;
    transform: translateY(30px);
    transition: opacity 0.7s ease-in-out, transform 0.6s cubic-bezier(0.39, 0.58, 0.57, 1);
    transition-delay: calc(0.04s * (var(--word-index)));
}

.start-animation .slick-current .slider-caption-inner .words .word {
    opacity: 1;
    transform: translateY(0);
}

/* Fun-content */

.fun-media {
    width: 100%;
}

.fun-media img {
    display: block;
}

@media screen and (min-width: 768px) {
    .funbox {
        display: flex;
        justify-content: flex-start;
    }
    .funbox.reverse {
        flex-direction: row-reverse;
    }
    .fun-content {
        display: flex;
        justify-content: flex-end;
        flex: 0 0 calc(50% + 10px);
        padding-left: 45px;
        padding-right: 45px;
    }
    .funbox.reverse .fun-content {
        justify-content: flex-start;
    }
    .fun-content-inner {
        width: 100%;
        max-width: 570px;
    }
    .fun-img {
        flex: 1 1 50%;
    }
    .fun-media img {
        width: 100%;
        height: 100% !important;
        -o-object-fit: cover;
        object-fit: cover;
        -o-object-position: center;
        object-position: center;
    }
}

@media screen and (min-width: 1200px) {
    .fun-content {
        flex: 0 0 calc(50% + 85px);
        padding-left: 100px;
        padding-right: 100px;
    }
}

.fun-hl-quote {
    position: relative;
    font-family: "Windsor", Georgia, serif;
    font-size: 32px;
    line-height: 39px;
    padding-bottom: 19px;
    margin-bottom: 22px;
}

@media screen and (min-width: 768px) {
    .fun-hl-quote {
        padding-bottom: 20px;
        margin-bottom: 25px;
    }
}

@media screen and (min-width: 1200px) {
    .fun-hl-quote {
        font-size: 56px;
        line-height: 67px;
    }
}

.social-row {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin-bottom: 10px;
}

.social-img {
    position: relative;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    margin-right: 10px;
}

.social-link {
    font-weight: 700;
    font-size: 16px;
    color: #ffffff;
    letter-spacing: 0;
    line-height: 60px;
    text-transform: uppercase;
    margin-bottom: 0;
    transition: color 0.2s ease-in-out;
}

a.social-row {
    text-decoration: none;
    text-transform: uppercase;
}

.social-img-regular,
.social-img-hover {
    position: absolute;
    top: 0;
    left: 0;
    transition: opacity 0.2s ease-in-out;
}

.social-img-hover {
    opacity: 0;
}

@media (hover: hover) {
    a.social-row:hover p {
        color: var(--black) !important;
    }
    a.social-row:hover .social-img-regular {
        opacity: 0;
    }
    a.social-row:hover .social-img-hover {
        opacity: 1;
    }
}

/* Quote-Slider */

.quote-slider .slider-caption {
    position: absolute;
    left: 0;
    right: 0;
    top: 45px;
}

.slider-caption blockquote .word {
    opacity: 0;
    display: inline-block;
    transform: translateY(30px);
    transition: opacity 0.7s ease-in-out, transform 0.6s cubic-bezier(0.39, 0.58, 0.57, 1);
    transition-delay: calc(0.04s * (var(--word-index)));
}

.slick-current .slider-caption blockquote .word {
    opacity: 1;
    transform: translateY(0);
}

.quote-item img {
    display: block;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center bottom;
    object-position: center bottom;
    width: 100%;
    height: 100% !important;
    min-height: 688px;
}

@media screen and (min-width: 768px) {
    .quote-slider .slider-caption {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        top: 50%;
        transform: translateY(-50%);
    }
    .quote-slider .slider-caption.reverse {
        justify-content: flex-end;
    }
    .quote-slider .quote-group {
        flex: 0 0 66.666%;
    }
    .quote-item img {
        min-height: 450px;
    }
}

@media screen and (min-width: 1200px) {
}

/* Carousel-S */

.carousel-s-container {
    position: relative;
}

.carousel-s {
    max-width: 1000px;
    padding-left: 50px;
    padding-right: 50px;
}

.carousel-s .carousel-item {
    padding: 20px;
    display: flex !important;
    text-align: center;
    justify-content: center;
}

.carousel-s .carousel-item img {
    display: block;
}

.carousel-s-container .slider-nav {
    transform: translateY(-45px);
}

/* logo-grid */

.section-logogrid {
    padding-top: 60px;
    padding-bottom: 60px;
}

@media screen and (min-width: 768px) {
    .section-logogrid {
        padding-top: 60px;
        padding-bottom: 60px;
    }
}

@media screen and (min-width: 1200px) {
    .section-logogrid {
        padding-top: 60px;
        padding-bottom: 180px;
    }
}

.logogrid {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
}

.logo-item {
    flex: 0 0 50%;
    padding: 5px;
}

@media screen and (min-width: 450px) {
    .logo-item {
        flex: 0 0 33.33%;
    }
}

@media screen and (min-width: 600px) {
    .logo-item {
        flex: 0 0 25%;
    }
}

@media screen and (min-width: 768px) {
    .logo-item {
        flex: 0 0 20%;
        padding: 10px;
    }
}

@media screen and (min-width: 1200px) {
    .logo-item {
        flex: 0 0 16.666%;
        padding: 15px;
    }
}

/* Funbox Slider */

.section-funbox {
    position: relative;
}

@media screen and (min-width: 768px) {
    .slick-initialized .funbox.slider-item {
        display: flex !important;
    }
}

@-webkit-keyframes closeSlideOverlay {
    0% {
        width: 55vw;
    }
    /* 25% {
        width: 55vw;
    } */
    100% {
        width: 100vw;
    }
}

@keyframes closeSlideOverlay {
    0% {
        width: 55vw;
    }
    /* 25% {
        width: 55vw;
    } */
    100% {
        width: 100vw;
    }
}

.funslider .slider-item:after {
    content: "";
    display: block;
    pointer-events: none;
    opacity: 1;
    width: 100vw;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: var(--red);
    /* animation-name: closeSlideOverlay;
    animation-delay: 2s; */
    /* animation-delay: 1.6s; */
    transition: width 0.5s ease-in-out 0.25s, opacity 0.25s ease-in-out;
}

.funslider .slider-item.bg-red:after {
    background-color: var(--red);
}

.funslider .slider-item.bg-black:after {
    background-color: var(--black);
}

.funslider .slider-item.bg-white:after {
    background-color: var(--white);
}

.funslider .slider-item.bg-blue:after {
    background-color: var(--blue);
}

.funslider .slider-item.reverse:after {
    left: auto;
    right: 0;
}

.funslider .slick-current .slider-item:after {
    /* animation-name: closeSlideOverlay;
    animation-direction: reverse;
    animation-duration: 1s;
    animation-delay: 2s; */
    opacity: 0;
    transition: width 0.5s ease-in-out 1.25s, opacity 0.25s ease-in-out 1.75s;
    width: calc(50vw + 10px);
}

@media screen and (min-width: 1200px) {
    .funslider .slick-current .slider-item:after {
        width: calc(50% + 85px);
    }
}

@media screen and (min-width: 768px) {
    .funslider .slick-initialized .slick-slide {
        display: block;
        transition: opacity 500ms ease 0.5s !important;
    }
}

/* Slider Custom Transition */

/* Full Img */

.funslider.slick-dotted {
    margin-bottom: 0 !important;
}

.section-fullimg {
    position: relative;
}

.section-fullimg img {
    width: 100%;
    /* height: 100vh !important; */
    display: block;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
}

/* Slider Large (Carousel...) */

.section-slider-l {
    line-height: 0;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
}

.section-slider-l .slider-item img {
    max-height: 330px;
    height: 330px !important;
    width: auto;
    border-right: 1px solid #fff;
}

@media screen and (min-width: 768px) {
    .section-slider-l .slider-item img {
        max-height: 450px;
        height: 450px !important;
    }
}

@media screen and (min-width: 1200px) {
    .section-slider-l .slider-item img {
        max-height: 600px;
        height: 600px !important;
    }
}

.section-slider-l .slider-item {
    border-right: 1px;
}

.section-slider-l + .section-fullimg {
    border-top: 1px solid #fff;
}

/* Grid 2 (Projekte, Mitarbeiter) */

.category-filter-group {
    margin-bottom: 30px;
}

@media screen and (min-width: 1200px) {
    .category-filter-group {
        margin-bottom: 65px;
    }
}

.section-grid2 {
    padding-top: 35px;
    padding-bottom: 35px;
}

.section-grid2:first-child {
    padding-top: 140px;
}

@media screen and (min-width: 768px) {
    .grid2 {
        display: flex;
        align-items: flex-start;
        justify-content: flex-start;
        flex-wrap: wrap;
    }
}

.grid-item {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 25px;
}

.isotope-grid .grid-item {
    width: 100%;
}

@media screen and (min-width: 768px) {
    .grid-item {
        flex: 0 1 50%;
        max-width: 390px;
        margin-left: 0;
        margin-right: 0;
        margin-bottom: 45px;
    }
    .isotope-grid .grid-item {
        max-width: 50%;
        width: 50%;
    }
}

@media screen and (min-width: 1200px) {
    .grid-item,
    .isotope-grid .grid-item {
        max-width: 600px;
        margin-bottom: 60px;
    }
}

.grid-item-img {
    display: block;
    margin-bottom: 10px;
}

@media screen and (min-width: 1200px) {
    .grid-item-img {
        margin-bottom: 25px;
    }
}

.grid-item-img img {
    transition: all 0.32s ease-in-out;
}

@media (hover: hover) {
    a.grid-item-img:hover img {
        transform: scale(1.02);
        transition: all 0.24s ease-in-out;
    }
}

.grid-item-img img {
    display: block;
}

.grid-item a {
    text-decoration: none;
    overflow: hidden;
}

.grid-title {
    padding-bottom: 10px;
    margin-bottom: 15px;
}

@media screen and (min-width: 1200px) {
    .grid-title {
        padding-bottom: 20px;
        margin-bottom: 35px;
    }
}

.grid-title,
.grid-title a {
    color: var(--black);
    font-size: 16px;
    line-height: 22px;
    letter-spacing: 0;
}

@media screen and (min-width: 1200px) {
    .grid-title,
    .grid-title a {
        font-size: 21px;
        line-height: 25px;
        color: #231c1c;
    }
}

.grid-title a:hover {
    color: var(--red);
}

.category-tags,
.team-txt {
    font-size: 15px;
    line-height: 19px;
}

.category-tags,
.tag-btn {
    color: var(--red);
    background-color: transparent !important;
}

@media (hover: hover) {
    .tag-btn:hover {
        color: var(--black);
    }
}

@media screen and (min-width: 1200px) {
    .category-tags,
    .team-txt {
        font-size: 16px;
        line-height: 21px;
    }
}

.category-btn {
    font-weight: 700;
    font-size: 16px;
    line-height: 25px;
    color: var(--black);
    background-color: transparent !important;
    margin-right: 20px;
    outline: none;
    margin-bottom: 9px;
}

.category-btn.is-checked {
    border-bottom: 2px solid var(--red);
    color: var(--red);
}

@media screen and (min-width: 1200px) {
    .category-btn {
        font-size: 21px;
        margin-right: 30px;
        line-height: 34px;
    }
    .category-btn.is-checked {
        border-bottom: 3px solid var(--red);
    }
}

@media screen and (min-width: 768px) {
    .filter-btn-break {
        display: none;
    }
}

.bg-txt-container {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none !important;
    opacity: 0.04;
}

.bg-txt-container p {
    text-align: center;
    -webkit-hyphens: none !important;
    -ms-hyphens: none !important;
    hyphens: none !important;
    white-space: nowrap !important;
    font-weight: 700;
    font-size: 180px;
    line-height: 1.2;
    color: var(--black);
}

@media screen and (min-width: 1200px) {
    .bg-txt-container p {
        font-size: 240px;
    }
}

.bg-black .bg-txt-container p {
    color: var(--white);
}

/* Single referenz  */

.intro-moreposts {
    padding-bottom: 0;
}

.section-moreposts {
    padding-top: 65px;
}

@media screen and (min-width: 768px) {
    .section-moreposts {
        padding-top: 95px;
    }
}

@media screen and (min-width: 1200px) {
    .section-moreposts {
        padding-top: 115px;
    }
}

.section-moreposts .txt {
    margin-bottom: 50px;
}

.section-provenexpert {
    padding-top: 45px;
}

@media screen and (min-width: 768px) {
    .section-provenexpert {
        padding-top: 45px;
    }
}

@media screen and (min-width: 1200px) {
    .section-provenexpert {
        padding-top: 90px;
    }
}

/* Form-Item */

.section-formintro {
    padding-bottom: 0;
}

.section-form {
    padding-top: 0;
    padding-bottom: 0;
    margin-bottom: 0;
}

input[type="checkbox"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: none;
    border-radius: 0;
    font-size: 1em;
    width: 100%;
}

input[type="checkbox"] {
    width: auto;
    float: left;
    margin-right: 0.75em;
    background: transparent;
    border: none;
}

input[type="checkbox"]:checked,
input[type="checkbox"]:not(:checked) {
    background: transparent;
    position: relative;
    visibility: hidden;
    margin: 0;
    padding: 0;
}

input[type="checkbox"] + .wpcf7-list-item-label {
    cursor: pointer;
    display: block;
    padding-left: 45px;
    font-weight: 700;
    font-size: 13px;
    color: var(--black);
    letter-spacing: 0.81px;
    line-height: 16px;
    text-transform: uppercase;
}

.wpcf7-list-item {
    position: relative;
}

.wpcf7-acceptance > .wpcf7-list-item {
    margin-left: 0;
}

input[type="checkbox"]:checked + .wpcf7-list-item-label::before,
input[type="checkbox"]:not(:checked) + .wpcf7-list-item-label::before {
    content: " ";
    display: inline-block;
    width: 20px;
    height: 20px;
    position: absolute;
    left: 0;
    top: 4px;
    border: 1px solid var(--black);
    background: white;
    margin-right: 1em;
    /* box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, .1); */
}

@media screen and (min-width: 1200px) {
    input[type="checkbox"]:checked + .wpcf7-list-item-label::before,
    input[type="checkbox"]:not(:checked) + .wpcf7-list-item-label::before {
        content: " ";
        display: inline-block;
        width: 30px;
        height: 30px;
        position: absolute;
        left: 0;
        top: 4px;
        background: white;
        margin-right: 1em;
    }
}

input[type="checkbox"]:hover + .wpcf7-list-item-label::before {
    background: var(--red);
    /* box-shadow: inset 0 0 0 2px white; */
}

input[type="checkbox"]:checked + .wpcf7-list-item-label::before {
    background: var(--red);
    /* box-shadow: inset 0 0 0 2px white; */
}

@media screen and (min-width: 1200px) {
    .form-item {
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
        margin-bottom: 10px;
    }
}

.label-container {
    color: var(--red);
    letter-spacing: 1px;
    padding: 15px 0 5px;
}

@media screen and (min-width: 1200px) {
    .label-container {
        flex: 0 0 300px;
        font-size: 16px;
        letter-spacing: 1px;
        text-align: right;
        padding-right: 15px;
    }
}

@media screen and (min-width: 1200px) {
    .check-group .formfield-container {
        padding-top: 5px;
    }
}

.wpcf7-checkbox .wpcf7-list-item {
    display: block;
    margin-left: 0;
}

.formfield-plz-ort {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
}

.form-field-plz {
    flex: 0 0 70px;
    margin-right: 10px;
}

.form-field-ort {
    width: 100%;
}

.formfield-container {
    width: 100%;
}

@media screen and (min-width: 1200px) {
    .formfield-container {
        max-width: 500px;
    }
}

@media screen and (min-width: 768px) {
    .form-field-plz {
        flex: 0 0 170px;
    }
}

.form-subsection {
    margin-bottom: 10px;
}

@media screen and (min-width: 768px) {
    .form-subsection {
        margin-bottom: 25px;
    }
}

input[type="checkbox"] + .wpcf7-list-item-label {
    font-weight: 300;
    font-size: 13px;
    letter-spacing: 0;
    line-height: 20px;
    text-transform: none;
}

@media screen and (min-width: 768px) {
    input[type="checkbox"] + .wpcf7-list-item-label {
        font-size: 16px;
        line-height: 24px;
    }
}

input[type="submit"] {
    background-image: url(images/ui/arrow-right-red.svg);
    background-position: 15px center;
    background-repeat: no-repeat;
    background-size: 10px 10px;
}

@media (hover: hover) {
    input[type="submit"]:hover {
        background-image: url(images/ui/arrow-right-white.svg);
    }
}

@media screen and (min-width: 1200px) {
    input[type="submit"] {
        background-position: 20px center;
        background-size: 15px 15px;
    }
}

input[type="file"] {
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    opacity: 0;
    max-width: 100%;
}

.custom-file-upload .wpcf7-form-control-wrap {
    display: block !important;
    height: 50px;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
}

.custom-file-upload {
    background-color: var(--black);
    border-color: var(--black);
    color: var(--white);
    cursor: pointer;
    background-image: none;
    padding-left: 1.1em;
}

.custom-file-upload:before {
    display: none;
}

@media screen and (min-width: 768px) {
    .page-id-364 .content-section-0 {
        padding-bottom: 0;
    }
}

.scroll-fadein {
    opacity: 0;
    transform: translateY(70px);
    -webkit-transform: translateY(70px);
    -moz-transform: translateY(70px);
    -ms-transform: translateY(70px);
    -o-transform: translateY(70px);
    transition: transform 0.6s ease-out, opacity 0.5s ease-out 0.08s;
    -webkit-transition: transform 0.6s ease-out, opacity 0.5s ease-out 0.08s;
    -moz-transition: transform 0.6s ease-out, opacity 0.5s ease-out 0.08s;
    -ms-transition: transform 0.6s ease-out, opacity 0.5s ease-out 0.08s;
    -o-transition: transform 0.6s ease-out, opacity 0.5s ease-out 0.08s;
}

.scroll-fadein.is_visible {
    opacity: 1;
    transform: translateY(0);
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
}

@media screen and (min-width: 768px) {
    .flex-dt {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
    }
}

.flex-dt .cta {
    margin-bottom: 50px;
}

.section-newsteaser .grid-title,
.section-newsteaser .grid-title a {
    color: #fff;
}

@media (hover: hover) {
    .section-newsteaser .grid-title a:hover {
        color: #f00;
    }
}

.blog .intro-txt {
    margin-top: 80px;
}

@media screen and (min-width: 1200px) {
    .blog .intro-txt {
        margin-top: 80px;
        margin-bottom: -50px;
    }
}

.section-newsteaser {
    padding-top: 100px;
    border-bottom: 1px solid var(--red);
}

.section-newsteaser .section-hl {
    margin-bottom: 65px;
}

.section-newsteaser .grid-title:after {
    background-color: var(--red);
}

/* Video-Module */

.video-container {
    background-color: var(--red);
    margin-bottom: 114px;
}

.video-inner {
    transform: translateY(114px);
    padding-bottom: 42px;
}

.play-vid-btn-style {
    display: block;
    width: 20%;
    max-width: 120px;
    position: absolute;
    top: calc(50% - 60px);
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    background-color: transparent !important;
}

@media (hover: hover) {
    .play-vid-btn-style:hover {
        cursor: pointer;
    }
    .play-vid-btn-style:hover circle {
        stroke: var(--red);
    }
    .play-vid-btn-style:hover polygon {
        fill: var(--red);
    }
}

.tabbed-intro {
    margin-bottom: 42px;
}

.tab-img-aside {
    position: absolute;
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
    padding-top: 40px;
    padding-left: 10px;
    padding-right: 10px;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
    /* height: 0;
    overflow: hidden; */
}

.tab-img-aside.is_active {
    opacity: 1;
    transition: opacity 0.3s ease-in-out 0.35s;
    height: auto;
    position: relative;
}

@media screen and (min-width: 1200px) {
    .tab-img-aside {
        position: absolute;
        top: 0;
        right: 0;
        max-width: 40vw;
        margin-left: 0;
        margin-right: 0;
        padding-top: 0;
        padding-left: 0;
        padding-right: 0;
    }
    .tab-img-aside.is_active {
        position: absolute;
    }
}

.tab-area {
    position: relative;
}

/* Accordion */

.section-tabbed .bg-txt-container {
    top: 450px;
}

.accordion-trigger {
    position: relative;
    padding-top: 15px;
    padding-bottom: 15px;
    padding-right: 40px;
}

@media screen and (min-width: 768px) {
    .accordion-trigger {
        padding-top: 42px;
        padding-bottom: 42px;
    }
}

.accordion-trigger p {
    margin-bottom: 0;
    font-weight: 700;
}

.accordion-item.is_open .accordion-trigger p {
    color: var(--red);
}

.accordion-trigger:after {
    content: "";
    width: 29px;
    height: 16px;
    display: block;
    position: absolute;
    top: 50%;
    transform: translateY(-50%) rotate(180deg);
    right: 15px;
    background-image: url(images/ui/drop-arrow-acc.svg);
    background-size: contain;
    background-position: center center;
    background-repeat: no-repeat;
    transition: all 0.2s ease-in-out;
}

.accordion-item.is_open .accordion-trigger:after {
    transform: translateY(-50%) rotate(0deg);
}

.accordion-content {
    padding-right: 40px;
    padding-bottom: 30px;
}

@media screen and (min-width: 800px) {
    .accordion-content {
        padding-left: 0;
    }
}

.accordion-content p,
.accordion-content li {
    font-size: 15px;
}

@media screen and (min-width: 800px) {
    .accordion-content p,
    .accordion-content li {
        font-size: 18px;
    }
}

.tab-content-container {
    overflow: hidden;
}

.tab-content {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    transition: all 0s ease 0.35s;
}

.tab-content .tab {
    flex: 0 0 100%;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
}

.tab-content .tab.is_active {
    opacity: 1;
    transition: opacity 0.3s ease-in-out 0.35s;
}

.btn-tab {
    background-color: transparent !important;
    padding-left: 40px;
    position: relative;
    padding-top: 0px;
    padding-bottom: 5px;
    font-size: 21px;
    font-weight: 700;
    display: block;
    margin-bottom: 12px;
}

.btn-tab:before {
    content: "";
    width: 34px;
    height: 34px;
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    border-radius: 50%;
    border: 2px solid var(--black);
}

.btn-tab.is_active {
    color: var(--red);
}

.btn-tab.is_active:before {
    border-color: var(--red);
}

.btn-tab.is_active:after {
    content: "";
    display: block;
    position: absolute;
    left: 7px;
    top: 7px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: var(--red);
}

.tabbed-intro,
.tab-group {
    max-width: 670px;
}

.tabs {
    margin-bottom: 50px;
}

/* Video-Carousel */

.vidcarousel-item {
    padding: 50px;
    position: relative;
}

@media screen and (min-width: 1200px) {
    .vidcarousel-item {
        padding: 15px;
    }
}

.section-vidcarousel {
    padding-top: 105px;
    padding-bottom: 145px;
}

.section-vidcarousel .caption {
    font-weight: 300;
    font-size: 16px;
    color: #231c1c;
    line-height: 24px;
    padding-top: 20px;
}

/* Video-Pop-Up */

.video-pop-up {
    visibility: hidden;
    pointer-events: none;
    height: 0;
    background-color: rgba(0, 0, 0, 0.8);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10;
    overflow: hidden;
    opacity: 0;
    transform: scale(1.2);

    transition: all 0.55s ease-in-out;
}

.video-pop-up.is_active {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    height: auto;
    visibility: visible;
    pointer-events: all;
    opacity: 1;
    transform: scale(1);
}

.embed-container {
    width: 100%;
    /* max-width: 90vw; */
}

@media screen and (min-width: 1200px) {
    .embed-container {
        width: 90vw;
        max-width: 1600px;
    }
}

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

.yt-container iframe,
.yt-container object,
.yt-container embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.has_pb {
    padding-bottom: 45px;
}

@media screen and (min-width: 768px) {
    .has_pb {
        padding-bottom: 90px;
    }
}

.form-hl {
    padding-top: 30px;
    padding-bottom: 0;
    margin-bottom: 0;
}

@media screen and (min-width: 768px) {
    .form-hl {
        padding-top: 60px;
    }
}

.form-hl .txt {
    margin-bottom: 0;
}

.page-id-368 .content-section-0,
.page-id-368 .content-section-0 .txt-group {
    padding-bottom: 0 !important;
    margin-bottom: 0;
}

.st0 {
    fill: #db1012;
}

.st1 {
    fill: #e1f0ed;
}

@media screen and (min-width: 768px) {
    .form-btn-icn .icn-txt {
        display: none;
    }
}

.form-btn-icn {
    width: 40px;
    background-color: #fff;
}

@media screen and (min-width: 768px) {
    .form-btn-icn {
        width: 33px;
        background-color: #fff;
    }
}

@media screen and (min-width: 1200px) {
    .form-btn-icn {
        width: 40px;
        background-color: #fff;
    }
}

.form-button {
    position: fixed;
    right: 20px;
    bottom: 20px;
    width: 220px;
    height: 65px;
    border: none !important;
    background-image: url(images/ui/termin-btn.svg);
    background-size: 100%;
    background-position: center center;
    background-repeat: no-repeat;
    padding: 0 !important;
    background-color: transparent !important;
}

@media screen and (min-width: 1000px) {
    .form-button {
        position: fixed;
        right: 20px;
        bottom: 20px;
        width: 285px;
        height: 80px;
    }
}

@media (hover: hover) {
    .form-button:hover {
        background-image: url(images/ui/termin-btn-hover.svg);
        background-color: transparent !important;
    }
}

.form-button span {
    display: none;
    padding: 10px;
    border: 1px solid var(--red);
    background-color: #fff;
}

@media screen and (min-width: 768px) {
    .form-button span {
        display: inline-block;
    }
}

.form-button:before {
    display: none;
}

@media (hover: hover) {
    .form-button:hover span {
        background-color: var(--red) !important;
        color: #fff !important;
    }
}

.popup {
    z-index: -1;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(35, 28, 28, 0.95);
    transition: opacity 0.2s ease-in-out 0.1s;
}

.formpop_is_open .popup {
    z-index: 11;
    opacity: 1;
    pointer-events: all;
}

.popup-inner {
    display: block;
    width: 100%;
    max-width: 500px;
    padding: 20px;
    background-color: #fff;
}

/*
==========
= FOOTER =
==========
 */

footer {
    position: relative;
    color: #fff;
    background-color: var(--black);
    padding-top: 45px;
    padding-bottom: 45px;
    padding-left: 30px;
    padding-right: 30px;
    font-size: 15px;
    color: #ffffff;
    letter-spacing: 0;
    line-height: 26px;
}

.footer-logo-container {
    display: flex;
    justify-content: space-between;
    margin-bottom: 25px;
}

.footer-logo {
    width: 70px;
    height: 70px;
}

footer a {
    text-decoration: none;
    transition: all 0.35s ease-in-out;
}

@media (hover: hover) {
    footer a:hover {
        color: var(--blue);
        transition: all 0.08s ease-in-out;
    }
}

.footer-nav {
    display: none;
}

.footer-legal {
    font-weight: 700;
    margin-bottom: 28px;
}

.footer-social {
    position: relative;
    right: auto;
    bottom: auto;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0;
}

.footer-social ul {
    justify-content: flex-start;
}

.footer-social li {
    padding: 0;
    margin-right: 10px;
}

/* Footer Tablet */

@media screen and (min-width: 768px) {
    footer p {
        margin-bottom: 10px;
    }
    .footer-main {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
    }
}

@media screen and (min-width: 1200px) {
    footer {
        font-size: 16px;
        line-height: 24px;
        padding-bottom: 50px;
    }
    footer p {
        margin-bottom: 16px;
    }
    .footer-logo-container {
        margin-bottom: 40px;
    }
    .footer-contact-container {
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
    }
    .footer-contact {
        margin-right: 70px;
    }
    .footer-nav {
        display: block;
        font-weight: 700;
        font-size: 21px;
        color: #db1012;
        line-height: 30px;
        margin-bottom: 30px;
    }
    .footer-legal {
        margin-bottom: 10px;
    }
}

/*
==================
= RETINA & PRINT =
==================
 */

/*retina and print styles here*/

@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
}

/*END MEDIA RETINA*/

@media print {
    * {
        background: transparent !important;
        color: black !important;
        text-shadow: none !important;
        -webkit-filter: none !important;
        filter: none !important;
        -ms-filter: none !important;
    }
    /* Black prints faster: h5bp.com/s */
    a,
    a:visited {
        text-decoration: underline;
    }
    a[href]:after {
        content: " (" attr(href) ")";
    }
    abbr[title]:after {
        content: " (" attr(title) ")";
    }
    a[href^="javascript:"]:after,
    a[href^="#"]:after {
        content: "";
    }
    /* Don't show links for images, or javascript/internal links */
    pre,
    blockquote {
        page-break-inside: avoid;
    }
    thead {
        display: table-header-group;
    }
    /* h5bp.com/t */
    tr,
    img {
        page-break-inside: avoid;
    }
    img {
        max-width: 100% !important;
    }
    @page {
        margin: 0.5cm;
    }
    html,
    body,
    p {
        font-size: 10pt;
    }
    p,
    h2,
    h3 {
        orphans: 3;
        widows: 3;
    }
    h2,
    h3 {
        page-break-after: avoid;
    }
}

/*END MEDIA PRINT*/
