/* ---------------------------- */
/* Hansesoftwarehaus
/* Stylesheet
/* by BRAIN Interactive
/* Author: BRAIN Team
/* ---------------------------- */

/* Grundlegendes Layout */
.container-fluid {
  width: 100%;
  margin: 0 auto;
  padding: 0 100px; /* Standardwert für große Bildschirme */
}

@media (max-width: 1200px) {
  .container-fluid {
      padding: 0 70px; /* Weniger Padding bei mittleren Bildschirmen */
  }
}

@media (max-width: 992px) {
  .container-fluid {
      padding: 0 40px; /* Noch weniger Padding bei kleineren Bildschirmen */
  }
}

@media (max-width: 768px) {
  .container-fluid {
      padding: 0 20px; /* Weiter reduziert bei mobilen Geräten */
  }
}

@media (max-width: 576px) {
  .container-fluid {
      padding: 0 20px; /* Minimaler Abstand auf sehr kleinen Bildschirmen */
  }
}

/* Abstände und allgemeine Styles */
section {
  margin-bottom: 60px;
}

/* Farben */
:root {
  --gruen: #61b52a;
  --mittelgruen: #347343;
  --dunkelgruen: #014017;
  --schwarz: #000000;
  --weiss: #ffffff;
  --grau: #f9fafb;

  /* Schriftgrößen */
  --font-size-h1: 35px;
  --font-size-h2: 33px;
  --font-size-subheadline: 28px;
  --font-size-p: 17.5px;
  --font-size-footer_subheadline: 23px;
  --font-size-header_headline: 36px;
  --font-size-header_subheadline: 31px;
  /* Schriftgrößen Mobile */
  --font-size-h1-mobile: 28px;
  --font-size-h2-mobile: 26px;
  --font-size-subheadline-mobile: 19px;
  --font-size-p-mobile: 16px;
  --font-size-header_headline-mobile: 23px;
  --font-size-header_subheadline-mobile: 20px;
}

@font-face {
  font-family: "Roboto";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/Roboto-Regular.ttf) format("truetype");
}
@font-face {
  font-family: "Roboto";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/Roboto-Medium.ttf) format("truetype");
}
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/Montserrat-Regular.ttf) format("truetype");
}
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/Montserrat-SemiBold.ttf) format("truetype");
}
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/Montserrat-Bold.ttf) format("truetype");
}
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../fonts/Montserrat-ExtraBold.ttf) format("truetype");
}

/* HTML-Element anpassen */
html {
  height: 100%; /* Setze Höhe auf 100%, damit das Layout korrekt funktioniert */
  width: 100%; /* Breite auf 100%, um sicherzustellen, dass der Inhalt den Bildschirm ausfüllt */
  margin: 0; /* Entfernt den Standard-Außenabstand */
  padding: 0; /* Entfernt den Standard-Innenabstand */
  box-sizing: border-box; /* Verhindert zusätzliche Abstände durch Ränder oder Padding */
}

/* Body anpassen */
body {
  font-family: "Roboto", sans-serif;
  margin: 0; /* Entfernt den Standard-Außenabstand */
  padding: 0; /* Entfernt den Standard-Innenabstand */
  width: 100%; /* Der Body soll die ganze Breite des Bildschirms einnehmen */
  height: 100%; /* Der Body soll die ganze Höhe des Bildschirms einnehmen */
  background-color: white; /* Hintergrundfarbe */
  overflow-x: hidden; /* Verhindert horizontales Scrollen */
  box-sizing: border-box; /* Verhindert zusätzliche Abstände durch Ränder oder Padding */
  hyphens: auto; /* Automatisches Trennen von Wörtern */
  -webkit-hyphens: auto; /* WebKit-Unterstützung für Worttrennung */
  -ms-hyphens: auto; /* MS-Unterstützung für Worttrennung */
  word-break: break-word; /* Erlaubt Zeilenumbrüche in langen Wörtern */
}

/* Allgemeine Textbereich-Styling */
.wrapper_inhalt {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 50px;  /* Größerer Abstand zwischen den Elementen */
  flex-wrap: wrap;
  padding: 40px 45px; /* Mehr Abstand zu den Bildschirmkanten */
  width: 100%;
  max-width: 100%;
  margin: 30px auto; /* Mehr Abstand nach oben und unten */
  box-sizing: border-box;
  min-height: 200px;
}

/* Textbereich (linke Seite) */
.wrap_inner {
  flex: 1;
  max-width: 49%;
  padding-left: 10px;  /* Weiter reduzierte Einrückung links */
  padding-right: 10px; /* Gleicher Abstand rechts */
  box-sizing: border-box;
  vertical-align: top;
}

.bildbreite {
  width: 49%;
  height: auto;
  max-width: 49%;
  display: inline-block;
}

/* Bild-Styling */
.content_img {
  width: 100%; /* Standardbreite für das Bild */
  max-width: 100%; /* Maximale Breite 100%, damit das Bild bei kleineren Bildschirmen nicht überläuft */
  height: auto;
  border-radius: 15px;
  box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.1);
  display: block;
  transition: transform 0.3s ease; /* Sanfte Transition für das Verschieben */
  margin-left: auto;  /* Automatischer Abstand nach links */
  margin-right: auto;  /* Automatischer Abstand nach rechts */
}

/* Mobile Ansicht: Feinerer Abstand für Textbereich */
@media (max-width: 768px) {
  .wrapper_inhalt {
    flex-direction: column;
    gap: 30px; /* Mehr Abstand zwischen den Elementen */
    padding: 30px;  /* Etwas mehr Abstand zu den Bildschirmkanten */
    margin: 30px auto; /* Mehr Abstand nach oben und unten */
  }

  .wrap_inner {
    width: 100%;  /* Der Textbereich nimmt 100% der Breite ein */
    padding-left: 15px; /* Feinerer Abstand links */
    padding-right: 15px; /* Gleicher Abstand rechts */
  }
}

  /* Anpassung für Desktop-Größen */
@media (min-width: 1024px) {
  .content_img {
    width: 95%; /* Das Bild wird leicht kleiner als 100% */
    margin-left: auto;
    margin-right: auto;  /* Zentriert das Bild */
  }
}

/* Für kleinere Bildschirme */
@media (max-width: 1024px) {
  .content_img {
    width: 100%; /* Volle Breite auf kleineren Bildschirmen */
  }
}

/* Medium-Viewports: Bild wird etwas kleiner und die Textbreite vergrößert */
@media (max-width: 1024px) {
  .wrapper_inhalt {
    flex-direction: row;
    justify-content: flex-start;
    gap: 40px; /* Größerer Abstand zwischen den Elementen */
    padding: 30px 10px 30px 10px; /* Mehr Abstand zu den Bildschirmkanten */
    margin: 30px auto; /* Mehr Abstand nach oben und unten */
  }

  .wrap_inner {
    max-width: 60%;
  }

  .content_img {
    max-width: 45%; /* Bild wird etwas kleiner */
  }

  .bildbreite {
    width: 100%;
    max-width: 100%;
  }
}

@media (max-width: 576px) {
  .wrapper_inhalt {
      padding: 0 10px; /* Minimaler Abstand auf sehr kleinen Bildschirmen */
  }
  .wrap_inner {
    padding: 0 15px; /* Minimaler Abstand auf sehr kleinen Bildschirmen */
}
  .content_img {
  padding: 0 15px; /* Minimaler Abstand auf sehr kleinen Bildschirmen */
}
}

/* Jedes zweite Element umdrehen */
.wrapper_inhalt:nth-child(even) {
  flex-direction: row-reverse;
}

/* Mobile Ansicht: Bild unter den Text schieben */
@media (max-width: 1024px) {
  .wrapper_inhalt {
    flex-direction: column !important;
    align-items: center;
    gap: 40px; /* Einheitlicher Abstand */
    margin: 40px auto; /* Abstand zu den anderen Elementen */
  }

  .wrap_inner {
    max-width: 100%;
    padding: 0;
  }

  .content_img {
    max-width: 100%;
    padding: 0;
    order: 1; /* Bild immer unter den Text */
  }
}

/* Typografie */
h1 {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  color: var(--mittelgruen);
  font-size: var(--font-size-h1);
  text-transform: uppercase;
  margin-bottom: 10px; /* Kleineren Abstand zu Subheadline */
}

h2 {
  font-family: "Montserrat", sans-serif;
  color: var(--dunkelgruen);
  font-size: var(--font-size-h2);
  font-weight: 800;
  text-transform: uppercase;
  margin-bottom: 5px; /* Kleineren Abstand zu Subheadline */
}

.subheadline {
  font-family: "Montserrat", sans-serif;
  color: var(--schwarz);
  font-size: calc(var(--font-size-subheadline) - 3px); /* Etwas kleinere Subheadline */
  font-weight: 500;
  line-height: 1.4; /* Kleinere line-height */
  margin-bottom: 15px; /* Kleineren Abstand zum Text */
}

p {
  font-family: "Roboto", sans-serif;
  color: var(--schwarz);
  font-weight: 400;
  font-size: var(--font-size-p);
  line-height: 30px;
}

.footer_subheadline {
  font-family: "Montserrat", sans-serif;
  color: var(--weiss);
  font-weight: 700;
  font-size: var(--font-size-footer_subheadline);
  line-height: 30px;
}

.p_weis {
  font-family: "Roboto", sans-serif;
  color: var(--weiss);
  font-weight: 500;
  font-size: var(--font-size-p);
  line-height: 28px;
}

.header_headline {
  font-family: "Montserrat", sans-serif;
  color: var(--weiss);
  font-weight: 800;
  font-size: var(--font-size-header_headline);
  text-transform: uppercase;
}

.header_subheadline {
  font-family: "Montserrat", sans-serif;
  color: var(--weiss);
  font-weight: 500;
  font-size: var(--font-size-header_subheadline);
}

.p_frage {
  font-family: "Roboto", sans-serif;
  color: var(--schwarz);
  font-weight: 600;
  font-size: var(--font-size-p);
  line-height: 28px;
}

.h2_kontakt {
  font-family: "Montserrat", sans-serif;
  color: var(--gruen);
  font-weight: 800;
  font-size: var(--font-size-h2);
  text-transform: uppercase;
}

.subheadline_weis {
  font-family: "Montserrat", sans-serif;
  color: var(--weiss);
  font-weight: 500;
  font-size: var(--font-size-subheadline);
}

