 /* 
Theme Name: Atelier Services
Version: v.1.0
Description: a flexible Theme for Atelier Services
Author: Roman Hospenthal, RHOdesign
Author URI: http://www.rhodesign.ch/
*/

@import 'css/reset.css';
@import 'css/grid.css';
@import 'css/plugins.css';
@import 'css/helpers.css';









/* ------------------------------------------------------------ *\
	Variables
\* ------------------------------------------------------------ */
:root {
--fz-html: 62.5%;
--fw-base: 400;
--ff-base: 'Open Sans', Arial, sans-serif;   
    
--weiss: #ffffff;
--main-text: #222222;
--rot: #cc262b;
--dunkelgrau: #5b5b5b;
--mittelgrau: #c8c8c8;
--hellgrau: #F2F4F6;
    
/* Font sizes */
/* https://clamp.font-size.app/*/
--fontsize-xxl: clamp(3.5rem, 1.7515rem + 5.8896vw, 6.5rem);
--fontsize-xl: clamp(2.8rem, 1.8092rem + 3.3374vw, 4.5rem);
--fontsize-lg: clamp(2.4rem, 1.7589rem + 2.1595vw, 3.5rem);
--fontsize-md: clamp(2rem, 1.5337rem + 1.5706vw, 2.8rem);
--fontsize-sm: clamp(1.8rem, 1.6834rem + 0.3926vw, 2rem);
--fontsize-xs: 18px;
--fontsize-xxs: 16px;

/* Line heights. */
--line-height-sm: 1;
--line-height-md: 1.4;
--line-height-lg: 1.6;
}


/* ------------------------------------------------------------ *\
	Fonts
\* ------------------------------------------------------------ */
/* Sans-Serif */
.dmsans-regular {font-family: 'DM Sans', Arial, sans-serif; font-weight:400;}
.dmsans-medium {font-family: 'DM Sans', Arial, sans-serif; font-weight:500;}
.dmsans-bold {font-family: 'DM Sans', Arial, sans-serif; font-weight:700;}
	


/* open-sans-300 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300;
  src: url('fonts/open-sans-v44-latin-300.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
       url('fonts/open-sans-v44-latin-300.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* open-sans-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: url('fonts/open-sans-v44-latin-regular.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
       url('fonts/open-sans-v44-latin-regular.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* open-sans-600 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  src: url('fonts/open-sans-v44-latin-600.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
       url('fonts/open-sans-v44-latin-600.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* open-sans-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  src: url('fonts/open-sans-v44-latin-700.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
       url('fonts/open-sans-v44-latin-700.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* open-sans-800 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  src: url('fonts/open-sans-v44-latin-800.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
       url('fonts/open-sans-v44-latin-800.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}








/* ------------------------------------------------------------ *\
	Base
\* ------------------------------------------------------------ */
html { font-size: var(--fz-html);}

body { 
min-width: 320px; 
background: var(--weiss); 
font-family: var(--ff-base); 
font-weight: var(--fw-base); 
font-size: var(--fontsize-sm); 
line-height: var(--line-height-md); 
color: var(--main-text);
}


a { color: inherit; text-decoration: none; transition: color .2s; }
a:hover,
a[href^="tel"] { text-decoration: none; }
p,ul,ol,dl,hr,table,blockquote { margin-bottom: 1.5em; }







/* ------------------------------------------------------------ *\
	Wrapper
\* ------------------------------------------------------------ */
.wrapper {display: flex;flex-direction: column;min-height: 100vh; }
.main {z-index: 88888 !important; }

@media (max-width: 767px) {
.main {padding-top: 0px; }
}
@media (max-width: 575px) {
.main {padding-top: 0px; }
}




/* ------------------------------------------------------------ *\
	Container
\* ------------------------------------------------------------ */
.container { 
--container-max-width: 140rem;
--container-gutter: 4rem;
max-width: calc(var(--container-max-width) + var(--container-gutter) * 2); 
padding-inline: var(--container-gutter); 
margin-inline: auto;  
width: 100%;
}

.container--fluid { max-width: none;}

.no-gutter { 
--container-gutter: 0;
}

@media (max-width: 991px) { 
.container {  --container-gutter: 3rem;}
}
@media (max-width: 767px) {
.container { --container-gutter: 2.5rem; }
}


.container a {color: var(--rot); }
.container a:hover {color: var(--main-text);}


.text-center {text-align: center;}
.textright { text-align: right; }
.relative {position: relative; }


small {font-size: 0.8em; line-height: 0.7em;}
strong { font-family: 'Open Sans', Arial, sans-serif; font-weight:700;}

.section {display: block; clear: both; position: relative; width: 100%; }
.section p:last-of-type { }

.section:first-of-type {margin-top: 100px }
.section.section-headslider {margin-top: 0 !important }
.section:last-of-type {}




/* ------------------------------------------------------------ *\
	Margins
\* ------------------------------------------------------------ */
.abstand-kein { margin-bottom: 0px;}
.abstand-klein { margin-bottom: 30px;}
.abstand-mittel { margin-bottom: 60px;}
.abstand-gross { margin-bottom: 120px;}
@media (max-width: 991px) {
.abstand-kein { margin-bottom: 0px;}
.abstand-klein { margin-bottom: 30px;}
.abstand-mittel { margin-bottom: 60px;}
.abstand-gross { margin-bottom: 80px;}
}



/* ------------------------------------------------------------ *\
	Paddings
\* ------------------------------------------------------------ */
.padding-top-klein { padding-top: 30px;}
.padding-top-mittel { padding-top: 60px;}
.padding-top-gross { padding-top: 120px;}

.padding-bottom-kein { padding-bottom: 0px;}
.padding-bottom-klein { padding-bottom: 30px;}
.padding-bottom-mittel { padding-bottom: 60px;}
.padding-bottom-gross { padding-bottom: 120px;}
@media (max-width: 991px) {
.padding-top-kein { padding-top: 30px;}
.padding-top-mittel { padding-top: 60px;}
.padding-top-gross { padding-top: 80px;}

.padding-bottom-kein { padding-bottom: 30px;}
.padding-bottom-mittel { padding-bottom: 60px;}
.padding-bottom-gross { padding-bottom: 80px;}
}


/* ------------------------------------------------------------ *\
	Hintergrundfarben
\* ------------------------------------------------------------ */
.hintergrundfarbe1 {background-color: var(--hellgrau) }
.hintergrundfarbe2 {background-color: var(--mittelgrau)}
.hintergrundfarbe3 {background-color: var(--rot); color: var(--weiss)}