/* Mobile Anpassungen */
@media (max-width: 768px) {
  h1 {
    width: 100%;
    font-size: var(--font-size-h1-mobile);
    font-weight: 900;
    text-align: left;
    line-height: 32px !important;
    margin-bottom: 15px; /* Kleineren Abstand zu Subheadline */
    position: relative;
  }

  h2 {
    width: 100%;
    font-size: var(--font-size-h2-mobile);
    font-weight: 800;
    text-align: left;
    line-height: 32px !important;
    margin-bottom: 10px; /* Kleineren Abstand zu Subheadline */
    position: relative;
  }

  .subheadline {
    font-size: var(--font-size-subheadline-mobile);
    text-align: left;
    font-weight: 500;
    line-height: 1.3 !important; /* Kleinere line-height für bessere Lesbarkeit */
    margin-bottom: 20px; /* Kleineren Abstand zum Text */
    position: relative;
  }

  p {
    font-size: var(--font-size-p-mobile);
    font-weight: 500;
    text-align: left;
    line-height: 25px !important;
  }

  .footer_subheadline {
    font-size: var(--font-size-subheadline-mobile);
    font-weight: 700;
    text-align: left;
    line-height: 32px !important;
  }

  .p_weis {
    font-size: var(--font-size-p-mobile);
    font-weight: 500;
    text-align: left;
    line-height: 32px !important;
  }

  .header_headline {
    font-size: var(--font-size-header_headline-mobile);
    font-weight: 800;
    text-align: left;
    line-height: 32px !important;
  }

  .header_subheadline {
    font-size: var(--font-size-subheadline-mobile);
    font-weight: 500;
    text-align: left;
    line-height: 32px !important;
  }

  .p_frage {
    font-size: var(--font-size-p-mobile);
    font-weight: 600;
    text-align: left;
    line-height: 27px !important;
  }

  .h2_kontakt {
    font-size: var(--font-size-h2-mobile);
    font-weight: 800;
    text-align: left;
    line-height: 32px !important;
  }

  .subheadline_weis {
    font-size: var(--font-size-subheadline-mobile);
    font-weight: 500;
    text-align: left;
    line-height: 32px !important;
  }
}

strong { 
  font-weight: 600;
}

/* Allgemein für alle Bildschirmgrößen */
h1, h2, .subheadline, p, .footer_subheadline, .p_weis, .header_headline, .header_subheadline, .p_frage, .h2_kontakt, .subheadline_weis {
  text-align: left; /* Text bleibt immer linksbündig */
}

/* Navi */

@media only screen and (max-width:5000px) {
  .mobmenur-container img {
    width: 40px;
    background-color: var(--gruen);
    border-radius: 10px;
  }
}

.mobmenu-content .menu-item {
    padding-left: 10%;
}
.mobmenu-content .menu-item-265,
.mobmenu-content .menu-item-2394,
.mobmenu-content .menu-item-2836,
.mobmenu-content .menu-item-2861,
.mobmenu-content .menu-item-3336,
.mobmenu-content .menu-item-2888,
.mobmenu-content .menu-item-270 {
    padding-left: 5%;
}

/*top info bereich*/
.mob-menu-header-holder {
  width: 0;
}
.top_bereich {
  display: block;
  background-color: var(--schwarz);
  margin-bottom: 0px;
}
.kontakt_head {
  padding-right: 80px;
}
.head_links {
  position: relative;
}
.head_rechts {
  padding: 10px 30px 10px 190px;
  left: 2.3rem;
  position: relative;
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
}
@media (max-width: 992px) {
  .head_rechts {
    justify-content: flex-start;
  }
}

@media (max-width: 830px) {
  .head_rechts {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
}

@media (max-width: 768px) {
  .head_rechts {
    padding: 10px 10px 10px 100px;
  }
}
/* Telefonnummer */
.top_info {
  transition: all 0.3s ease;
  position: relative;
  font-family: "Roboto", sans-serif;
  color: var(--weiss);
  font-weight: 700;
  font-size: 1.3rem !important;
  letter-spacing: 0rem;
  line-height: 1.6em !important;
  text-decoration: none;
}
.top_bereich a {
  transition: all 0.3s ease;
  position: relative;
  font-family: "Roboto", sans-serif;
  color: var(--weiss);
  font-weight: 700;
  font-size: 1.3rem !important;
  letter-spacing: 0rem;
  line-height: 1.6em !important;
  text-decoration: none;
}
.top_bereich a:hover {
  color: #fff;
}
/* Standort Icon */
.top_info.top_ad::before {
  content: "\f3c5";
  position: absolute;
  left: -25px;
  top: -3px;
  font-size: 17px;
  font-family: FontAwesome;
  font-weight: 400;
  line-height: 1.64em;
  margin: 0;
  padding: 0;
  color: var(--weiss)
}
.telenummer{
  top: 7px;
}
/* Adresse */
.top_info.top_ad {
  font-size: 1.3rem !important;
  color: var(--weiss);
  top: 8px;
}
span.top_ad_span {
  display: inline-block;
}
.top_info.top_tel {
  font-size: 1.3rem !important;
  color: var(--weiss);
}
/* Telefonicon */
.top_info.top_tel::before {
  content: "\f095";
  position: absolute;
  left: -25px;
  top: 5px;
  font-family: FontAwesome;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4em;
  margin: 0;
  color: var(--weiss);
}
.top_bereich i, 
.kontakt_footer a i {
  display: inline-block;
  vertical-align: bottom;
  font-size: 1.2rem;
  line-height: 1.9rem;
}
.uum_logo {
  background-image: url('/wp-content/uploads/2025/03/logoooo.svg');
  position: absolute;
  width: 170px;
  z-index: 9998;
  background-color: #fff;
  background-size: contain;
  background-repeat: no-repeat;
  border-bottom-right-radius: 20px;
  border-bottom-left-radius: 20px;
  box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, 0.08);
  height: 80px;
  margin-left:40px; /* Position von dem weißen ding */
  background-size: 150px; /* Größe vom Logo innerhalb des dings */
  background-position: center;
}
@media (min-width: 831px) {
  .top_info.top_tel {
    left: 50px;
    z-index: 1;
  }
}
@media (min-width: 992px) {
  .uum_logo {
    margin-left:80px;
    z-index: 1;
  }
}
@media (min-width: 1025px) {
  .uum_logo {
    margin-left:130px;
    z-index: 1;
  }
}
@media (min-width: 1200px) {
  .uum_logo {
    margin-left:160px;
    z-index: 1;
  }
}
@media (max-width: 1200px) {
  .uum_logo {
    width: 170px;
    height: 80px;
    z-index: 1;
  }
}
@media (max-width: 768px) {
  .uum_logo {
    width: 100px;
    height: 86px;
    background-image: url('/wp-content/uploads/2025/03/logo_mobile.svg');
    background-size: 70px; /* Größe vom Logo innerhalb des dings */
    margin-left:20px; /* Position von dem weißen ding */
    z-index: 1;
  }
}

.mobmenu-content li > .sub-menu li {
  padding-left: 30px;
}

/* Navi Ende */

/* Header Section with Parallax Effect */
.header_section {
  position: relative;
  display: flex;
  flex-direction: column; /* Ensures text is stacked vertically */
  justify-content: center;
  align-items: center; /* Align text to the center */
  width: 100vw; /* Full width of the screen */
  height: 40vh; /* Ensure the header takes up a fixed portion of the screen */
  background-size: cover;
  background-position: center center; /* Center the background image */
  background-attachment: fixed; /* Parallax effect */
  padding: 0;
  margin-left: calc(-50vw + 50%); /* Moves the entire section left */
  margin-right: calc(-50vw + 50%); /* Adjust right margin */
  overflow: hidden;
  /* z-index: 2;  Set z-index for the header section */
}

/* Background Image in Header */
.header_section .img {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1; /* Set z-index to be behind the header text but above the .einleitung */
  background-size: cover;
  background-position: center;
}

/* Headline */
.header_section .header_headline {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: var(--font-size-header_headline);
  text-transform: uppercase;
  margin: 0 0 20px; /* Space below headline */
  color: var(--weiss);
  z-index: 3; /* Keep text above background */
  text-align: center; /* Align the headline to the center */
}

/* Subheadline */
.header_section .header_subheadline {
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  font-size: var(--font-size-header_subheadline);
  margin-top: 20px; /* Space above subheadline */
  color: var(--weiss);
  z-index: 3; /* Keep subheadline above background */
  width: 100%; /* Full width of the section */
  text-align: center; /* Align the subheadline to the center */
  padding-left: 0; /* Remove padding to ensure full width */
  overflow: hidden; /* Hide anything that exceeds the width */
}

.header_content {
  max-width: 100%;
  padding: 0 10px; /* Weniger Abstand um den Container */
}

/* Mobile Anpassungen */
@media (max-width: 768px) {
  /* Anpassungen für den Header */
  .header_section {
    height: 30vh; /* Reduziert die Höhe des Headers auf mobilen Geräten */
    padding: 20px; /* Fügt etwas Padding hinzu */
    justify-content: center; /* Sicherstellen, dass der Inhalt auch vertikal zentriert bleibt */
  }

  .header_section .header_headline {
    font-size: var(--font-size-header_headline-mobile); /* Mobile Schriftgröße für Header */
    font-weight: 800;
    text-align: center; /* Zentriert den Text */
    line-height: 32px !important;
    max-width: 100%; /* Maximal 100% Breite für den Text */
    padding-left: 0%; /* Kein Padding auf der linken Seite */
  }

  .header_section .header_subheadline {
    font-size: var(--font-size-subheadline-mobile); /* Mobile Schriftgröße für Subheadline */
    font-weight: 500;
    text-align: center; /* Subheadline auch zentriert */
    line-height: 32px !important;
    margin-top: 10px; /* Etwas weniger Abstand zur Hauptüberschrift */
  }
}


/* Einleitung (Text-Bild) */
.einleitung {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  position: relative;
  margin-top: -8.5vh; /* Adjust this to control the overlap (reduce the value to reduce overlap) */
  margin-bottom: 60px; /* Bottom margin for separation */
  /* z-index: 1; Keep this section on top of the header */
}

.einleitung img {
  width: 120%;
  margin-left: -160px;
}

/* Ganze Breite (Hintergrundbild) */
.einleitung .ganze_breite {
  position: absolute; /* Background image in the background */
  top: 0;
  left: 0;
  width: 100vw; /* Full viewport width */
  height: 100vh; /* Full viewport height */
  z-index: -1; /* Keep image behind the text */
  margin-left: calc(-50vw + 50%); /* Moves the entire section left */
  margin-right: calc(-50vw + 50%); /* Adjust right margin */
}

/* Hintergrundbild der .einleitung */
.einleitung .img {
  background-image: url('path-to-your-background-image'); /* Add your background image here */
  background-position: center center; /* Start with centered background */
  background-size: cover; /* Make sure the image covers the area */
  background-attachment: scroll; /* Scrolls with the page */
  transition: background-position 0.3s ease-out; /* Smooth transition for background image movement */
}

/* Linke Seite (Textbereich) */
.einleitung .linke_seite {
  width: 50%; /* The text area takes up 50% of the width */
  padding-left: 45px; /* Reduced left padding */
  padding-right: 20px;
  z-index: 1; /* Keep text in front */
  margin-top: 70px; /* Push text down slightly */
}

/* Hinzufügen eines Abstands unter dem Einleitungsblock */
@media (min-width: 2000px) {
  .einleitung .ganze_breite{
    height: 70vh;
    width: 70vh;
    margin-left: 450px;
  }
}

@media (min-width: 1750px) {
  .einleitung .ganze_breite{
    height: 80vh;
    width: 80vw;
    margin-left: 200px;
  }
}

@media (min-width: 1050px) {
  .einleitung {
    margin-bottom: calc(150px + (100vw - 1550px) / 60); /* Adjust margin gradually */
  }
}

/* For smaller screen sizes */
@media (max-width: 768px) {
  .einleitung {
    margin-bottom: 80px; /* Larger bottom margin for mobile */
  }

  .einleitung .ganze_breite {
    height: 40vh; /* Decrease background image height for mobile devices */
  }

}

/* For screens smaller than 1024px */
@media (max-width: 1024px) {
  .einleitung img {
    background-position: left top; /* Move image to left-top as screen shrinks */
  }
  .einleitung img {
    display: none;
    }
  .einleitung .linke_seite {
    width: 100%; /* Full width for smaller screens */
    padding-left: 10px; /* Fine-tune left padding */
    padding-right: 10px; /* Same right padding */
  }
}

/* Hauptcontainer für Text über die ganze Breite */
.wrapper_text_ganze_breite {
  display: flex;
  flex-direction: column;
  gap: 15px; /* Reduzierter Abstand zwischen den Elementen */
  padding: 10px 45px; /* Weniger Abstand um den Container */
  margin: 0 auto;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

@media (max-width: 1024px) {
  .wrapper_text_ganze_breite {
    padding: 0 10px;
  }
}

/* Mobile Anpassung für sehr kleine Bildschirme */
@media (max-width: 576px) {
  .wrapper_text_ganze_breite {
    gap: 10px; /* Etwas kleinerer Abstand zwischen den Elementen */
  }
}

/* Reduziertes Padding für die Überschrift und den Text */
.wrapper_text_ganze_breite h2,
.wrapper_text_ganze_breite .subheadline,
.wrapper_text_ganze_breite p {
  margin: 0;
  padding: 2px 0; /* Weniger Abstand oben und unten */
}

/* Parallax */
.wrapper_parallax {
  position: relative;
  display: flex;
  flex-direction: column;  /* Stellt sicher, dass Text untereinander steht */
  justify-content: center;
  align-items: center;
  width: 100vw; /* Stellt sicher, dass der Parallax-Bereich die volle Breite des Bildschirms einnimmt */
  height: 40vh; /* Stellt sicher, dass der Parallax-Bereich die volle Höhe des Bildschirms einnimmt */
  background-size: cover;
  background-position: center center; /* Hintergrundbild wird mittig ausgerichtet */
  background-attachment: fixed;
  text-align: center; /* Text wird mittig ausgerichtet im Parallax-Bereich */
  padding: 0;
  margin-left: calc(-50vw + 50%); /* Umgeht das Padding, indem der Parallax-Bereich nach links verschoben wird */
  margin-right: calc(-50vw + 50%); /* Umgeht das Padding auf der rechten Seite */
  overflow: hidden;
}

/* Headline */
.wrapper_parallax h2 {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: var(--font-size-header_headline);
  text-transform: uppercase;
  margin: 0 0 20px; /* Abstand nach unten erhöhen */
  color: var(--weiss);
  z-index: 1;
  max-width: 80%; /* Setzt eine maximale Breite für die Headline */
  text-align: center; /* Stellt sicher, dass die Überschrift zentriert wird */
}

/* Subheadline */
.wrapper_parallax .header_subheadline {
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  font-size: var(--font-size-header_subheadline);
  margin-top: 20px; /* Abstand nach oben erhöhen */
  color: var(--weiss);
  z-index: 1;
  max-width: 80%; /* Setzt eine maximale Breite für die Subheadline */
  text-align: center; /* Stellt sicher, dass die Subheadline zentriert wird */
}

/* Medienabfrage für mittlere Bildschirme */
@media (max-width: 768px) {
  .wrapper_parallax {
    background-attachment: fixed; /* Parallax-Effekt für große Bildschirme */
    padding: 0 10px;
  }

  /* Text wird größer */
  .wrapper_parallax h2 {
    font-size: var(--font-size-header_headline-mobile);
  }

  .wrapper_parallax .header_subheadline {
    font-size: var(--font-size-header_subheadline-mobile);
  }
}

.parallax_content {
  max-width: 100%;
  padding: 0 10px; /* Weniger Abstand um den Container */
}

/* Parallax Kontaktseite */
.wrapper_parallax_contact {
  position: relative;
  display: flex;
  flex-direction: column;  /* Stellt sicher, dass Text untereinander steht */
  justify-content: center;
  align-items: center;
  width: 100vw; /* Stellt sicher, dass der Parallax-Bereich die volle Breite des Bildschirms einnimmt */
  height: 40vh; /* Stellt sicher, dass der Parallax-Bereich die volle Höhe des Bildschirms einnimmt */
  background-size: cover;
  background-position: center center; /* Hintergrundbild wird mittig ausgerichtet */
  background-attachment: fixed;
  text-align: center; /* Text wird mittig ausgerichtet im Parallax-Bereich */
  padding: 0;
  margin-left: calc(-50vw + 50%); /* Umgeht das Padding, indem der Parallax-Bereich nach links verschoben wird */
  margin-right: calc(-50vw + 50%); /* Umgeht das Padding auf der rechten Seite */
  overflow: hidden;
  margin-bottom: 300px;
}

.parallax_content_kontakt {
  max-width: 100%;
  padding: 0 0px; /* Weniger Abstand um den Container */
}

.wrapper_parallax_map {
  position: relative;
  width: 500px; /* Ganze Bildschirmbreite */
  height: 500px; /* Höhe der Karte */
  margin: 0; 
  padding: 0;
}

#map{
  width: 100vw; /* Stellt sicher, dass der Parallax-Bereich die volle Breite des Bildschirms einnimmt */
  height: 50vh; /* Stellt sicher, dass der Parallax-Bereich die volle Höhe des Bildschirms einnimmt */
}

.parallax_map {
  width: 100%;
  height: 100%;
}

/* Medienabfrage für mittlere Bildschirme */
@media (max-width: 768px) {
  .wrapper_parallax_contact {
    background-attachment: fixed; /* Parallax-Effekt für große Bildschirme */
    padding: 0 10px;
    margin-bottom: 200px;
  }
}

/* Allgemeine Einstellungen für den Kachel-Bereich */
.objekte_wiederholung {
  padding: 30px 0;
  background-color: var(--weiss);
}

.objekte_wiederholung .kacheln {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  padding-left: 50px;
}

@media (max-width: 1024px) {
  .objekte_wiederholung .kacheln {
    padding-left: 0px;
  }
}

/* Einzelne Kachel */
/* Anpassung für klickbare Kacheln */
.objekte_wiederholung .kachel_item {
  width: calc(25% - 20px);
  min-height: 250px; /* Erhöht die Höhe der Kachel */
  background: var(--grau);
  padding: 25px;
  border-radius: 10px;
  text-align: center;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out; /* Smooth transition for transform and box-shadow */
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

/* Hover-Effekt bleibt bestehen */
.objekte_wiederholung .kachel_item:hover {
  transform: translateY(-10px); /* Slight lift effect */
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); /* Increase shadow for a more prominent effect */
}

/* Hintergrundbild für Icon */
.objekte_wiederholung .icon_bg {
  width: 280px; /* Größer als vorher */
  height: 280px; /* Erhöht die Höhe */
  background-size: cover; /* Stellt sicher, dass das Bild gut skaliert */
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  top: 20px; /* Optional: Position leicht nach oben anpassen */
  left: 50%;
  transform: translateX(-50%);
  opacity: 0.3; /* Optional: Leicht anpassen für bessere Sichtbarkeit */
  transition: opacity 0.3s ease; /* Smooth opacity change */
}

/* Change opacity on hover */
.objekte_wiederholung .kachel_item:hover .icon_bg {
  opacity: 0.5; /* Darken the icon background on hover */
}

/* Überschrift */
.objekte_wiederholung .p_frage {
  font-size: var(--font-size-p);
  font-weight: bold;
  color: var(--schwarz);
  margin-bottom: 30px;
  position: relative;
  z-index: 2;
}

/* Beschreibungstext */
.objekte_wiederholung .kachel_item p {
  font-size: var(--font-size-p);
  color: var(--schwarz);
  line-height: 1.5;
  z-index: 2;
  position: relative;
}

/* Weiterleitungs-Button */
.objekte_wiederholung .weiterleitungbutton {
  position: relative;
  display: inline-block;
  cursor: pointer;
  outline: none;
  border: 0;
  vertical-align: middle;
  text-decoration: none;
  background: transparent;
  padding: 0;
  font-size: var(--font-size-p); /* Schriftgröße für den Desktop */
  font-family: "Montserrat", sans-serif;
  font-weight: 600; /* Semi Bold */
  transition: all 0.2s ease;
}

.button-linksbündig {
  margin: 0;
}

/* Der Button in seiner Standardgröße */
.objekte_wiederholung .weiterleitungbutton.learn-more {
  width: 20rem;
  height: auto;
  /* padding: 0.75rem 2rem; Mehr Padding für einen größeren Button */
}

.objekte_wiederholung .weiterleitungbutton .circle {
  transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
  position: relative;
  display: block;
  margin: 0;
  width: 3rem;
  height: 3rem;
  background: var(--dunkelgruen);
  border-radius: 1.625rem;
}

.objekte_wiederholung .weiterleitungbutton .circle .icon {
  transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  background: #fff;
}

.objekte_wiederholung .weiterleitungbutton .circle .icon.arrow {
  transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
  left: 0.625rem;
  width: 1.125rem;
  height: 0.125rem;
  background: none;
}

.objekte_wiederholung .weiterleitungbutton .circle .icon.arrow::before {
  position: absolute;
  content: "";
  top: -0.29rem;
  right: 0.0825rem;
  width: 0.825rem;
  height: 0.825rem;
  border-top: 0.125rem solid #fff;
  border-right: 0.125rem solid #fff;
  transform: rotate(45deg);
}

.objekte_wiederholung .weiterleitungbutton .button-text {
  transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 0.25rem 0.75rem 0;
  margin: 0 0 0 2.85rem;
  color: var(--dunkelgruen);
  font-weight: 600; /* Semi Bold */
  line-height: 1.6;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
}

/* Hover-Effekte */
.objekte_wiederholung .weiterleitungbutton:hover .circle {
  width: 100%;
}

.objekte_wiederholung .weiterleitungbutton:hover .circle .icon.arrow {
  background: #fff;
  transform: translate(0.5rem, 0);
}

.objekte_wiederholung .weiterleitungbutton:hover .button-text {
  color: #fff;
}

/* Responsive Anpassungen */

/* Tablet-Ansicht (max-width: 1024px) */
@media (max-width: 1024px) {
  .objekte_wiederholung .kachel_item {
    width: calc(50% - 20px); /* Zwei Kacheln pro Reihe */
    min-height: 220px; /* Leicht reduziert */
  }

  /* Schriftgrößen für mobile Geräte */
  .objekte_wiederholung .p_frage {
    font-size: var(--font-size-p-mobile); /* Schriftgröße für p_frage */
    font-weight: 600;
    line-height: 27px !important;
  }

  .objekte_wiederholung .kachel_item p {
    font-size: var(--font-size-p-mobile); /* Schriftgröße für Beschreibung */
    line-height: 25px !important;
  }
}