/* ------------------------------------------------------------ *\
	Headings
\* ------------------------------------------------------------ */
h1, h2, h3, h4, h5, h6 {  -webkit-transition: all .2s; -moz-transition: all .2s; -o-transition: all .2s; -ms-transition: all .2s; transition: all .2s; }
h1 { font-family: var(--ff-base); font-weight:700; color: var(--rot); font-size: var(--fontsize-xl); line-height: var(--line-height-md); margin-bottom: 40px; }
h2 { font-family: var(--ff-base); font-weight:500; color: var(--rot); font-size: var(--fontsize-lg); line-height: var(--line-height-md); margin-bottom: 35px; }
h3 { font-family: var(--ff-base); font-weight:400; color: var(--rot); font-size: var(--fontsize-md); line-height: var(--line-height-md); margin-bottom: 30px; }
h4 { font-family: var(--ff-base); font-weight:500; color: var(--rot); font-size: var(--fontsize-md); line-height: var(--line-height-md); margin-bottom: 20px; }
h5 { font-family: var(--ff-base); font-weight:600; color: var(--main-text); font-size: var(--fontsize-sm); line-height: var(--line-height-md); margin-bottom: 20px; }

h2.big { font-family: 'Open Sans', Arial, sans-serif; font-weight:600; color: var(--rot); font-size: var(--fontsize-lg); line-height: var(--line-height-md); margin-bottom: 20px; text-align: center}





/* ------------------------------------------------------------ *\
	Listen
\* ------------------------------------------------------------ */
/*
.section-text ul{ list-style: none; padding:0;  margin:0 0 30px 0;  }
.section-text ul li{  padding-bottom: 10px; border-bottom: 1px solid var(--mittelgrau) }
.section-text ul li + li{  padding-top: 10px;  }
*/

.section-text ul{ list-style: none; padding:0;  margin:0 0 25px 0;  }
.section-text ul li{ padding-left: 1.3em; text-indent: -1em; padding-bottom: 5px; border-bottom: 0;  }
.section-text ul li:before { content: "\2013"; padding-right:0.5em; }

.section-text ol { list-style: none; counter-reset: my-awesome-counter; margin:0 0 30px 0;}
.section-text ol li { counter-increment: my-awesome-counter; padding-bottom: 5px; }
.section-text ol li::before { content: counter(my-awesome-counter) ". ";  }

.page-datenschutzerklaerung .section-text ul li{ padding-left: unset; text-indent: unset; padding-bottom: unset; border-bottom: 0;  }
.page-datenschutzerklaerung .section-text ul li:before { content: none; padding-right:unset; }


/* ------------------------------------------------------------ *\
	Header
\* ------------------------------------------------------------ */
.header{ background: var(--weiss); height: 120px; width: 100%; position: relative;box-sizing: border-box; -webkit-transition: all .4s ease-in-out; -moz-transition: all .4s ease-in-out; -o-transition: all .4s ease-in-out; -ms-transition: all .4s ease-in-out; transition: all .4s ease-in-out; z-index: 99990 !important;}

.logo { background-size: 100%; background-repeat: no-repeat; width: 300px; height: 39px; display: inline-block; vertical-align: middle; font-size: 0px; position: absolute; top: 40px; -webkit-transition: all .5s; -moz-transition: all .5s; -o-transition: all .5s; -ms-transition: all .5s; transition: all .5s;}

.logo-de { background-image: url(images/atelierservice-logo-de.png);}
.logo-fr { background-image: url(images/atelierservice-logo-fr.png);}
.logo-it { background-image: url(images/atelierservice-logo-it.png);}

@media (max-width: 991px) {
.header {position: fixed; position: sticky;  top: 0; left: 0;height: 60px;}
.logo { width: 200px; height: 26px; top: 15px;}
}




/* ****************************************************************************************************
			    		MENU
**************************************************************************************************** */
nav#hauptnavigation {position: absolute; right: var(--container-gutter); top: 55px; transition: all .5s;}



/* =========================================================
   RESET & BASIS
   ========================================================= */

.menu,
.menu * {
  margin: 0;
  padding: 0;
  list-style: none;
}

.menu li {
  position: relative;
  white-space: nowrap;
}

.menu a {
  display: block;
  text-decoration: none;
  transition: color .3s ease;
}

/* =========================================================
   HAUPTNAVIGATION (LEVEL 1)
   ========================================================= */

.menu > li {
  float: left;
  margin-left: 40px;
}

.menu > li > a {
  font-size: var(--fontsize-xs);
  line-height: var(--line-height-md);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  color: var(--main-text);
  padding-bottom: 40px;
}

.menu > li > a:hover,
.menu > li.current-menu-item > a,
.menu > li.current-menu-parent > a {
  color: var(--rot);
}

/* =========================================================
   SUBMENÜ LEVEL 2
   ========================================================= */

.menu ul {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 250px;
  background: var(--hellgrau);
  padding: 20px 20px 20px 0;
  margin-left: -25px;
  z-index: 100;

  /* sanftes Ein-/Ausblenden */
  opacity: 0;
  visibility: hidden;
  transition: opacity .2s ease;
  pointer-events: none;
}

/* Submenü sichtbar bei Hover */
.menu li:hover > ul {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.menu ul li {
  margin-left: 25px;
}

.menu ul li a {
  font-size: var(--fontsize-xs);
  line-height: var(--line-height-md);
  padding: 5px 0;
  color: var(--main-text);
}

.menu ul li a:hover,
.menu ul li.current-menu-item a {
  color: var(--rot);
}




/* =========================================================
   SUBMENÜ LEVEL 3 (Flyout)
   ========================================================= */

.menu ul ul {
  top: -15px;
  left: 100%;
  margin-left: 20px;
}

.menu ul ul li {
  margin-left: 20px;
}

/* kleinere Typo in Ebene 3 */
.menu ul ul li a {
  font-size: var(--fontsize-xxs);
  padding: 3px 0;
}

/* Hover-Brücke zwischen Level 2 und 3 */
.menu ul ul::before {
  content: "";
  position: absolute;
  left: -20px;
  top: 0;
  width: 20px;
  height: 100%;
}

/* =========================================================
   PFEIL FÜR EINTRÄGE MIT LEVEL 3
   ========================================================= */

.menu > li > ul > li.menu-item-has-children > a {
  padding-right: 18px;
}

.menu > li > ul > li.menu-item-has-children > a::after {
  content: "›";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 18px;
  color: var(--main-text);
  transition: color .2s ease;
}

.menu > li > ul > li.menu-item-has-children:hover > a::after {
  color: var(--rot);
}





/* ****************************************************************************************************
			    		Burger
**************************************************************************************************** */
.nav-trigger {display: none; width: 35px; height: 16px; position: absolute; right: 20px; top: 25px; transform: rotate(0deg); transition: .5s ease-in-out; cursor: pointer;}
.nav-trigger span { display: block; position: absolute; height: 2px; width: 100%; background: var(--main-text); border-radius: 0px; opacity: 1; left: 0; transform: rotate(0deg); - transition: .25s ease-in-out;}

.nav-trigger span:nth-child(1) {top: 0px;}
.nav-trigger span:nth-child(2),
.nav-trigger span:nth-child(3) {top: 8px;}
.nav-trigger span:nth-child(4) { top: 16px;}

.nav-trigger.open span:nth-child(1),.nav-trigger.open span:nth-child(4) { top: 9px;width: 0%;left: 50%;}
.nav-trigger.open span:nth-child(2) { -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -o-transform: rotate(45deg); transform: rotate(45deg);}
.nav-trigger.open span:nth-child(3) { -webkit-transform: rotate(-45deg); -moz-transform: rotate(-45deg); -o-transform: rotate(-45deg); transform: rotate(-45deg);}



/* =========================================================
   MOBILE NAV CONTAINER
   ========================================================= */

nav#nav-mobile {
  position: fixed;
  top: 60px;
  left: 0;
  width: 100%;
  height: 100vh;
  display: none;
  z-index: 99999;
}