/* Mobile Ansicht (max-width: 768px) */
@media (max-width: 768px) {
  .objekte_wiederholung .kachel_item {
    width: 100%; /* Eine Kachel pro Reihe */
    min-height: 200px; /* Noch kompakter */
  }

  /* Schriftgrößen für kleinere Bildschirme */
  .objekte_wiederholung .p_frage {
    font-size: var(--font-size-p-mobile);
    font-weight: 600;
    line-height: 27px !important;
  }

  .objekte_wiederholung .kachel_item p {
    font-size: var(--font-size-p-mobile);
    line-height: 25px !important;
  }
}

/* Sehr kleine Bildschirme (max-width: 576px) */
@media (max-width: 576px) {
  .objekte_wiederholung .kachel_item {
    width: 100%;
    min-height: 180px; /* Kleinste Variante */
  }

  /* Schriftgrößen für sehr kleine Bildschirme */
  .objekte_wiederholung .p_frage {
    font-size: var(--font-size-p-mobile); /* Schriftgröße für p_frage */
    font-weight: 600;
    line-height: 27px !important;
  }

  .objekte_wiederholung .kachel_item p {
    font-size: var(--font-size-p-mobile); /* Schriftgröße für Beschreibung */
    line-height: 25px !important;
  }
}

/* Tab Content */

.nav {
  display: flex !important; 
}
.nav-item {
  box-shadow: 3px 2px 10px rgba(0, 0, 0, 0.2);
  background-color: var(--grau);
  border-radius: 5px;
  font-family: "Source Sans 3", sans-serif;
  font-weight: 600;
  font-size: 16pt;
}
.nav-link {
  transition: color 1s ease-in-out, background-color 1s ease-in-out, border-color 0s ease-in-out;
}
.nav-tabs {
  border-bottom: 0px;
}
.nav-tabs .nav-link.active {
  color: var(--mittelgruen);
  background-color: var(--grau);
  /* border-color: #dee2e6 var(--hellgrau); */
  position: relative;
  z-index: 2;
  border-radius:5px;
}
.nav-tabs .nav-link:hover {
  border: 0px;
  color: var(--gruen);
}
.tab-liste {
  width: 100%;
}
.tab-content {
  width: 100%;
  background-color: var(--grau);
  border-radius: 0 0.625em 0.625em 0.625em;
  padding: 0.5px;
  position: relative;
  z-index: 1;
  box-shadow: 3px 2px 10px rgba(0, 0, 0, 0.2);
}
.tab_zweispaltiger_content {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 50px;
  flex-wrap: wrap;
  box-sizing: border-box;
  min-height: 200px;
  width: 100%;
  max-width: 100%;
}
.tab-pane {
  margin: 20px 20px 40px 20px;
}
.wrap_text_ganze_breite {
  margin-top: 20px;
}
/* Flexbox für Bild und Text nebeneinander */
.wrap_bild_text {
  display: flex;  /* Flexbox aktivieren */
  /* align-items: center;  Vertikale Ausrichtung */
  justify-content: space-between; /* Abstand zwischen Bild und Text */
  gap: 30px; /* Abstand zwischen Bild und Text */
  flex-wrap: wrap; /* Bei Bedarf Umbruch */
  flex-direction: row-reverse;
}

.wrap_text {
  flex: 1; /* Text nimmt den verfügbaren Platz ein */
  max-width: 50%; /* Maximale Breite auf 50% setzen */
  text-align: left; /* Text links ausrichten */
}

.wrap_bild {
  flex: 1; /* Bild nimmt den verfügbaren Platz ein */
  max-width: 50%; /* Maximale Breite auf 50% setzen */
  text-align: center; /* Bild zentrieren */
}

.wrap_bild img {
  width: 90%; /* Bild auf volle Breite des Containers setzen */
  height: auto; /* Höhe automatisch skalieren */
  object-fit: cover; /* Bild zuschneiden, damit es den Container füllt */
}

.wrapper_tab {
  margin-bottom: 0px;
}

/* Wenn die Bildschirmgröße klein wird, die Elemente untereinander anordnen */
@media screen and (max-width: 768px) {
  .wrap_bild_text {
    flex-direction: column; /* Auf kleinen Bildschirmen untereinander anordnen */
    align-items: center; /* Zentrieren der Elemente */
  }
  .wrap_text,
  .wrap_bild {
    max-width: 100%; /* Beide Elemente auf volle Breite setzen */
    text-align: center; /* Text und Bild zentrieren */
  }
  .wrap_bild img {
    width: 100%;
  }
}
/* Überschrift über gesamte Tab-Liste und Tab-Content */
.tab_headline h2.mt30 {
  width: 100%; /* Setzt die Breite auf 100% des Containers */
  text-align: left; /* Links ausrichten */
  padding-left: 45px;
}
@media (max-width: 1023px) {
  .tab_headline h2.mt30 {
    padding-left: 10px;
  }
}
/* Zusätzlich können wir den Abstand nach oben anpassen, wenn nötig */
.wrapper_objekt {
  padding: 30px 45px;
}
.contactbutton,
.phone_button {
  margin-top: 20px;
  display: inline-block;
  padding: 10px 20px;
  font-size: 16px;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  color: #fff;
  background-color: var(--mittelblau);
  border-radius: 5px;
  border: none;
  cursor: pointer;
}
.weiterleitungbutton {
  display: inline-block;
  margin-top: 20px;
  padding: 10px 20px;
  font-size: 16px;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  color: var(--mittelblau);
  border: 2px solid var(--mittelblau);
  border-radius: 5px;
  cursor: pointer;
}
.contactbutton--gooey,
.phone_button--gooey {
  position: relative;
  overflow: hidden;
}
.contactbutton--gooey div,
.phone_button--gooey div {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.contactbutton__blobs,
.phone_button__blobs {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-around;
}
.contactbutton__blobs div,
.phone_button__blobs div {
  width: 10px;
  height: 10px;
  background-color: #fff;
  border-radius: 50%;
}

@keyframes gooey {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-5px);
  }
}
@media screen and (max-width: 768px) {
  .tab_zweispaltiger_content,
  .wrap_bild_text {
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }
  .wrap_text,
  .wrap_bild {
    max-width: 100%;
    text-align: center;
  }
  .wrapper_objekt {
   padding: 30px 30px;
  }
}

@media screen and (max-width: 1024px){
  .wrapper_objekt {
   padding: 10px;
  }
  }

/* Link */
a:focus {
  text-decoration: none;
}

a.content-link {
  font-family: "Roboto Bold", sans-serif;
  color: var(--mittelgruen);
  font-weight: bold;
  text-decoration: none;
}

a.content-link:visited {
  font-family: "Roboto Bold", sans-serif;
  color: var(--mittelgruen);
  font-weight: bold;
  text-decoration: none;
}

a.content-link:hover {
  font-family: "Roboto Bold", sans-serif;
  color: var(--gruen);
  font-weight: bold;
  text-decoration: none;
}

a:hover {
  text-decoration: none;
}

/* Kontaktbutton */
.contactbutton {
  font-size: var(--font-size-p); /* Schriftgröße für den Desktop */
  font-family: "Montserrat", sans-serif;
  font-weight: 600; /* Semi Bold */
  text-decoration: none;
  padding: 0.7em 1em 0.7em 3em;
  cursor: pointer;
  display: inline-block;
  vertical-align: middle;
  position: relative;
  z-index: 1;
  color: var(--mittelgruen);
  background-color: transparent;
  text-transform: uppercase;
  letter-spacing: 2px;
  border: 3px solid var(--mittelgruen);
  transition: all 700ms ease;
  border-radius: 999px;
  overflow: hidden;
  margin-top: 30px;
  margin-right: 15px;
}