nav#nav-mobile.nav-mobile-open {
  display: block;
  background: rgba(34, 34, 34, 0.8);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* =========================================================
   MOBILE MENU BASIS
   ========================================================= */

#nav-mobile .menu {
  background: var(--hellgrau);
  padding: 15px 0;
}

#nav-mobile .menu > li {
  display: block;
  float: none;  /* horizontal float entfernen */
  margin-left: 0;
}

/* Links */
#nav-mobile a {
  display: block;
  padding: 8px 5%;
  font-size: var(--fontsize-sm);
  color: #222;
  position: relative; /* für absolute Pfeil-Position */
}

#nav-mobile a:hover {
  color: var(--rot);
}

/* =========================================================
   SUBMENÜS
   ========================================================= */

#nav-mobile ul.sub-menu {
  display: none;
}

#nav-mobile ul.sub-menu a {
  padding-left: 10%;
  font-size: var(--fontsize-sm);
}

#nav-mobile ul ul.sub-menu a {
  padding-left: 5%;
  font-size: var(--fontsize-xs);
}

/* =========================================================
   MOBILE: PFEIL FÜR EINTRÄGE MIT UNTERMENÜ
   ========================================================= */

#nav-mobile li.menu-item-has-children {
  position: relative;
}

/* Pfeil nach unten */
#nav-mobile li.menu-item-has-children > a::after {
  content: "›";                 /* Pfeil wie Desktop */
  position: absolute;
  right: 15px;                  /* Abstand vom rechten Rand */
  top: 50%;                     /* vertikal zentrieren */
  transform: translateY(-50%) rotate(90deg); /* nach unten drehen */
  font-size: 18px;
  color: var(--main-text);
  transition: transform 0.3s ease, color 0.2s ease;
  pointer-events: none;         /* Klick geht durch zum Link */
}

/* Hover oder geöffnet */
#nav-mobile li.menu-item-has-children > a:hover::after,
#nav-mobile li.menu-item-has-children.active > a::after {
  color: var(--rot);
}

/* Optional: geöffnet, Pfeil nach oben */
#nav-mobile li.menu-item-has-children.active > a::after {
  transform: translateY(-50%) rotate(-90deg); /* zeigt nach oben */
}


/* =========================================================
   Submenü Overrides & Layout
   ========================================================= */

#nav-mobile .menu ul {
  position: static; /* keine absolute Position */
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  background: transparent;
  padding: 0;
  margin: 0;
}

/* Hover-Logik deaktivieren für Mobile */
#nav-mobile .menu li:hover > ul {
  display: none;
}




@media (max-width: 991px) {
  .nav-trigger {
    display: inline-block;
  }

  #hauptnavigation {
    display: none;
  }

  nav#nav-mobile {
    display: none; /* Menü standardmäßig geschlossen */
  }

  nav#nav-mobile.nav-mobile-open {
    display: block; /* nur sichtbar, wenn JS toggle */
  }
}






/* ------------------------------------------------------------ *\
	Header Sticky
\* ------------------------------------------------------------ */
.header.sticky {position: fixed; position: sticky;  top: 0; left: 0;height: 60px;}
.header.sticky .logo { width: 200px; height: 26px; top: 17px;}
.header.sticky nav#hauptnavigation { top: 18px;  }
.header.sticky .topheadmenu { top: -18px;  }








/* ------------------------------------------------------------ *\
	Tophead-Menu
\* ------------------------------------------------------------ */
.topheadmenu {position: absolute; right: var(--container-gutter); top: 15px; transition: all .5s ease-in-out;}

.nav-access ul { display: -webkit-box; display: -ms-flexbox; display: flex;  margin: 0; font-size: var(--fontsize-xxs); }
.nav-access a { text-decoration: none; color: var(--main-text);}
.nav-access a:hover { color: var(--rot)  }

.nav-access ul li.wpml-ls-item {margin-right: 20px}
.nav-access ul li.wpml-ls-item:last-of-type {margin-right: 0px}
.nav-access ul li.wpml-ls-current-language a { color: var(--rot)  }

.nav-access li.wpml-ls-first-item { margin-left: 10px;}

@media (max-width: 991px) {
.topheadmenu {right: 90px; top: 17px;}
}
@media (max-width: 767px) {
.topheadmenu {display: none;}
}











/* ------------------------------------------------------------ *\
	M O D U L E - Alle Inhaltsmodule
\* ------------------------------------------------------------ */



/* ------------------------------------------------------------ *\
	Section Head Image
\* ------------------------------------------------------------ */
.section-head-image{padding:8rem 0;position:relative;min-height:67.2rem;}
.section-head-image h1{font-size: var(--fontsize-xxl); color: var(--weiss) }

.section-head-image .section__back{position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;z-index:-1}
.section-head-image .section__back img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}

@media (max-width: 1199px) {
.section-head-image{min-height:44rem;padding:8rem 0}
}
@media (max-width: 991px) {
.section-head-image{padding:6rem 0;min-height:40rem}
}
@media (max-width: 767px),screen and (max-width: 812px) and (orientation: landscape) {
.section-head-image{padding:5rem 0;min-height:34rem}
}




/* ------------------------------------------------------------ *\
	Section Titel mit Lead
\* ------------------------------------------------------------ */
.section-titel-mit-lead { font-size: var(--fontsize-md); line-height: var(--line-height-md);}
.section-titel-mit-lead.schriftgross { font-size: var(--fontsize-lg); line-height: var(--line-height-md);}

.section-titel-mit-lead p:last-of-type {margin-bottom: 0;}
.section-titel-mit-lead .row.justify-content-center {text-align: center; }
.section-titel-mit-lead  a.btn {margin-top: 40px;}
@media (max-width: 991px) {
.section-titel-mit-lead  a.btn {margin-top: 30px;}
}
@media (max-width: 767px) {
}




/* ------------------------------------------------------------ *\
	Section Text-Module (100, 50, 75-25)
\* ------------------------------------------------------------ */
.section-text {}
@media (max-width: 767px) {
}






/* ------------------------------------------------------------ *\
	Dokument Download-Liste
\* ------------------------------------------------------------ */
.section-downloads {}

ul.dokument-download { list-style: none; border-top: 1px solid var(--main-text); margin-bottom: 0;}
ul.dokument-download li {border-bottom: 1px solid var(--main-text); padding: 10px 0; position: relative}
ul.dokument-download li a {position: relative; text-decoration:none;  color: var(--rot); display: block; padding-right: 0px;}
ul.dokument-download li a:hover {color: var(--rot);}

ul.dokument-download li a {display: flex; justify-content: space-between; }


ul.dokument-download li a .filetype {
	font-size: 11px; 
    vertical-align: middle;
    text-align: center;
    text-decoration: none;
    border: 1px solid var(--rot);
    padding: 0;
    border-radius: 2rem;
    color: var(--rot);
    line-height: 2;
	text-transform: uppercase;
	letter-spacing:0.1em;
	min-width: 50px;
}
ul.dokument-download li a:hover .filetype {
    border: 1px solid var(--rot);
    color: var(--rot);
}


@media (max-width:767px), screen and (max-width:812px) and (orientation:landscape){
}







/* ------------------------------------------------------------ *\
	Section Meilensteine
\* ------------------------------------------------------------ */
.section-meilensteine {}
.row.meilensetein {border-bottom: 1px solid var(--mittelgrau); padding: 20px 0; }
.row.meilensetein:first-of-type { padding-top: 0;}








/* ------------------------------------------------------------ *\
	Section Accordion
\* ------------------------------------------------------------ */
.accordion { border-bottom: 1px solid var(--mittelgrau); margin-top: -20px}

.accordion-trigger {
color: var(--main-text);  padding: 15px 0; border-top: 1px solid var(--mittelgrau);
display: table !important; table-layout: fixed !important; cursor: pointer; display: block; width: 100%; clear: both; position: relative; 
-webkit-transition: all .3s; -moz-transition: all .3s; -o-transition: all .3s; -ms-transition: all .3s; transition: all .3s;}
.accordion-trigger:first-of-type { border-top: none;}

.accordion-trigger:hover { color: var(--main-text);}
.accordion-trigger-active { border-bottom: none; color: var(--rot);}


.accordion-trigger-open:before {content: "";position: absolute;display: block;right: 0px; top: 50%; width: 20px; height: 0; border-top: 2px solid var(--rot);transform: rotate(0deg);transform-origin: center;transition: all .5s ease;}
.accordion-trigger-open:after {content: "";position: absolute;display: block;margin: auto; right: 0px; top: 2px; bottom: 0;width: 20px; height: 0; border-top: 2px solid var(--rot); transform: rotate(90deg);transform-origin: center; transition: all .5s ease;}

.accordion-trigger:hover .accordion-trigger-open:before {border-top: 2px solid var(--main-text); }
.accordion-trigger:hover .accordion-trigger-open:after { border-top: 2px solid var(--main-text); }

.accordion-trigger-active .accordion-trigger-open:before {border-top: 2px solid var(--main-text); transform: rotate(45deg);}
.accordion-trigger-active .accordion-trigger-open:after {border-top: 2px solid var(--main-text); transform: rotate(-45deg); }

.accordion-content {padding: 0 0 40px 0; -webkit-animation:fadeOut .8s ease-out;animation:fadeOut .8s ease-out;  }
.accordion-content.open {-webkit-animation:fadeIn .8s ease-out;animation:fadeIn .8s ease-out}

@media (max-width: 991px) {
}
@media (max-width: 767px) {
}



/* ------------------------------------------------------------ *\
	Section Accordion
\* ------------------------------------------------------------ */
.partner-logos {}
.partnerlogos  { display: flex; flex-wrap: wrap; gap: 40px;  }
.logo-item {}
.logo-item img {height: 60px; width: auto}




/* ------------------------------------------------------------ *\
	Section Bildslider
\* ------------------------------------------------------------ */
.section-headslider {}
.slider--primary, .slider--secondary { overflow: hidden; }
.slider--primary .slider__slide, .slider--secondary .slider__slide { position: relative; height: 100%; }
.slider--primary .slider__slide-image img, .slider--secondary .slider__slide-image img { width: 100%; }


.slider--primary .slider__slide {
    max-height: calc(100vh - 120px);
    height: auto;       /* Höhe passt sich an Inhalt an, aber wird nicht größer als 80vh */
    overflow: hidden;
}

.slider--primary .slider__slide-image img {
    display: block;
    width: 100%;
    height: auto;       /* skaliert proportional */
    max-height: 80vh;   /* Bild begrenzt die Höhe */
    object-fit: cover;  /* optional, damit es den Container füllt */
}


.captioncontainer { position: absolute; bottom: 55px; left: 0; right: 0; z-index: 3; font-size: var(--fontsize-md); line-height: var(--line-height-md);}
.captioninner {color: var(--weiss); }
.captioninner a{color: var(--weiss); display:block  }
.captioninner a:hover {color: rgba(255, 255, 255, 0.5);  }

.gradientoverlay {z-index: 3;
position: absolute; bottom: 0px; width: 100%; height: 50%; display:block;
background: -moz-linear-gradient(0deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0) 100%);
background: -webkit-linear-gradient(0deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0) 100%);
background: linear-gradient(0deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0) 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#000000",endColorstr="#000000",GradientType=1);
}

@media (max-width: 991px) {
.slider--primary .slider__slide { min-height: 400px; margin-bottom: -10px; }
.slider--primary .slider__slide-image img {display: block;width: 100%;height: 100%;object-fit: cover;position: absolute;}
.captioncontainer { bottom: 30px; }
}





/* ------------------------------------------------------------ *\
	Slider Navigation
\* ------------------------------------------------------------ */
.slick-slide img {  display: inline-block; width: 100%; height: auto}