.contactbutton .contactbutton__blobs {
  height: 100%;
  filter: url(#goo);
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  bottom: -3px;
  right: -1px;
  z-index: -1;
  border-radius: 20px;
}

.contactbutton .contactbutton__blobs div {
  background-color: var(--mittelgruen);
  width: 34%;
  height: 100%;
  border-radius: 100%;
  position: absolute;
  transform: scale(1.4) translateY(125%) translateZ(0);
  transition: all 700ms ease;
}

.contactbutton .contactbutton__blobs div:nth-child(1) {
  left: -5%;
}

.contactbutton .contactbutton__blobs div:nth-child(2) {
  left: 30%;
  transition-delay: 60ms;
}

.contactbutton .contactbutton__blobs div:nth-child(3) {
  left: 66%;
  transition-delay: 25ms;
}

.contactbutton:hover {
  color: var(--weiss);
  text-decoration: none;
}

.contactbutton:hover .contactbutton__blobs div {
  transform: scale(1.4) translateY(0) translateZ(0);
}

.contactbutton::before {
  background-repeat: no-repeat;
  background-size: contain;
  left: 17px;
  position: absolute;
  content: "";
  display: block;
  height: 27px;
  width: 27px;
  background-image: url("/wp-content/uploads/2025/08/Mail-Icon-gruen.svg");
}
.contactbutton:hover::before {
  background-image: url("/wp-content/uploads/2025/08/Mail-Icon-hellgrau.svg");
}

/* Mobile Anpassungen */
@media (max-width: 1024px) {
  .contactbutton {
    display: block; /* Button als Block-Element, damit er sich über die gesamte Breite erstrecken kann */
    margin-left: 0; /* Entfernt das Centering */
    margin-right: 0;
    width: auto; /* Passt die Breite an */
    text-align: left; /* Links ausrichten */
  }
}

/* Telefonbutton */
.phone_button {
  font-size: var(--font-size-p); /* Schriftgröße für den Desktop */
  font-family: "Montserrat", sans-serif;
  font-weight: 600; /* Semi Bold */
  text-decoration: none;
  padding: 0.7em 1em 0.7em 3em;
  cursor: pointer;
  display: inline-block;
  vertical-align: middle;
  position: relative;
  z-index: 1;
  color: var(--gruen);
  background-color: transparent;
  text-transform: uppercase;
  letter-spacing: 2px;
  border: 3px solid var(--gruen);
  transition: all 700ms ease;
  border-radius: 999px;
  overflow: hidden;
  margin-top: 30px;
  text-align: center;
}

.phone_button .phone_button__blobs {
  height: 100%;
  filter: url(#goo);
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  bottom: -3px;
  right: -1px;
  z-index: -1;
  border-radius: 20px;
}

.phone_button .phone_button__blobs div {
  background-color: var(--gruen);
  width: 34%;
  height: 100%;
  border-radius: 100%;
  position: absolute;
  transform: scale(1.4) translateY(125%) translateZ(0);
  transition: all 700ms ease;
}

.phone_button .phone_button__blobs div:nth-child(1) {
  left: -5%;
}

.phone_button .phone_button__blobs div:nth-child(2) {
  left: 30%;
  transition-delay: 60ms;
}

.phone_button .phone_button__blobs div:nth-child(3) {
  left: 66%;
  transition-delay: 25ms;
}

.phone_button:hover {
  color: var(--weiss);
  text-decoration: none;
}

.phone_button:hover .phone_button__blobs div {
  transform: scale(1.4) translateY(0) translateZ(0);
}

.phone_button::before {
  background-repeat: no-repeat;
  background-size: contain;
  left: 20px;
  position: absolute;
  content: "";
  display: block;
  height: 27px;
  width: 27px;
  background-image: url("/wp-content/uploads/2025/08/Telefonicon-gruen.svg");
}
.phone_button:hover::before {
  background-image: url("/wp-content/uploads/2025/08/Telefonicon-hellgrau.svg");
}

/* Mobile Anpassungen */
@media (max-width: 1024px) {
  .phone_button {
    display: block; /* Button als Block-Element, damit er sich über die gesamte Breite erstrecken kann */
    margin-left: 0; /* Entfernt das Centering */
    margin-right: 0;
    width: auto; /* Passt die Breite an */
    text-align: left; /* Links ausrichten */
  }
}

/* Weiterleitungsbutton */
.weiterleitungbutton {
  position: relative;
  display: inline-block;
  padding: 12px 24px;
  border: none;
  font-size: var(--font-size-p); /* Schriftgröße für den Desktop */
  font-family: "Montserrat", sans-serif;
  font-weight: 600; /* Semi Bold */
  background-color: #61b52a;
  border-radius: 100px;
  color: #fff;
  box-shadow: 0 0 0 3px #61b52a;
  cursor: pointer;
  overflow: hidden;
  transition: all 0.6s cubic-bezier(0.23, 1, 0.320, 1);
}

.weiterleitungbutton span:last-child {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 20px;
  height: 20px;
  background-color: #347343;
  border-radius: 50%;
  opacity: 0;
  transition: all 2s cubic-bezier(0.23, 1, 0.23, 1);
}

.weiterleitungbutton span:first-child {
  position: relative;
  z-index: 1;
}

.weiterleitungbutton:hover {
  box-shadow: 0 0 0 5px #8FBC99;
  color: #ffffff;
}

.weiterleitungbutton:active {
  scale: 0.95;
}

.weiterleitungbutton:hover span:last-child {
  width: 999px;
  height: 999px;
  opacity: 1;
}

/* Swiper word wo nur 1 wort ist */ 
.card {
/* color used to softly clip top and bottom of the .words container */
--bg-color: none;
background-color: var(--bg-color);
border-radius: 1.25rem;
border: none;
}
.loader {
color: rgb(124, 124, 124);
font-family: "Montserrat", sans-serif;
font-weight: 500;
font-size: 22px;
-webkit-box-sizing: content-box;
box-sizing: content-box;
height: 40px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
border-radius: 8px;
}

.p_loader{
  color: rgb(124, 124, 124);
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  font-size: 22px;
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
  height: 40px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  border-radius: 8px;
  }

.words {
overflow: hidden;
position: relative;
}
.words::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(
  var(--bg-color) 10%,
  transparent 30%,
  transparent 70%,
  var(--bg-color) 90%
);
z-index: 20;
}

.word {
display: block;
height: 100%;
padding-left: 6px;
color: #347343;
animation: spin_4991 7s infinite;
}

@keyframes spin_4991 {
10% {
  -webkit-transform: translateY(-102%);
  transform: translateY(-102%);
}

25% {
  -webkit-transform: translateY(-100%);
  transform: translateY(-100%);
}

35% {
  -webkit-transform: translateY(-202%);
  transform: translateY(-202%);
}

50% {
  -webkit-transform: translateY(-200%);
  transform: translateY(-200%);
}

60% {
  -webkit-transform: translateY(-302%);
  transform: translateY(-302%);
}

75% {
  -webkit-transform: translateY(-300%);
  transform: translateY(-300%);
}

85% {
  -webkit-transform: translateY(-402%);
  transform: translateY(-402%);
}

100% {
  -webkit-transform: translateY(-400%);
  transform: translateY(-400%);
}
}

/* Swiper word */ 
.card_1 {
  /* color used to softly clip top and bottom of the .words container */
  --bg-color: none;
  background-color: var(--bg-color);
  padding: 1rem 2rem;
  border-radius: 1.25rem;
  border: none;
}
.loader_1 {
  color: rgb(124, 124, 124);
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  font-size: 22px;
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
  height: 40px;
  padding: 10px 10px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  border-radius: 8px;
}

.words_1 {
  overflow: hidden;
  position: relative;
}
.words_1::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    var(--bg-color) 10%,
    transparent 30%,
    transparent 70%,
    var(--bg-color) 90%
  );
  z-index: 20;
}

.word_1 {
  display: block;
  height: 100%;
  padding-left: 6px;
  color: #347343;
  animation: spin_4991 7s infinite;
}

@keyframes spin_4991 {
  10% {
    -webkit-transform: translateY(-102%);
    transform: translateY(-102%);
  }

  25% {
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
  }

  35% {
    -webkit-transform: translateY(-202%);
    transform: translateY(-202%);
  }

  50% {
    -webkit-transform: translateY(-200%);
    transform: translateY(-200%);
  }

  60% {
    -webkit-transform: translateY(-302%);
    transform: translateY(-302%);
  }

  75% {
    -webkit-transform: translateY(-300%);
    transform: translateY(-300%);
  }

  85% {
    -webkit-transform: translateY(-402%);
    transform: translateY(-402%);
  }

  100% {
    -webkit-transform: translateY(-400%);
    transform: translateY(-400%);
  }
}

/* Kaffeetasse */ 
.coffee{
  width:49%;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 30vh; 
}

.container {
width: 300px;
height: 280px;
position: absolute;
align-items: center;
}
.coffee-header {
width: 100%;
height: 80px;
position: absolute;
top: 0;
left: 0;
background-color: #ddcfcc;
border-radius: 10px;
}
.coffee-header__buttons {
width: 25px;
height: 25px;
position: absolute;
top: 25px;
background-color: #282323;
border-radius: 50%;
}
.coffee-header__buttons::after {
content: "";
width: 8px;
height: 8px;
position: absolute;
bottom: -8px;
left: calc(50% - 4px);
background-color: #615e5e;
}
.coffee-header__button-one {
left: 15px;
}
.coffee-header__button-two {
left: 50px;
}
.coffee-header__display {
width: 50px;
height: 50px;
position: absolute;
top: calc(50% - 25px);
left: calc(50% - 25px);
border-radius: 50%;
background-color: #61b52a;
border: 5px solid #347343;
box-sizing: border-box;
}
.coffee-header__details {
width: 8px;
height: 20px;
position: absolute;
top: 10px;
right: 10px;
background-color: #61b52a;
box-shadow: -12px 0 0 #61b52a, -24px 0 0 #61b52a;
}
.coffee-medium {
width: 90%;
height: 160px;
position: absolute;
top: 80px;
left: calc(50% - 45%);
background-color: #bcb0af;
}
.coffee-medium:before {
content: "";
width: 90%;
height: 100px;
background-color: #776f6e;
position: absolute;
bottom: 0;
left: calc(50% - 45%);
border-radius: 20px 20px 0 0;
}
.coffe-medium__exit {
width: 60px;
height: 20px;
position: absolute;
top: 0;
left: calc(50% - 30px);
background-color: #231f20;
}
.coffe-medium__exit::before {
content: "";
width: 50px;
height: 20px;
border-radius: 0 0 50% 50%;
position: absolute;
bottom: -20px;
left: calc(50% - 25px);
background-color: #231f20;
}
.coffe-medium__exit::after {
content: "";
width: 10px;
height: 10px;
position: absolute;
bottom: -30px;
left: calc(50% - 5px);
background-color: #231f20;
}
.coffee-medium__arm {
width: 70px;
height: 20px;
position: absolute;
top: 15px;
right: 25px;
background-color: #231f20;
}
.coffee-medium__arm::before {
content: "";
width: 15px;
height: 5px;
position: absolute;
top: 7px;
left: -15px;
background-color: #9e9495;
}
.coffee-medium__cup {
width: 80px;
height: 47px;
position: absolute;
bottom: 0;
left: calc(50% - 40px);
background-color: #fff;
border-radius: 0 0 70px 70px / 0 0 110px 110px;
}
.coffee-medium__cup::after {
content: "";
width: 20px;
height: 20px;
position: absolute;
top: 6px;
right: -13px;
border: 5px solid #fff;
border-radius: 50%;
}
@keyframes liquid {
0% {
  height: 0px;
  opacity: 1;
}
5% {
  height: 0px;
  opacity: 1;
}
20% {
  height: 62px;
  opacity: 1;
}
95% {
  height: 62px;
  opacity: 1;
}
100% {
  height: 62px;
  opacity: 0;
}
}
.coffee-medium__liquid {
width: 6px;
height: 63px;
opacity: 0;
position: absolute;
top: 50px;
left: calc(50% - 3px);
background-color: #74372b;
animation: liquid 4s 4s linear infinite;
}
.coffee-medium__smoke {
width: 8px;
height: 20px;
position: absolute;
border-radius: 5px;
background-color: #b3aeae;
}
@keyframes smokeOne {
0% {
  bottom: 20px;
  opacity: 0;
}
40% {
  bottom: 50px;
  opacity: 0.5;
}
80% {
  bottom: 80px;
  opacity: 0.3;
}
100% {
  bottom: 80px;
  opacity: 0;
}
}
@keyframes smokeTwo {
0% {
  bottom: 40px;
  opacity: 0;
}
40% {
  bottom: 70px;
  opacity: 0.5;
}
80% {
  bottom: 80px;
  opacity: 0.3;
}
100% {
  bottom: 80px;
  opacity: 0;
}
}
.coffee-medium__smoke-one {
opacity: 0;
bottom: 50px;
left: 102px;
animation: smokeOne 3s 4s linear infinite;
}
.coffee-medium__smoke-two {
opacity: 0;
bottom: 70px;
left: 118px;
animation: smokeTwo 3s 5s linear infinite;
}
.coffee-medium__smoke-three {
opacity: 0;
bottom: 65px;
right: 118px;
animation: smokeTwo 3s 6s linear infinite;
}
.coffee-medium__smoke-for {
opacity: 0;
bottom: 50px;
right: 102px;
animation: smokeOne 3s 5s linear infinite;
}
.coffee-footer {
width: 95%;
height: 15px;
position: absolute;
bottom: 25px;
left: calc(50% - 47.5%);
background-color: #61b52a;
border-radius: 10px;
}
.coffee-footer::after {
content: "";
width: 106%;
height: 26px;
position: absolute;
bottom: -25px;
left: -8px;
background-color: #000;
}

/* Anpassung für MacBook */
@media (min-width: 1025px) and (max-width: 1440px) { 
  .coffee {
    margin-top: 150px;
    height: auto; /* Entfernt height: 30vh */
  }
}

/* Kaffeemaschine und .coffee responsive für Mobile */
@media (max-width: 768px) {
  .coffee {
    width: 80%; /* Mehr Platz nutzen */
    transform: scale(0.8); /* Kleiner machen */
    margin-top: 10px; /* Abstand nach oben */
    margin-bottom: 30px; /* Mehr Abstand nach unten */
  }

  .coffee_machine {
    max-width: 100%;
    order: 1; /* Maschine unter den Text */
  }
}

/* Die Liste */
.optionale_liste {
  flex: 1;
  max-width: 50%; /* Maximale Breite der Liste */
  padding: 0 20px; /* Abstand zum Rand */
}