/* Dot Navigation normal */
.slider .slick-dots { list-style-type: none; /*position: absolute; bottom: 20px; left: 0; right: 0;*/ margin: 20px auto 0 auto; 
display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack:center;-ms-flex-pack:center;justify-content:center; width: 100%;}
.slider .slick-dots li { display: inline-block; width: 16px; height: 16px; border-radius:50%;-moz-border-radius:50%; -webkit-border-radius:50%; background: #fff; border: 2px solid var(--rot); padding: 0; }
.slider .slick-dots li:hover { opacity: 50%}
.slider .slick-dots li + li { margin-left: 15px; }
.slider .slick-dots button { background: transparent; border: 0; font-size: 0; }
.slider .slick-dots .slick-active { background: var(--rot); }

/* Dot Navigation Head-Slider */
.slider--primary .slick-dots { max-width: 1340px; bottom: 50px; left: 0; right: 0; margin: 0 auto;  padding-right:25px; padding-left:25px;
list-style-type: none; position: absolute; display: -webkit-box; display: -ms-flexbox; display: flex; 
-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important  }

.slider--primary .slick-dots li { display: inline-block; width: 16px; height: 16px; border-radius:50%;-moz-border-radius:50%; -webkit-border-radius:50%; background: transparent; border: 2px solid var(--weiss); }
.slider--primary .slick-dots li + li { margin-left: 15px; }
.slider--primary .slick-dots .slick-active { background: var(--weiss); }


/*
.slider .slick-arrow { 
opacity:0; width: 35px; height: 35px; margin-top: -20px;border: 2px solid #fff; border-right: 0; border-top: 0; background: none; font-size: 0; 
-webkit-transition: opacity .8s ease, border-color .3s ease;
-moz-transition: opacity .8s ease, border-color .3s ease;
-o-transition: opacity .8s ease, border-color .3s ease;
transition: opacity .8s ease, border-color .3s ease;
}
.slider .slick-arrow:hover { border-color: var(--rot); }
.slider .slick-prev { position: absolute; top: 50%;  left: 50px; z-index: 30; 
transform: rotate(45deg) translate(0px);-webkit-transform: rotate(45deg) translate(0px);-moz-transform: rotate(43deg) translate(0px);-o-transform: rotate(45deg) translate(0px);-ms-transform: rotate(45deg) translate(0px);}
.slider .slick-next { position: absolute; top: 50%; right: 50px; 
transform: rotate(-135deg) translate(0px);-webkit-transform: rotate(-135deg) translate(0px);-moz-transform: rotate(-135deg) translate(0px);-o-transform: rotate(-135deg) translate(0px);-ms-transform: rotate(-135deg) translate(0px);}
.slider .slick-arrow:focus { outline: 0; }
*/

.slider .slick-arrow { opacity:0; width: 60px; height: 40px; margin-top: -20px; background: none; font-size: 0; -webkit-transition: opacity .5s ease;-moz-transition: opacity .5s ease;-o-transition: opacity .5s ease;transition: opacity .5s ease;}
.slider .slick-prev { position: absolute; top: 50%; z-index: 30; }
.slider .slick-next { position: absolute; top: 50%; }

.slick-next { right: 30px;}
.slick-prev { left: 30px;}
.slider--primary .slick-next { right: 50px;}
.slider--primary .slick-prev { left: 50px;}




.slick-next:before {
    content: '';
    width: 60px;
    height: 40px;
    position: absolute;
    left: 0;
    top:0;
    display: block;
    background: url(images/slick-arrow-right.svg) no-repeat;background-size: 100%;
	-webkit-transition: all .4s ease-in-out; -moz-transition: all .4s ease-in-out; -o-transition: all .4s ease-in-out;-ms-transition: all .4s ease-in-out; transition: all .4s ease-in-out;
}
.slick-prev:before {
    content: '';
    width: 60px;
    height: 40px;
    position: absolute;
    left: 0;
    top:0;
    display: block;
    background: url(images/slick-arrow-left.svg) no-repeat;background-size: 100%;
	-webkit-transition: all .4s ease-in-out; -moz-transition: all .4s ease-in-out; -o-transition: all .4s ease-in-out;-ms-transition: all .4s ease-in-out; transition: all .4s ease-in-out;
}

.slick-next:hover:before {opacity: 50%}
.slick-prev:hover:before {opacity: 50%}

.slider:hover .slick-arrow { opacity: 1;}
.slider .slick-arrow:focus { outline: 0; }
.slider button { background: transparent; border: 0; font-size: 0; }


@media (max-width: 991px) {
.slider--primary .slick-dots { bottom: 40px; }

.slick-next { right: 20px;}
.slick-prev { left: 20px;}
.slider--primary .slick-next { right: 20px;}
.slider--primary .slick-prev { left: 20px;}

.slider .slick-arrow { width: 40px; height: 27px; margin-top: -13px;}
.slick-next:before {width: 40px;height: 27px;}
.slick-prev:before {width: 40px;height: 27px;}

}
@media (max-width: 767px) {

}








/*------------------------------------------------------------ *\
	Section Anreisser 3-spaltig
\* ------------------------------------------------------------ */
.section-anreisser_3-spaltig {}
.section-anreisser_3-spaltig .row { --bs-gutter-y: 5rem; }

.section-anreisser_3-spaltig .anreisser .image-container { overflow: hidden; }
.section-anreisser_3-spaltig .anreisser .image-container img { display: block; width: 100%; height: auto; transition: transform 0.3s ease; }
.section-anreisser_3-spaltig .anreisser .image-container img:hover { transform: scale(1.05);  cursor: pointer;}

.section-anreisser_3-spaltig .content-inner {position: relative} 
.section-anreisser_3-spaltig .content-inner a { position: absolute; top: 0; left: 0; right: 0; bottom: 0;}

.section-anreisser_3-spaltig .content-text {padding: 0 0 15px;}
.section-anreisser_3-spaltig .content-text h3 {margin-bottom: 0;}

@media (max-width: 991px) {
.section-anreisser_3-spaltig .row { --bs-gutter-y: 3rem; }
}




/*------------------------------------------------------------ *\
	Section Produkte Übersicht
\* ------------------------------------------------------------ */
.section-produkte_ubersicht {}
.section-produkte_ubersicht .row { --bs-gutter-y: 5rem; }

/* Karte selbst als vertikales Flex-Layout */
.section-produkte_ubersicht .content-inner { display: flex; flex-direction: column; height: 100%; position: relative; background: var(--hellgrau);
transition:  transform 0.3s ease,box-shadow 0.3s ease;}

.section-produkte_ubersicht .anreisser:hover .content-inner { transform: translateY(-5px);  box-shadow:  0 8px 20px rgba(0,0,0,0.1), 0 2px 6px rgba(0,0,0,0.05);}

.section-produkte_ubersicht .content-text { padding: 15px 20px;}
.section-produkte_ubersicht .content-text h5 {margin-bottom: 0;}

.section-produkte_ubersicht .image-container { margin-top: auto; overflow: hidden;}

.section-produkte_ubersicht .image-container img { display: block; width: 100%; height: auto; transition: transform 0.3s ease;}
.section-produkte_ubersicht .content-inner:hover .image-container img { transform: scale(1.05); cursor: pointer;}

.section-produkte_ubersicht .content-inner a { position: absolute; top: 0; left: 0; right: 0; bottom: 0;}


@media (max-width: 991px) {
.section-produkte_ubersicht .row { --bs-gutter-y: 3rem; }
}



/*------------------------------------------------------------ *\
	Section News Vorschau
\* ------------------------------------------------------------ */
/* News-Blocks */
.section-news_vorschau .row { --bs-gutter-y: 5rem; }

.section-news_vorschau  .anreisser .newsdatum {margin-bottom: 10px}
.section-news_vorschau .anreisser {}
.section-news_vorschau .anreisser .content-inner{background: var(--hellgrau); height: 100%} 
.section-news_vorschau  .anreisser .content-text {padding: 50px;}
@media (max-width: 991px) {
.section-news_vorschau  .anreisser .content-text {padding: 35px 30px 40px 30px;}
.section-news_vorschau  .anreisser {margin-bottom: 60px}
}
@media (max-width: 767px) {
.section-news_vorschau .anreisser .content-text {padding: 30px 30px 40px 30px;}
}


/* ------------------------------------------------------------ *\
	Section Team
\* ------------------------------------------------------------ */
.section-team  .team {margin-bottom: 90px;}
.section-team .teamcontent {padding: 30px 0 0 0}
.section-team  .teamname {}
.section-team  .teamname h3 {margin-bottom: 10px;}
.section-team  .teamfunktion{}
.section-team  .teamtelefon{}
.section-team  .teamemail{}





/* ------------------------------------------------------------ *\
	Section Team
\* ------------------------------------------------------------ */
.section-foto_text {}
.section-foto_text .first-col {}
@media (max-width: 767px) {
.section-foto_text .first-col {margin-bottom: 40px}
}




/* ------------------------------------------------------------ *\
	Section Bildergalerie
\* ------------------------------------------------------------ */
.section-bildergalerie {}

.gallery {list-style-type:none; margin-bottom: 0;}
.section-bildergalerie .row {--bs-gutter-x: 3rem !important; --bs-gutter-y: 1.5rem !important;}


.gallery li::before {
  content: unset !important;
  padding-right: 0;
}

.gallery li {  position: relative; text-indent: 0 !important;}
.gallery li a{ display: block; position: relative;  }
.gallery li img { width: 100%; }

.gallery li a:before { content: ''; display: inline-block; background: rgba(206, 34, 36, .8); position: absolute; top: 0; left: 0; bottom: 0; right: 0; z-index: 10; visibility: hidden; opacity: 0; transition: visibility .3s, opacity .3s; }
.gallery li a:hover:before { visibility: visible; opacity: 1; }
.gallery li a:hover .gallery-icon { visibility: visible; opacity: 1; }

.gallery-icon { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); 
width: 40px; height: 40px; /*border-radius: 50%; border: 2px solid #FFF;*/
display: inline-block; z-index: 20; visibility: hidden; opacity: 0; 
transition: visibility .3s, opacity .3s; }
.gallery-icon:before { content: ''; display: inline-block; width: 40px; height: 2px; background: var(--weiss); position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); }
.gallery-icon:after { content: ''; display: inline-block; width: 2px; height: 40px; background:var(--weiss); position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); }

@media (max-width: 767px) {
.gallery-icon { width: 24px; height: 24px;}
.gallery-icon:before { width: 24px; height: 1px; }
.gallery-icon:after { width: 1px; height: 24px; }
}










/* ------------------------------------------------------------ *\
	Section Quicklinks
\* ------------------------------------------------------------ */
.section-quicklinks {}
ul.quicklinks { list-style-type: none; display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap;-webkit-box-pack: center;-ms-flex-pack: center;justify-content: center;}
ul.quicklinks li { margin: 0 1.5% 1.5% 0;  border-bottom: 0px !important; padding: 0;}
ul.quicklinks li a { }










.wp-video,
.wp-video-shortcode {
    width: 100% !important;
}

.wp-video {
    aspect-ratio: 16 / 9;
}

.wp-video video,
video.wp-video-shortcode {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain;
}


/* ------------------------------------------------------------ *\
    Section Video
\* ------------------------------------------------------------ */
.video-container { 
    position: relative; 
    padding-bottom: 56.25%; /* 16:9 Verhältnis */
    overflow: hidden;
    max-width: 100%;
    height: 0; /* wichtig: height auf 0 */
} 

.video-container iframe,
.video-container object,
.video-container embed,
.video-container video { 
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}








/* ------------------------------------------------------------ *\
	Section News
\* ------------------------------------------------------------ */
.section-news {}
.singlenews {}
.singlenews .newsdatum {margin-bottom: 20px}
.singlenews .lead { font-size: var(--fontsize-md); line-height: var(--line-height-md); margin-bottom: 30px}


/* Pagination */
.pagination {display:block; overflow: hidden; margin-top: 60px; display:flex; align-items: center} 
.pagination span, .pagination a {display:block; float:left; margin: 0 15px 0 0;width: auto; color:var(--rot); font-size: var(--fontsize-sm); line-height: var(--line-height-md);} 
.pagination a:hover{color: var(--rot); }
.pagination .current{color: var(--rot);}


/* Single News Pagination */
.portfolionavigation {height: 55px; width: 33.3333333333%; margin: 0 auto; display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;}

.portfolionavigation.infinite { 
-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;}

.portfolionavigation.not-infinite {}
.portfolionavigation.not-infinite .previous_post_link  {-ms-flex-item-align:start;align-self:flex-start; }
.portfolionavigation.not-infinite .next_post_link  {-ms-flex-item-align:end;align-self:flex-end;margin-left: auto;}
.portfolionavigation.not-infinite .post_overview {-ms-flex-item-align:cente;-ms-grid-row-align:center;align-self:center;margin-left: auto;}

.portfolionavigation a {display:block;}
.portfolionavigation a:hover .paginationicon { strokevar(--rot) !important}

@media (max-width: 991px) {
.portfolionavigation {width: 75%; }
}
@media (max-width: 767px) {
.portfolionavigation {width: 100%;}
}




/* ------------------------------------------------------------ *\
	Single Produkte
\* ------------------------------------------------------------ */
.section-produkt-single {}
.section-produkt-single .section:first-of-type { margin-top: 0;}

.single-produkte-text .row {  --bs-gutter-x: 2rem; --bs-gutter-y: 2rem; }
.produkt-single-galerie .gallery .row {  --bs-gutter-x: 3rem; --bs-gutter-y: 1.5rem; }


.section-unterprodukt-inner .row {  --bs-gutter-x: 4rem; --bs-gutter-y: 4rem; }
.section-unterprodukt-inner .image-container { overflow: hidden; border: 1px solid var(--dunkelgrau); border-radius: 10px;}
.section-unterprodukt-inner .image-container img { display: block; width: 100%; height: auto; transition: transform 0.3s ease; }
.section-unterprodukt-inner .image-container img:hover { transform: scale(1.05);  cursor: pointer;}