.optionale_liste ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.optionale_liste strong {
  font-weight: normal;
}

.optionale_liste li {
  display: flex;
  align-items: center;
  background-color: var(--grau);
  border-radius: 25px;
  padding: 15px 20px; /* Etwas mehr Padding für breitere Stichpunkte */
  margin-bottom: 10px;
  font-size: var(--font-size-p); /* Schriftgröße mit der Variablen für Desktop */
  font-family: "Roboto Regular", sans-serif;
  box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.1);
  width: 100%; /* Liste geht über die ganze Breite */
  text-align: left; /* Text linksbündig */
}

/* Mehr Abstand nach dem letzten Listenelement */
.optionale_liste li:last-child {
  margin-bottom: 50px; /* Erhöhter Abstand zum nächsten Element */
}

.optionale_liste li::before {
  content: "";
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;  /* Größerer Punkt */
  height: 30px; /* Größerer Punkt */
  background-color: var(--mittelgruen);
  border-radius: 50%;
  margin-right: 15px; /* Abstand zwischen Kreis und Text */
  background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"%3E%3Cpath fill="white" d="M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"/%3E%3C/svg%3E');
  background-repeat: no-repeat;
  background-position: center;
  background-size: 30%; /* Fixe Größe des Punktes */
  position: relative;
  left: -10px; /* Kreis etwas nach links verschieben */
  aspect-ratio: 1 / 1;
}

/* Mobile Ansicht: Feinerer Abstand für Textbereich und Liste */
@media (max-width: 1024px) {
  .optionale_liste  {
    flex: 1;
    max-width: 100%; /* Maximale Breite auf 100% setzen */
    padding: 0 10px; /* Feinerer Abstand zum Rand */
    width: 1100%;
  }
}

@media (max-width: 768px) {
  .optionale_liste {
    flex: 1;
    max-width: 100%; /* Maximale Breite auf 100% setzen */
    padding: 0 10px; /* Feinerer Abstand zum Rand */
  }

  .optionale_liste ul {
    list-style: none;
    padding: 0;
    margin: 0;
  }

  .optionale_liste li {
    display: flex;
    align-items: center;
    background-color: var(--grau);
    border-radius: 25px;
    padding: 15px 20px; /* Etwas mehr Padding für breitere Stichpunkte */
    margin-bottom: 10px;
    font-size: var(--font-size-p-mobile); /* Schriftgröße mit der Variablen für mobile Geräte */
    font-family: "Roboto Regular", sans-serif;
    box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.1);
    width: 100%; /* Liste geht über die ganze Breite */
    text-align: left; /* Text linksbündig */
  }

  .optionale_liste li::before {
    content: "";
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;  /* Etwas größerer Punkt auf mobilen Geräten */
    height: 30px; /* Etwas größerer Punkt auf mobilen Geräten */
    background-color: var(--mittelgruen);
    border-radius: 50%;
    margin-right: 15px; /* Abstand zwischen Kreis und Text */
    background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"%3E%3Cpath fill="white" d="M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"/%3E%3C/svg%3E');
    background-repeat: no-repeat;
    background-position: center;
    background-size: 30%; /* Etwas größere Größe des Punktes auf mobilen Geräten */
    position: relative;
    left: -15px; /* Kreis weiter nach links verschieben */
  }
}

.optionale_liste li {
  transition: transform 0.3s ease-in-out;
}

.optionale_liste li:hover {
  transform: scale(1.03);
}


/* Sehr kleine Bildschirmgrößen */
@media (max-width: 576px) {
  .optionale_liste {
    flex: 1;
    max-width: 100%; /* Maximale Breite auf 100% setzen */
    padding: 0 10px; /* Feinerer Abstand zum Rand */
  }

  .optionale_liste ul {
    list-style: none;
    padding: 0;
    margin: 0;
  }

  .optionale_liste li {
    width: calc(100% + 40px); /* Listenelement breiter machen, indem 40px hinzugefügt werden */
    padding-left: 40px; /* Textbereich weiter nach rechts verschieben */
    padding-right: 40px; /* Textbereich weiter nach links verschieben */
    margin-left: -20px; /* Listenelement weiter nach links verschieben */
    margin-right: -20px; /* Listenelement weiter nach rechts verschieben */
  }

  .optionale_liste li::before {
    content: "";
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;  /* Etwas größerer Punkt auf sehr kleinen Geräten */
    height: 30px; /* Etwas größerer Punkt auf sehr kleinen Geräten */
    background-color: var(--mittelgruen);
    border-radius: 50%;
    margin-right: 15px; /* Abstand zwischen Kreis und Text */
    background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"%3E%3Cpath fill="white" d="M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"/%3E%3C/svg%3E');
    background-repeat: no-repeat;
    background-position: center;
    background-size: 30%; /* Etwas größere Größe des Punktes auf sehr kleinen Geräten */
    position: relative;
    left: -20px; /* Kreis weiter nach links verschieben */
  }
}

.liste_beide_seiten{
  flex: 1;
  max-width: 100% !important;
  padding: 0 20px;
}

/*FAQ*/
.wrapper_faq {
  margin-top: 150px; /* Erhöht den Abstand oberhalb des FAQ-Bereichs */
  margin-bottom: 350px;
}

/* Überschrift FAQ */
.wrapper_faq h2 {
  margin-bottom: 30px;
  padding-left: 60px;
  padding-right: 60px;
}

/* FAQ-Fragen */
.faq-item {
  margin-left: 60px; /* Gleicher linker Abstand wie H2 */
  margin-right: 60px; /* Gleicher rechter Abstand wie H2 */
  max-width: calc(100% - 120px); /* 60px links + 60px rechts */
  border-left: 5px solid var(--gruen);
  background-color: var(--grau);
  padding: 20px;
  border-radius: 8px;
  margin-bottom: 20px; /* Erhöht den Abstand zwischen den FAQ-Fragen */
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
}

/* Fragenüberschrift */
.faq-question {
  font-size: var(--font-size-p-mobile);
  font-weight: bold;
  color: #333;
  margin: 0;
  flex: 1;
}

/* Icon im Kreis */
.faq-icon {
  display: inline-block;
  background-color: white;
  border-radius: 50%;
  width: 40px; /* Gleiche Breite und Höhe für einen perfekten Kreis */
  height: 40px;
  margin-left: 10px;
  transition: transform 0.3s ease;
  font-size: 20px; /* Größeres Pluszeichen */
  color: black; /* Schwarzes Pluszeichen */
  display: flex;
  align-items: center;
  justify-content: center; /* Positioniert das Pluszeichen mittig */
}

/* Fragen und Antworten als Block */
.faq-summary {
  display: flex;
  align-items: center;
  cursor: pointer;
  justify-content: space-between;
}

/* Beim Öffnen drehen */
.faq-item input:checked + .faq-summary .faq-icon {
  transform: rotate(45deg); /* Dreht das Pluszeichen */
}

.faq-answer {
  margin-top: 10px;
  line-height: 1.6;
  color: #555;
  font-size: var(--font-size-p-mobile);
  display: none;
  width: 100%;
  transition: max-height 0.3s ease;
}

.faq-item input:checked + .faq-summary + .faq-answer {
  display: block;
}

/* Versteckte Checkbox für das Umschalten */
.faq-item input {
  display: none;
}

@media (max-width: 768px) {
  /* Überschrift FAQ anpassen */
  .wrapper_faq h2 {
    margin-bottom: 20px; /* Feinerer Abstand unter der Überschrift */
    padding-left: 15px; /* Reduzierter Abstand links */
    padding-right: 15px; /* Reduzierter Abstand rechts */
  }

  /* FAQ-Fragen */
  .faq-item {
    margin-left: 15px; /* Gleicher linker Abstand wie H2 */
    margin-right: 15px; /* Gleicher rechter Abstand wie H2 */
    max-width: calc(100% - 30px); /* 15px links + 15px rechts */
    border-left: 5px solid var(--grau);
    background-color: var(--grau);
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 20px; /* Erhöht den Abstand zwischen den FAQ-Fragen */
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    transition: all 0.7s ease;
  }

  /* Fragenüberschrift */
  .faq-question {
    font-size: var(--font-size-p-mobile);
    font-weight: bold;
    color: #333;
    margin: 0;
    flex: 1;
  }

  /* Icon im Kreis */
  .faq-icon {
    display: inline-block;
    background-color: white;
    border-radius: 50%;
    width: 40px; /* Gleiche Breite und Höhe für einen perfekten Kreis */
    height: 40px;
    margin-left: 10px;
    transition: transform 0.3s ease;
    font-size: 20px; /* Größeres Pluszeichen */
    color: black; /* Schwarzes Pluszeichen */
    display: flex;
    align-items: center;
    justify-content: center; /* Positioniert das Pluszeichen mittig */
    transition: transform 0.3s ease;
  }

  /* Fragen und Antworten als Block */
  .faq-summary {
    display: flex;
    align-items: center;
    cursor: pointer;
    justify-content: space-between;
  }

  /* Beim Öffnen drehen */
  .faq-item input:checked + .faq-summary .faq-icon {
    transform: rotate(45deg); /* Dreht das Pluszeichen */
  }

  .faq-answer {
    margin-top: 10px;
    line-height: 1.6;
    color: #555;
    font-size: var(--font-size-p-mobile);
    display: none;
    width: 100%;
    transition: max-height 0.3s ease;
  }

  /* Versteckte Checkbox für das Umschalten */
  .faq-item input {
    display: none;
  }
  .wrapper_faq {
    margin-top: 40px;
    margin-bottom: 180px;
  }
}

/* Footer */
.footer_bereich {
  background-color: #000;
  color: white;
  padding-top: 60px;
  padding-bottom: 60px;
  position: relative;
  z-index: 1;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
}

.footer_bereich_rechts{
  display: flex;
}

/* Wellenanimation */
.waves-container {
  width: 100%;
  position: absolute;
  top: -90px; /* Verschiebt die Wellen weiter nach oben */
  left: 0;
  z-index: -1; /* Wellen hinter dem Inhalt */
}

.waves {
  width: 100%;
  height: 15vh;
  margin-bottom: -7px;
  min-height: 60px;
  max-height: 100px;
  position: relative;
}

.parallax > use {
  animation: move-forever 40s cubic-bezier(.55,.5,.45,.5) infinite;
}

.parallax > use:nth-child(1) {
  animation-delay: -2s;
  animation-duration: 10s;
  fill: rgba(0, 0, 0, 0.75);
}

.parallax > use:nth-child(2) {
  animation-delay: -4s;
  animation-duration: 13s;
  fill: #61b52a;
  opacity: 0.6;
}

.parallax > use:nth-child(3) {
  animation-delay: -6s;
  animation-duration: 19s;
  fill: #347343;
  opacity: 0.6;
}

.parallax > use:nth-child(4) {
  animation-delay: -8s;
  animation-duration: 20s;
  fill: rgba(0, 0, 0, 1);
}

@keyframes move-forever {
  0% {
    transform: translate3d(-90px, 0, 0);
  }
  100% {
    transform: translate3d(85px, 0, 0);
  }
}

/* Footer-Links */
.footer_links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer_links li {
  display: flex;
  align-items: center;
  margin: 8px 0;
  position: relative;
  padding-left: 35px;
  transition: padding-left 0.3s ease;
}

/* Bild vor den Listenelementen */
.footer_links li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background-image: url('/wp-content/uploads/2025/03/icon-footer.png');
  background-size: cover;
  background-position: center;
  transition: transform 0.3s ease;
}

/* Links in der Liste */
.footer_bereich .footer_links a {
  color: white;
  font-size: 17.5px;
  font-weight: 300;
  text-decoration: none;
  transition: color 0.3s ease;
}

/* Links beim Hover */
.footer_bereich .footer_links a:hover {
  color: #61b52a;
  text-decoration: none;
}

.footer_links li:hover {
  padding-left: 45px;
}

.footer_links li:hover::before {
  transform: translateY(-50%) scale(0.9);
}

/* Footer Subheadline */
.footer_subheadline {
  font-family: "Montserrat", sans-serif;
  color: var(--weiss);
  font-weight: 700;
  font-size: var(--font-size-footer_subheadline);
  line-height: 30px;
}

/* Footer */
.footer_bereich {
  background-color: #000;
  color: white;
  padding-top: 60px;
  padding-bottom: 60px;
  position: relative;
  z-index: 1;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
}


/* Wellenanimation */
.waves-container {
  width: 100%;
  position: absolute;
  top: -90px; /* Verschiebt die Wellen weiter nach oben */
  left: 0;
  z-index: -1; /* Wellen hinter dem Inhalt */
}

.waves {
  width: 100%;
  height: 15vh; /* Reduziert die Höhe der Wellen */
  margin-bottom: -7px; /* Fix für Safari-Gap */
  min-height: 60px; /* Minimale Höhe */
  max-height: 100px; /* Maximale Höhe */
  position: relative;
}

.parallax > use {
  animation: move-forever 40s cubic-bezier(.55,.5,.45,.5) infinite; /* Langsame Animation */
}

.parallax > use:nth-child(1) {
  animation-delay: -2s;
  animation-duration: 10s;
  fill: rgba(0, 0, 0, 0.75); /* Erste Welle schwarz */
}

.parallax > use:nth-child(2) {
  animation-delay: -4s;
  animation-duration: 13s;
  fill: #61b52a; /* Zweite Welle grün mit 75% Transparenz */
  opacity: 0.6;
}

.parallax > use:nth-child(3) {
  animation-delay: -6s;
  animation-duration: 19s;
  fill: #347343; /* Dritte Welle mittelgrün mit 75% Transparenz */
  opacity: 0.6;
}

.parallax > use:nth-child(4) {
  animation-delay: -8s;
  animation-duration: 20s;
  fill: rgba(0, 0, 0, 1); /* Vierte Welle schwarz */
}

@keyframes move-forever {
  0% {
    transform: translate3d(-90px, 0, 0);
  }
  100% {
    transform: translate3d(85px, 0, 0);
  }
}

/* Footer-Links */
.footer_links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer_links li {
  display: flex;
  align-items: center;
  margin: 8px 0; /* Etwas weniger Abstand zwischen den Listenpunkten */
  position: relative;
  padding-left: 35px; /* Etwas mehr Platz für das größere Bild */
  transition: padding-left 0.3s ease; /* Sanfte Übergangsanimation für das Einrücken */
}

/* Bild vor den Listenelementen */
.footer_links li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px; /* Größeres Icon (von 16px auf 20px) */
  height: 20px; /* Größeres Icon (von 16px auf 20px) */
  background-image: url('/wp-content/uploads/2025/03/icon-footer.png'); /* Dein Bild-Pfad */
  background-size: cover;
  background-position: center;
  transition: transform 0.3s ease; /* Sanfte Übergangsanimation für das Bild */
}

/* Links in der Liste */
.footer_bereich .footer_links a {
  color: white;
  font-size: 17.5px; /* Gleiche Größe wie P */
  font-weight: 300; /* Dünnerer Font-Wert */
  text-decoration: none; /* Keine Unterstreichung */
  transition: color 0.3s ease; /* Sanfte Übergangsanimation für die Textfarbe */
}

/* Links beim Hover ohne Unterstreichung */
.footer_bereich .footer_links a:hover {
  color: #61b52a; /* Textfarbe ändern beim Hover */
  text-decoration: none; /* Keine Unterstreichung beim Hover */
}

/* Beim Hover über das Listenelement: Bild und Link einrücken */
.footer_links li:hover {
  padding-left: 45px; /* Link und Bild etwas einrücken */
}

.footer_links li:hover::before {
  transform: translateY(-50%) scale(0.9); /* Das Bild etwas kleiner machen beim Hover */
}

/* Footer Subheadline */
.footer_subheadline {
  font-family: "Montserrat", sans-serif;
  color: var(--weiss);
  font-weight: 700;
  font-size: var(--font-size-footer_subheadline);
  line-height: 30px;
}

/* Container für das Logo auf der linken Seite */
.footer_logo_section {
  flex: 0 0 16.6667%; /* 2 Spalten breit */
  display: flex;
  align-items: center; /* Zentriert das Logo vertikal */
  justify-content: flex-start; /* Hält das Logo am linken Rand */
  padding-left: 20px; /* Randabstand nach links */
}

/* Spezifische Anpassungen für das Logo */
.footer_logo {
  width: 100%; /* Volle Breite des Containers */
  height: auto; /* Höhe passt sich automatisch an */
}

/* Rechte Seite Layout */
.footer_logo_right {
  display: flex;
  justify-content: flex-start; /* Logo weiter nach links verschieben */
  align-items: center;
  padding-left: 50px; /* Vergrößerter Abstand zum linken Rand */
  padding-right: 50px; /* Vergrößerter Abstand zum rechten Rand */
  height: 100%; /* Damit das Logo auf gleicher Höhe bleibt */
}

.footer_logo_image {
  height: 80px; /* Größeres Logo */
  max-height: 80px; /* Maximale Höhe des Logos */
  width: auto; /* Breite wird automatisch angepasst */
  object-fit: contain; /* Logo gleichmäßig skalieren */
  padding-left: 40px;
}

/* Footer Überschrift */
.footer_headline {
  font-size: 26px; /* Größere Schriftgröße für Überschriften */
  color: var(--weiss);
  font-weight: 700; /* Dickere Schrift */
}

/* Allgemeine Anpassungen der Schriftarten im Footer */
.footer_bereich .footer_headline,
.footer_bereich .footer_links a {
  color: var(--weiss); /* Weiß für Überschriften und Links */
}

@media (min-width: 992px) {
  .col-lg-2 {
      flex: 0 0 auto;
      width: 50%;
  }
.col-3 {
  flex: 0 0 auto;
  width: 50%;
}
}

@media (max-width: 992px) {
  .footer_logo_right {
    display: none;
}
}


/* Wrapper für Kontaktformular */
.wrapper_kontaktformular {
  display: flex;
  justify-content: space-between;
  background-color: var(--schwarz);
  padding: 60px 155px;
  box-sizing: border-box;
  margin-left: calc(-50vw + 50%); /* Umgeht das Padding, indem der Parallax-Bereich nach links verschoben wird */
  margin-right: calc(-50vw + 50%); /* Umgeht das Padding auf der rechten Seite */
}

/* Linke Spalte (Text) */
.wrapper_kontaktformular .links {
  width: 45%;
}

.wrapper_kontaktformular .h2_kontakt {
  font-family: "Montserrat", sans-serif;
  color: var(--gruen);
  font-weight: 800;
  font-size: var(--font-size-h2);
  text-transform: uppercase;
}

.wrapper_kontaktformular .subheadline_weis {
  font-family: "Montserrat", sans-serif;
  color: var(--weiss);
  font-weight: 500;
  font-size: var(--font-size-subheadline);
}

.wrapper_kontaktformular .p_weis {
  font-family: "Roboto", sans-serif;
  color: var(--weiss);
  font-weight: 500;
  font-size: var(--font-size-p);
  line-height: 28px;
}

/* Rechte Spalte - Formular */
.wrapper_kontaktformular .rechts {
  width: 45%;
  display: flex;
  flex-direction: column;
  padding-right:60px;
}

.wpforms-form input,
.wpforms-form textarea {
    border-radius: 15px !important; /* Abgerundete Ecken */
    font-size: var(--font-size-p) !important;
    border-style: none !important;
    box-shadow: -1px 3px 12px rgba(0.2, 0.2, 0.2, 0.2) !important;
}

/* Kontaktformular-Button im Stil des Weiterleitungsbuttons */
#wpforms-submit-300.kontakt_senden {
  position: relative !important;
  display: inline-block !important;
  padding: 12px 24px !important;
  border: none !important;
  font-size: var(--font-size-p) !important;
  font-family: "Montserrat", sans-serif !important;
  font-weight: 600 !important;
  background-color: #61b52a !important;
  border-radius: 100px !important;
  color: #fff !important;
  box-shadow: 0 0 0 3px #61b52a !important;
  cursor: pointer !important;
  overflow: hidden !important;
  transition: all 0.6s cubic-bezier(0.23, 1, 0.320, 1) !important;
  z-index: 1 !important;
}

/* Kreis-Effekt */
#wpforms-submit-300.kontakt_senden::after {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  width: 20px !important;
  height: 20px !important;
  background-color: #347343 !important;
  border-radius: 50% !important;
  opacity: 0 !important;
  transition: all 2s cubic-bezier(0.23, 1, 0.23, 1) !important;
  z-index: -1 !important; /* Stellt sicher, dass der Effekt hinter dem Text bleibt */
}

/* Hover-Effekt */
#wpforms-submit-300.kontakt_senden:hover {
  box-shadow: 0 0 0 5px #8FBC99 !important;
  color: #ffffff !important; /* Stellt sicher, dass die Schrift sichtbar bleibt */
}

#wpforms-submit-300.kontakt_senden:hover::after {
  width: 999px !important;
  height: 999px !important;
  opacity: 1 !important;
}

/* Klick-Animation */
#wpforms-submit-300.kontakt_senden:active {
  scale: 0.95 !important;
}



@media (max-width: 1024px) {
  .wrapper_kontaktformular {
    flex-direction: column;
    align-items: center; /* optional: zentriert die Inhalte horizontal */
    padding: 80px;
  }
  .wrapper_kontaktformular .links,
  .wrapper_kontaktformular .rechts {
    width: 100%;
  }
  .wrapper_kontaktformular .links { 
    padding: 0;
  }
  .wrapper_kontaktformular .rechts {
    padding: 0;
  }
}

@media (min-width: 769px) and (max-width: 992px) {
  .wrapper_kontaktformular {
    padding: 60px 50px;
  }
}

@media (max-width: 768px) {
  .wrapper_kontaktformular {
    padding: 60px 30px;
  }
}

/* kontaktformular ende*/

/* kontaktseite*/

.wrapper_inhalt_kontakt .rechts{
  width: 49%;
  margin:0px;
}