/* ------------------------------------------------------------ *\
	Katalog Downloads
\* ------------------------------------------------------------ */
.section-katalog_downloads {}
.section-katalog_downloads-inner {}
.section-katalog_downloads-inner .row + .row {margin-top: 40px; padding-top: 40px; border-top: 1px solid var(--mittelgrau)}

.section-katalog_downloads-inner ul{ list-style: none; padding:0;  margin:0 0 25px 0;  }
.section-katalog_downloads-inner ul li{ padding-left: 1.3em; text-indent: -1em; padding-bottom: 7px; border-bottom: 0; font-size: var(--fontsize-xs)   }
.section-katalog_downloads-inner ul li:before { content: "\2013"; padding-right:0.5em; }
.section-katalog_downloads ul li + li { padding-top: unset;}

.section-katalog_downloads-inner .image-container { overflow: hidden; border: 1px solid var(--dunkelgrau); border-radius: 10px;}
.section-katalog_downloads-inner .image-container img { display: block; width: 100%; height: auto; transition: transform 0.3s ease; }
.section-katalog_downloads-inner .image-container img:hover { transform: scale(1.05);  cursor: pointer;}



/* ------------------------------------------------------------ *\
	Buttons
\* ------------------------------------------------------------ */
a.btn { display: inline-block; vertical-align: middle; text-align: center; cursor: pointer; text-decoration: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; margin-top: 20px; background: transparent;
padding: 12px 30px; font-size: var(--fontsize-sm); line-height: var(--line-height-md); color: var(--rot); border: 2px solid var(--rot);
-webkit-transition: all .4s ease; -o-transition: all .4s ease; transition: all .4s ease; border-radius: 0;
}
a.btn:hover {color: var(--weiss); background: var(--rot); }

a.btn.negative { color: var(--weiss); border: 2px solid var(--weiss);}
a.btn.negative:hover {color: var(--rot); background: var(--weiss);}

@media (max-width: 767px) {
}
@media (max-width: 575px) {
}







/* ------------------------------------------------------------ *\
	Footer
\* ------------------------------------------------------------ */
.footer { background: var(--dunkelgrau); color: var(--weiss); position: relative; width: 100%;margin: auto auto 0 auto; padding: 60px 0 100px 0; font-size: var(--fontsize-sm); line-height: var(--line-height-md);  }

.footer a{ color: var(--hellgrau) }
.footer a:hover{ color: var(--mittelgrau)  }

.footer-logo {margin-bottom: 40px;}
.footer-logo img {max-width: 280px; filter: brightness(0) invert(1);}

@media (max-width: 1199px) {
.footer-logo img {max-width: 200px; }
}
@media (max-width: 991px) {
}



.top-cols { display: flex; gap: 1rem; /* optional: Abstand zwischen den beiden Spalten */}

.top-cols .col,
.top-cols .col-md-6 {
  flex: 1; /* verteilt beide gleichmäßig */
}

.bottom-col { margin-top: 1rem; /* optional */}