.wrapper_inhalt_kontakt{
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 50px;  /* Größerer Abstand zwischen den Elementen */
  flex-wrap: wrap;
  padding: 60px 45px; /* Mehr Abstand zu den Bildschirmkanten */
  width: 100%;
  max-width: 100%;
  margin: 30px auto; /* Mehr Abstand nach oben und unten */
  box-sizing: border-box;
  min-height: 200px;
  flex-direction: row-reverse;
  margin-bottom: 20px;
}
@media (max-width: 1024px) {
  .wrapper_inhalt_kontakt {
    flex-direction: row;
    justify-content: flex-start;
    gap: 40px; /* Größerer Abstand zwischen den Elementen */
    padding: 30px; /* Mehr Abstand zu den Bildschirmkanten */
    margin: 30px auto; /* Mehr Abstand nach oben und unten */
  }
  .wrapper_inhalt_kontakt .rechts {
    width: 100%;
  }
}
@media (max-width: 768px) {
  .wrapper_inhalt_kontakt {
    flex-direction: column;
    gap: 30px; /* Mehr Abstand zwischen den Elementen */
    padding: 10px;  /* Etwas mehr Abstand zu den Bildschirmkanten */
    margin: 30px auto; /* Mehr Abstand nach oben und unten */
  }
}


div.wpforms-container-full:not(:empty){
  margin:0px !important; 
}

/* Gesamtcontainer – zweispaltiges Layout */
.inhalt_dienstleistungskacheln {
  display: flex;
  flex-wrap: nowrap; /* Kein Umbruch */
  align-items: flex-start; /* Oben ausgerichtet */
  gap: 40px;
}

/* Linke Seite für Kacheln (50% der Gesamtbreite) */
.linke_seite {
  max-width: 49%; /* Linke Spalte nimmt 50% ein */
  flex-direction: column;
  justify-content: center; /* Kacheln vertikal mittig ausrichten */
  gap: 20px; /* Abstand zwischen den Kacheln */
  flex: 1;
  width: 49%;
  height: auto;
  display: inline-block;
  padding-left: 30px;
}

/* Rechte Seite für Text (50% der Gesamtbreite) */
.rechte_seite {
  max-width: 49%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start; /* Bleibt oben */
  padding-left: 60px;
  padding-right: 20px;
  flex: 1;
  box-sizing: border-box;
  vertical-align: top;
}

/* Container für die Kacheln */
.dienst_kachel {
  display: flex;
  flex-wrap: wrap; /* Kacheln können umbrechen */
  gap: 20px; /* Abstand zwischen den Kacheln */
  justify-content: center; /* Kacheln horizontal zentrieren */
}

/* Einzelne Kachel (je 50% der linken Spalte) */
.kachel_item {
  width: calc(50% - 10px); /* Kacheln nehmen 50% der Breite der Container-Spalte ein */
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 10px;
  padding: 10px;
  border-radius: 20px;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.08);
  background: #fff;
  text-decoration: none;
  transition: transform 0.2s ease-in-out;
  padding-left: 20px;
  padding-right: 20px;
}

/* Sicherstellen, dass alle Kacheln (auch nth-child) die gleiche Breite auf Desktop haben */
.dienst_kachel .kachel_item:nth-child(3n) {
  width: calc(50% - 10px); /* Drittel-Kachel bekommt die gleiche Breite wie die anderen */
  margin: 0 auto; /* Center the 3rd, 5th, 7th tiles, etc. */
}

/* Hover-Effekt für Kacheln */
.kachel_item:hover {
  transform: translateY(-5px);
}

/* Bild in den Kacheln */
.kachel_content_bild {
  width: 100px;
  height: 100px;
  margin-bottom: 10px;
}

.kachel_content_bild img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Text in den Kacheln */
.p_frage {
  font-size: 16px;
  font-weight: bold;
  color: #333;
}

/* Verhindert Unterstreichung der Links */
.dienst_kachel .kachel_item a {
  text-decoration: none; /* Entfernt die Unterstreichung */
  color: inherit; /* Übernimmt die Textfarbe der Kachel */
  border: none; /* Entfernt etwaige Ränder */
}

/* Auch beim Hover keine Unterstreichung */
.dienst_kachel .kachel_item a:hover {
  text-decoration: none; /* Entfernt die Unterstreichung auch beim Hover */
  color: inherit; /* Stellt sicher, dass die Farbe erhalten bleibt */
  border: none; /* Entfernt etwaige Ränder beim Hover */
}

/* Überschrift (h2) linksbündig, gezielt auf h2 innerhalb der Kachel */
.dienst_kachel .kachel_item h2 {
  text-align: left !important; /* Überschrift links ausrichten, mit !important, um andere Regeln zu überschreiben */
  margin: 0; /* Entfernt den Standardabstand */
  padding-left: 0; /* Entfernt Einrückung auf der linken Seite */
  width: 100%; /* Volle Breite */
  display: block; /* Sicherstellen, dass der h2 Block-Level ist */
}

/* Responsive: Kacheln untereinander auf kleineren Screens */
@media (max-width: 1024px) {
  .inhalt_dienstleistungskacheln {
      flex-direction: column; /* Spalten untereinander */
      align-items: center;
  }

  .linke_seite,
  .rechte_seite {
      width: 100%; /* Volle Breite */
      max-width: 100%;
  }

  .linke_seite {
    padding-left:10px;
    padding-right:10px;
  }

  .rechte_seite {
    padding-left:10px;
    padding-right:10px;
  }

  .dienst_kachel {
      justify-content: center; /* Kacheln zentrieren */
  }

  .kachel_item {
      width: 100%; /* Alle Kacheln untereinander */
  }
}

/* Mobile Anpassungen: Auch hier wird die 3. Kachel wie die anderen behandelt */
@media (max-width: 1024px) {
  .dienst_kachel .kachel_item:nth-child(3n) {
    width: 100%; /* 3. Kachel bekommt die gleiche Breite wie die anderen */
    margin: 0 auto; /* Sorgt dafür, dass sie mittig bleibt */
  }
}

/* ---------- Leistungen Slider (siehe slick.css) ---------- */

.fw_block_text {
  padding: 50px;
  min-height: 620px;
}

.fw_block_bild {
  padding: 0;
  min-height: 350px;
  border-top-right-radius: 20px;
  border-bottom-right-radius: 20px;
}
@media (max-width: 768px) {
  .fw_block_text {
    padding: 30px;
  }
}

.slick-arrow {
  background: transparent;
}

.slick-prev:before, .slick-next:before {
  font-family: "Font Awesome 5 Free";
  font-size: 30px;
  line-height: 1;
  opacity: .75;
  color: white;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.slick-next {
  right: -45px;
}

.slick-prev {
  left: -45px;
}

.slick-next:before {
  content: '\f35a';
}

.slick-prev:before {
  content: '\f359';
}

section.singlecontentintro {
  padding-bottom: 20px;
}

section.singlecontentslider {
  padding-bottom: 0;
  max-width: 100%;
  padding-top: 0;
}

.slider_single_content .fw_block_bild {
  background-size: cover;
}

.lgrey {
  background: var(--grau);
  border-radius: 15px;
}

/* slider nav styles */

.slider_single_nav {
  max-width: 1000px; 
  height: 200px;
  display: block; 
  margin: 0 auto;
}

.slider_single_nav .slick-list {
  z-index: 1;
  padding: 20px 50px 20px 49px!important;   
}

.slider_single_nav .slick-list .slick-slide {
  width: 324px;
  border-radius: 20px;
  text-align: center;
  background: #fff;
  padding: 14px 5px 17px 5px;
  -webkit-box-shadow: 0px 0px 5px 3px rgba(0,0,0,0.09);
  -moz-box-shadow: 0px 0px 5px 3px rgba(0,0,0,0.09);
  box-shadow: 0px 0px 5px 3px rgba(0,0,0,0.06);
  border: 1px solid #eee;
  background: #fbfbfb!important;
  height: 190px;
  gap: 30px;
}

.slider_single_nav .slick-list .slick-current {
  margin-top: -7px;
  min-height: 220px;
  padding: 14px 5px 17px 5px;
  background: #fff!important;
  border-radius:20px;
}


.slider_single_nav .slick-list .slick-slide p.spacecat_text {
  padding: 0 5px;
}

.slider_single_nav .slick-list .slick-slide img {
  width: 100px;
  margin: 0 auto;
  display: block;
}

.slider_single_nav .slick-list .slick-current img {
  width: 130px;
  margin: 0 auto;
  display: block;
}

.slider_single_nav .slick-prev:before, .slick-next:before {
  color: #bbb;
}
.slick-initialized .slick-slide {
  display: flex;
  justify-content: center;
  align-items: center;
}
/* ---------- Leistungen Slider Ende ---------- */


/* ---------- Feature Grid (Karte + Kacheln) ---------- */

.hs-feature-wrapper:nth-child(2n) {
  flex-direction: row;
}

/* Überschreibt die .wrapper_inhalt-Flexregeln NUR für dieses Element */
.hs-feature-wrapper{
  display: block;            /* kein Flex-Container */
  gap: 0;                    
  padding: 10px 45px;        
}

/* Headline + Subheadline jeweils auf volle Breite */
.hs-feature-wrapper > h2,
.hs-feature-wrapper > .subheadline{
  width: 100%;
  display: block;
  margin: 0 0 5px 0;        
}

@media (max-width: 1024px) {
  .hs-feature-wrapper {
    margin: 30px auto; /* Abstand zu den anderen Elementen */
    padding: 0 10px;
  }
}

/* die große gemeinsame Kachel */
.hs-feature-card {
  position: relative;
  border-radius: 16px;
  padding: 30px;
  background: var(--grau);
  box-shadow: 3px 2px 10px rgba(0, 0, 0, 0.2);
}

/* Grid für die Items */
.hs-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 0px 36px;
}

.feature_grid_subheadline {
  margin-bottom: 20px !important;
}

@media (max-width: 1024px) {
  .hs-feature-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 640px) {
  .hs-feature-card { padding: 20px; }
  .hs-feature-grid { grid-template-columns: 1fr; gap: 18px; }
}

/* Einzelnes Item */
.hs-feature-item {
  display: flex;
  flex-direction: column;   
  align-items: flex-start;
  padding: 12px 0;
  background: transparent;
  box-shadow: none;
  text-decoration: none;
  color: inherit;
  transition: transform .25s ease;
}
.hs-feature-item:hover {
  transform: translateY(-3px);
}

/* Icon + Titel in einer Reihe */
.hs-feature-header {
  display: flex;
  align-items: baseline;
  gap: 10px;                
  margin-bottom: 6px;
}

/* Subheadline (eigene Klasse) */
.feature_grid_subheadline_innen {
  margin: 0;
  line-height: 1.2 !important;  
  color: #111;
}

/* Icon neben Überschrift */
.hs-feature-icon {
  margin: 0;
  flex-shrink: 0;
}
.hs-feature-icon svg,
.hs-feature-icon img {
  width: 40px;
  height: 40px;
  object-fit: contain;
}
.hs-feature-icon--ph {
  width: 40px;
  height: 40px;
  background: #ccc;
  border-radius: 6px;
  display: block;
}

/* ---------- Feature Grid (Karte + Kacheln) ENDE ---------- */