.footer .footer-nav ul {display: flex;flex-direction: column;  }
.footer .footer-nav li { list-style: none; border-bottom: 1px solid #FFF;}
.footer .footer-nav a {font-size: var(--fontsize-xs);line-height: var(--line-height-md);text-decoration: none; color: var(--hellgrau); padding: 10px 0; display: block}
.footer .footer-nav a:hover { color: var(--mittelgrau); text-decoration: none;}
.footer .footer-nav li.current_page_item a {color: var(--mittelgrau);text-decoration: none;}



.footer-row2 {margin-top: 90px;}
.footer .footer-nav-alt ul { display: flex; align-items: flex-start; justify-content: flex-start;  gap: 5rem; }
.social-nav { display: flex; gap: 30px; align-items: center;}
.social-nav a { display: inline-flex;}

@media (max-width: 767px) {
.footer .row div{ margin-bottom: 25px;}
.footer .row div:last-of-type{ margin-bottom: 0px;}

.footer .footer-nav ul { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; }
.footer .footer-nav li { margin-left: 0px; margin-right: 25px; }
 
.footer .footer-nav-alt ul { gap: 3rem; }
.footer-row2 {margin-top: 45px;}
}

@media (max-width: 575px) {
.footer .footer-nav ul {   display: flex;
  display: -webkit-flex;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  align-content: flex-start; }
.footer .footer-nav li {max-width: 100%; margin-left: 0px;}
}











/* ------------------------------------------------------------ *\
	Modul Google Maps
\* ------------------------------------------------------------ */
.acf-map {width: 100%;height: 600px;}
.acf-map img { max-width: inherit !important;}

.markerinfo {font-size: 14px; line-height: 20px; color: var(--main-text); padding-top: 10px;}
.markerinfo p{margin: 0px  !important; padding: 0px 0px 15px 0px !important;}
.markerinfo p:last-child{padding: 0px !important;}






/* ------------------------------------------------------------ *\
	List
\* ------------------------------------------------------------ */
[class^="list-"] { list-style: none outside none; }








/* **************************************************
			    		CONTACT
************************************************** */
div.wpcf7 {margin: 0;padding: 0; width: 100%;}
span.wpcf7-form-control-wrap { position: relative; }

.wpcf7 form input, .wpcf7 form textarea { background: var(--hellgrau);  border: 1px solid var(--dunkelgrau); color:var(--main-text); padding: 15px 20px; width:100%; box-sizing: border-box; margin: 0 0 20px 0;transition: all 0.5s ease;}
.wpcf7 form input:hover, form textarea:hover {outline:none; border: 1px solid var(--rot);}
.wpcf7 form input:focus, form textarea:focus {outline:none; border: 1px solid var(--rot);}

.wpcf7 form textarea {height: 240px;}

.wpcf7 form input::-webkit-input-placeholder,
.wpcf7 form input::-moz-placeholder,
.wpcf7 form input:-ms-input-placeholder,
.wpcf7 form input:-moz-placeholder,
.wpcf7 form input[placeholder],
.wpcf7 form textarea::-webkit-input-placeholder,
.wpcf7 form textarea::-moz-placeholder,
.wpcf7 form textarea:-ms-input-placeholder,
.wpcf7 form textarea:-moz-placeholder,
.wpcf7 form textarea[placeholder] {color: var(--rot) !important; opacity: 1; }

.wpcf7 form input:focus::-webkit-input-placeholder,
.wpcf7 form input:focus:-moz-placeholder,
.wpcf7 form input:focus::-moz-placeholder,
.wpcf7 form input:focus:-ms-input-placeholder,
.wpcf7 form textarea:focus::-webkit-input-placeholder,
.wpcf7 form textarea:focus:-moz-placeholder,
.wpcf7 form textarea:focus::-moz-placeholder,
.wpcf7 form textarea:focus:-ms-input-placeholder {   color:transparent !important;}


/* SUBMIT BUTTON */
.wpcf7 form input[type=submit] { 
font-size: var(--fontsize-sm); line-height: var(--line-height-md); color: var(--rot); border: 2px solid var(--rot); padding: 12px 33px; background: transparent;
margin-top: 20px;
width: auto; display: inline-block; vertical-align: middle; text-align: center; cursor: pointer; text-decoration: none; -webkit-appearance: none; -moz-appearance: none; appearance: none;
-webkit-transition: all .4s ease; -o-transition: all .4s ease; transition: all .4s ease;
}
.wpcf7 form input[type=submit]:hover {color: var(--weiss); background: var(--rot);}




.screen-reader-response { display: none;}
div.wpcf7-response-output { color: var(--rot);font-size: var(--fontsize-md);line-height: var(--line-height-md); margin: 20px 0 20px 0 !important;	padding: 0; font-weight: 700; border: none !important; padding: 0 !important;}

div.wpcf7-mail-sent-ok,
div.wpcf7-mail-sent-ng,
div.wpcf7-spam-blocked,
div.wpcf7-validation-errors,
div.screen-reader-response {border: 0px !important; padding: 0px !important; margin: 0 0 25px 0 !important; font-size: 12px; line-height: 18px; color: var(--rot); font-weight: 700;}


span.wpcf7-not-valid-tip {color: var(--rot) !important; font-size: 12px !important; display: block; margin: -20px 0 10px 0!important ;}
input.wpcf7-not-valid {border:1px solid var(--rot) !important}

.use-floating-validation-tip span.wpcf7-not-valid-tip { 
position: absolute;	top: 20%; left: 20%; z-index: 100;	border: 1px solid var(--rot);background: #fff; padding: .2em .8em;}


div.wpcf7 .placeheld {color: var(--main-text);}
div.wpcf7 img.ajax-loader { border: none;vertical-align: middle;margin-left: 4px;display: none;}
div.wpcf7 div.ajax-error { display: none;}
.wpcf7-display-none { display: none; }



/* SELECT*/
.wpcf7-form  .select-wrapper { position: relative; width: 100%; margin: 0 0 20px 0;}
.wpcf7-form  .select-wrapper:after { pointer-events: none; position: absolute; display: block; content: '';  width: 14px; height: 14px; top: 50%; right: 20px; margin-top: -3px; border-bottom: 1px solid var(--rot); border-right: 1px solid var(--rot); transform: rotate(45deg) translateY(-50%); transition: all .4s ease-in-out; transform-origin: 50% 0; }

.wpcf7-form select{width:100%; background: var(--weiss);  border: 1px solid var(--dunkelgrau); color:var(--rot); padding: 15px 20px;  border-radius:0;outline:0; -webkit-appearance:none; -moz-appearance:none; appearance:none; font-family: inherit; cursor: pointer;}
.wpcf7-form select:hover, .wpcf7-form select:focus {border: 1px solid var(--rot);}
.wpcf7-form select::-ms-expand{display:none;}
.wpcf7-form select:focus::-ms-value { background-color: transparent;}


/* RADIO BUTTONS */
.wpcf7-list-item {display: block; margin: 0 30px 10px 0!important;}

.wpcf7-form .wpcf7-radio {}
.wpcf7-form .wpcf7-radio .wpcf7-list-item-label { display: inline-flex;;}
.wpcf7-form .wpcf7-radio label { position: relative; cursor: pointer;}
.wpcf7-form .wpcf7-radio input[type=radio] {position: relative; visibility: hidden; display: none}

.wpcf7-form .wpcf7-radio input[type=radio] + span:before { content: ''; border-radius: 100%; height: 20px; width: 20px; border: 2px solid var(--dunkelgrau); margin-right: 15px;}
.wpcf7-form .wpcf7-radio input[type=radio] + span:after { display: block; position: absolute; content: '';  border-radius: 100%; height: 12px; width: 12px; top: 2px; left: 4px; visibility: hidden;}

.wpcf7-form .wpcf7-radio input[type=radio]:checked + span:before { background: transparent;}
.wpcf7-form .wpcf7-radio input[type=radio]:checked + span:after { background: var(--dunkelgrau); visibility: visible;}


/* CHECKBOXES */
.wpcf7-form .wpcf7-checkbox {}
.wpcf7-form .wpcf7-checkbox .wpcf7-list-item-label { display: inline-flex;;}
.wpcf7-form .wpcf7-checkbox label { position: relative; cursor: pointer;}
.wpcf7-form .wpcf7-checkbox input[type=checkbox] {position: relative; visibility: hidden; display: none}

.wpcf7-form .wpcf7-checkbox input[type=checkbox] + span:before { content: ''; height: 20px; width: 20px; border: 2px solid var(--dunkelgrau); margin-right: 15px;}
.wpcf7-form .wpcf7-checkbox input[type=checkbox] + span:after { display: block; position: absolute; content: '';   height: 12px; width: 12px; top: 2px; left: 4px; visibility: hidden;}

.wpcf7-form .wpcf7-checkbox input[type=checkbox]:checked + span:before { background: transparent;}
.wpcf7-form .wpcf7-checkbox input[type=checkbox]:checked + span:after { background: var(--dunkelgrau); visibility: visible;}


/* ACCEPTANCE */
.wpcf7-acceptance .wpcf7-list-item-label {margin-left: 45px; display: flex;}
.wpcf7-form .wpcf7-acceptance label { margin-left: 0;display: inline-block;position: relative; padding-left: 0px;}
.wpcf7-form .wpcf7-acceptance input[type=checkbox] {position: relative; visibility: hidden; display: none;}

.wpcf7-form .wpcf7-acceptance input[type=checkbox] + span:before { display: block; position: absolute; content: ''; border-radius: 0; height: 24px; width: 24px; top: 2px; border: 2px solid var(--dunkelgrau); left: 0;}
.wpcf7-form .wpcf7-acceptance input[type=checkbox] + span:after { display: block; position: absolute; content: ''; border-radius: 0%; height: 16px; width: 16px; top: 6px; left: 4px; visibility: hidden;}

.wpcf7-form .wpcf7-acceptance input[type=checkbox]:checked + span:before {  background: transparent;}
.wpcf7-form .wpcf7-acceptance input[type=checkbox]:checked + span:after { background: var(--dunkelgrau); visibility: visible;}




.section-katalog_downloads .wpcf7 form input, 
.section-katalog_downloads .wpcf7 form textarea { padding:  10px 20px; margin: 0 0 10px 0;}
.section-katalog_downloads .wpcf7 form input[type=submit] { margin-top: 20px}
.section-katalog_downloads .wpcf7 p { margin-top: 20px; margin-bottom: 0; font-size: var(--fontsize-xs);}
