/* ============================================
   1. GLOBALE VARIABLEN & RESET
   ============================================ */
:root {
  --layoutWidth: 90%;
  --layoutMaxWidth: 100%;
  --orange: #f29100;
  --red: #f29100;
  --grey: #ced6e4;
  --white: #ffffff;
  --color-blue: #232c77;
  --color-black: #1c1c1b;
}

/* WICHTIG: Erlaubt Silbentrennung global und fixiert die Text-Skalierung für Safari */
html, body {
    -webkit-hyphens: auto !important;
    hyphens: auto !important;
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
    margin: 0;
    padding: 0;
    font-family: 'Jost*', sans-serif;
}

.wrapper {
  width: var(--layoutWidth);
  max-width: var(--layoutMaxWidth);
  margin-left: auto;
  margin-right: auto;
}

/* ============================================
   2. MEDIA QUERIES FÜR VARIABLEN (Layout-Größen)
   ============================================ */

/* 0. Small Mobile (iPhone 8 etc.) */
@media screen and (max-width: 375px) {
  :root {
    --space-xxs: 0.25rem;
    --space-xs: 0.5rem;
    --space-s: 0.8rem;
    --space-m: 1.5rem;
    --space-l: 2.2rem;
    --space-xl: 3rem;
    --space-xxl: 4.5rem;
    --copy-underline: 0.6rem;
    --copy-small: 1.0rem;
    --heading-xs: 1.15rem;
    --heading-sm: 1.25rem;
    --heading-md: 1.35rem;
    --heading-lg: 1.65rem;
    --heading-xl: 2.1rem;
    --line-height-l: 1.3rem;
  }
}

/* 1. Mobile Basis (376px bis 767px - iPhone 16 etc.) */
@media (min-width: 376px) and (max-width: 767px) {
  :root {
    --space-xxs: 0.3rem;
    --space-xs: 0.6rem;
    --space-s: 1rem;
    --space-m: 2rem;
    --space-l: 3rem;
    --space-xl: 4rem;
    --space-xxl: 6rem;
    --copy-underline: 0.7rem;
    --copy-small: 1.1rem;
    --heading-xs: 1.25rem;
    --heading-sm: 1.35rem;
    --heading-md: 1.5rem;
    --heading-lg: 2.0rem;
    --heading-xl: 2.5rem;
    --line-height-l: 1.5rem;
  }
}

/* 2. Tablet (Ab 768px) */
@media (min-width: 768px) {
  :root {
    --layoutWidth: 90%;
    --layoutMaxWidth: 720px;
    --space-xxs: 0.4rem;
    --space-xs: 0.8rem;
    --space-s: 1.5rem;
    --space-m: 3rem;
    --space-l: 5rem;
    --space-xl: 6.5rem;
    --space-xxl: 9rem;
    --copy-underline: 0.8rem;
    --copy-small: 1.15rem;
    --heading-xs: 1.4rem;
    --heading-sm: 1.5rem;
    --heading-md: 1.75rem;
    --heading-lg: 2.5rem;
    --heading-xl: 3.1rem;
    --line-height-l: 2rem;
  }
}

/* 3. Desktop (Ab 1280px) */
@media (min-width: 1280px) {
  :root {
    --layoutWidth: 1260px;
    --layoutMaxWidth: 1260px;
    --space-xxs: 0.5rem;
    --space-xs: 1rem;
    --space-s: 2rem;
    --space-m: 4rem;
    --space-l: 8rem;
    --space-xl: 10rem;
    --space-xxl: 12rem;
    --copy-underline: 0.9rem;
    --copy-small: 1.3rem;
    --heading-xs: 1.6rem;
    --heading-sm: 1.7rem;
    --heading-md: 2.0rem;
    --heading-lg: 3.0rem;
    --heading-xl: 3.7rem;
    --line-height-l: 2.5rem;
  }
}

/* ============================================
   3. SPEZIAL-FIX FÜR SILBENTRENNUNG (Handy)
   ============================================ */
@media screen and (max-width: 767px) {
    .mod_article p, 
    .mod_article li, 
    .mod_article div.rte,
    .mod_article h1, 
    .mod_article h2 {
        /* Silbentrennung erzwingen */
        -webkit-hyphens: auto !important;
        hyphens: auto !important;
        -webkit-locale: "de" !important;
        
        /* Verhindert hartes Abschneiden ohne Bindestrich */
        word-break: normal !important;
        overflow-wrap: break-word !important;
        
        /* Blocksatz hilft Safari oft bei der Trennung */
        text-align: left;
    }

    /* Textgröße nutzt deine Variablen (keine fixen 16px mehr!) */
    .mod_article p, 
    .mod_article li, 
    .mod_article div.rte {
        font-size: var(--copy-small) !important;
        line-height: 1.6 ;
    }
}

/* ============================================
   4. TYPOGRAPHIE (Allgemein)
   ============================================ */
h1, h2, h3, h4, h5, h6, strong {
    font-weight: normal;
    text-decoration: none;
}

p {
    font-size: var(--copy-small);
    line-height: 1.7;
    color: var(--color-black);
    font-weight: 300;
}

.oneCol h2, .twoCols h2 {
    font-weight: 300;
    color: var(--color-black);
    font-size: var(--heading-md);
    line-height: var(--heading-md);
    text-transform: uppercase;
    padding-bottom: var(--space-xs);
    margin-bottom: var(--space-xs);
}

/* ============================================
   MEDIA QUERY & GLOBAL RESET
   ============================================ */
  *,
  *:before,
  *:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
  }

  * {
    margin: 0;
    padding: 0;
  }
  
  img {
    line-height: 0px;
    margin-bottom: 0;
    padding: 0;
    margin: 0;
  }
  
  body {
        font-family: 'Jost*';
  }

  /* ============================================
     TYPOGRAPHY
     ============================================ */
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  strong {
    margin: 0;
    padding: 0;
    font-weight: normal;
    font-style: normal;
    text-decoration: none;
  }
  
  p {
    font-size: var(--copy-small);
    line-height: 1.7;
    margin: 0;
    padding: 0;
    color: var(--color-black);
    font-weight: 300;
  }
.mega-dropdown p{
font-size: 0.9rem;
  }
  
  .oneCol h2,   .twoCols h2  {
    font-weight: 300;
    font-style: normal;
    color: var(--color-black);
    font-size: var(--heading-md);
    line-height: var(--heading-md);
    text-transform: uppercase;
    padding-bottom: var(--space-xs);
    margin-bottom: var(--space-xs);
  }
.legal h2{
  margin-top: 4rem;
  }
  .legal h2:first-of-type {
  margin-top: 0;
}

  .rubrikGray p {
    font-size: var(--h-bigger);
  }

.content-text div.rte p strong{
font-weight: 500;
}

.rte ul {
    margin: 0 0 1.5em 0; /* Abstand unten: 1.5em (anpassbar) */
    padding-left: 1.5em; /* Einrückung für die Bulletpoints */
    list-style-type: disc; /* Standard-Bulletpoints */
    line-height: 1.6; /* Bessere Lesbarkeit */
    font-size: var(--copy-small);
    padding-block: 2rem;
    font-weight: 300;
}

/* Optional: Falls du die Bulletpoints stylen möchtest */
.rte ul li {
    margin-bottom: 0.5em; /* Abstand zwischen den Listenelementen */
}
.topmargin{
  margin-top: var(--space-s);
}
a{
  color: var(--orange);
  text-decoration: none;
}

/* ============================================
     HEADER SECTION
============================================ */
  #header {
    width: 100%;
    height: auto;
    background-color: var(--white);
    overflow: visible;
    position: relative;
  }
  
  #header div.inside {
    width: var(--layoutWidth);
    margin-inline: auto;
    margin-top: 1rem;
  }

  .headerLogo {

  }

  #header #socialsHeader {
    display: flex;
    justify-content: flex-end;
  }


/* ============================================
     IntroVideo
 ============================================ */

#introfilm {
  position: relative;
  width: 100vw;
  margin-left: 50%;
  transform: translateX(-50%);
  overflow: hidden;
}

#introfilm video {
  width: 100%;
  height: auto;
  display: block;
}

#introfilm figure {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}
/* ============================================
     PARTNERLOGOS
 ============================================ */
.partnerLogos.content-element-group {
    display: grid;
    /* Erstellt 3 gleiche Spalten */
        grid-template-columns: 31% 14% 22% 32%;
    /* Abstand zwischen den Logos */
    gap: 1%; 
    /* Zentriert Inhalte in den Spalten */
    align-items: center;
    justify-items: center;
}

/* Sorgt dafür, dass die Logos nie größer als ihre Spalte werden */
.partnerLogos .content-image img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Responsiv: Auf kleineren Bildschirmen untereinander anordnen */
@media (max-width: 768px) {
    .partnerLogos.content-element-group {
        grid-template-columns: 31% 14% 22% 31%;
    }
}

/* ============================================
     Spalte leftRight
 ============================================ */
.left02right01 {
    display: grid;
    grid-template-columns: 50% 50%; 
    align-items: start; /* Ausrichtung oben */
    width: 100%; /* Volle Breite des Elternelements */
    max-width: 100%; /* Verhindert Überlauf */
    margin: 0; /* Kein Zentrieren, da volle Breite gewünscht */
    box-sizing: border-box; /* Padding/Border in die Breite einbeziehen */
}

/* Optional: Media Query für kleinere Bildschirme */
@media (max-width: 768px) {
    .left02right01 {
        grid-template-columns: 1fr; /* Auf mobilen Geräten untereinander anzeigen */
        gap: 15px;
    }
    .rightImage img {
        width: 100%; /* Bild auf volle Breite skalieren */
        height: auto;
    }
}
.rightImage.captain.content-image figure {
    width: 100%; /* Volle Breite des Containers nutzen */
    height: auto; /* Höhe automatisch anpassen */
    display: flex; /* Flexbox für Zentrierung */
    justify-content: center; /* Horizontal zentrieren */
    align-items: flex-start; /* Vertikal oben ausrichten */
    margin: 0; /* Standard-Margin entfernen */
    padding: 0; /* Standard-Padding entfernen */
}

.rightImage.captain.content-image img {
    width: 50%; /* Basis für Mobile (bis 767px) */
    height: auto;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}

/* Ab 768px wird das Bild wieder größer */
@media (min-width: 768px) {
    .rightImage.captain.content-image img {
        width: 50%;
    }
}


/* ============================================
     Header Grafik
 ============================================ */

.mod_article.headergrafik.block {
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  width: 100vw;
  overflow: hidden;              /* Inhalte, die zu groß sind, werden abgeschnitten */
  background: #eee;
  clip-path: polygon(0 0, 100% 0, 100% 78%, 0 100%);
  max-height: 450px;             /* maximale Höhe – anpassen nach Bedarf */
}

/* Bild im Header */
.mod_article.headergrafik.block img {
  width: 100%;
  height: 100%;
  object-fit: cover;             /* Bild wird beschnitten, kein Overflow */
  object-position: center;       /* Bild bleibt zentriert */
  display: block;
}

/* Bild sauber zentrieren und responsiv halten */
.mod_article.headergrafik .content-image,
.mod_article.headergrafik figure {
  margin: 0;
}

.mod_article.headergrafik img {
  display: block;
  width: min(100%, 1920px);  /* skaliert runter, aber nicht über Original */
  height: auto;
  margin-inline: auto;       /* zentriert */
}

/* Optional: auf sehr kleinen Screens Winkel etwas entschärfen */
@media (max-width: 600px) {
  .mod_article.headergrafik.block {
    clip-path: polygon(0 5%, 100% 0, 100% 95%, 0 100%);
    padding: 20px 0;
  }
}
/* ============================================
     Überlappung Film und logo
============================================ */
.logoFilmDiv {
    position: relative;
    width: 100%;
    height: 720px; /* Standardhöhe für Desktop */
    overflow: hidden;
    margin-bottom: var(--space-m);
}

/* Bis Breite 959px wird die Höhe auf 500px reduziert */
@media (max-width: 959px) {
    .logoFilmDiv {
        height: 500px;
    }
}

.logoFilmDiv .headerLogo {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    width: auto;
}

.logoFilmDiv .headerLogo img {
    width: 700px; /* Standard: Desktop */
    height: auto;
    max-width: none;
}

/* Bis 959px Breite auf 450px verkleinern */
@media (max-width: 959px) {
    .logoFilmDiv .headerLogo img {
        width: 450px;
    }
}

/* Bis 767px Breite auf 350px verkleinern */
@media (max-width: 768px) {
    .logoFilmDiv .headerLogo img {
        width: 350px;
        max-width: 90%; /* Verhindert Abschneiden auf Mini-Displays */
        display: none;
    }
}

.logoFilmDiv #introfilm {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.logoFilmDiv #introfilm video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Responsive-Anpassung */
@media (max-width: 768px) {
    .logoFilmDiv {
        height: 300px; /* Kleinere Höhe auf mobilen Geräten */
    }
}

  /* ============================================
     Bild gesamte Breite
     ============================================ */

.wholeWidthImg.content-image figure {
    width: 100%;
    height: auto; /* Basis: Automatische Höhe bis 767px */
    overflow: hidden;
    margin: 0 auto 4rem; /* Etwas reduzierter Abstand für Mobile */
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Ab 768px greift die feste Höhe */
@media (min-width: 959px) {
    .wholeWidthImg.content-image figure {
        height: 800px;
        margin: 0 auto;
        margin-bottom: var(--space-xl);
    }
}

  .wholeWidthImg.content-image img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Bild füllt Container ohne Verzerrung */
    object-position: center; /* Bildinhalt wird zentriert */
  }
/* ============================================
     Blaues grid in ServiceGrid
============================================ */


/* 1. DER CONTAINER (3 -> 2 -> 1 Spalte) */
.dreiSpaltenGridBlau {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-s);
  margin-top: var(--space-s);
}

@media (max-width: 900px) {
  .dreiSpaltenGridBlau {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 576px) {
  .dreiSpaltenGridBlau {
    grid-template-columns: 1fr;
  }
}

/* 2. DIE BOXEN */
.blueBoxGrid {
  width: 100%;
  background-color: var(--color-blue);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  box-sizing: border-box;
  padding: 1rem;
  transition: background-color 0.3s ease;
  cursor: cell;
  
  /* Festes Verhältnis für Desktop & Tablet, damit 1- und 2-Zeiler gleich hoch sind */
  aspect-ratio: 4 / 1.5; 
  overflow: hidden;
}

/* DEIN WUNSCH: Bis 576px das flache Verhältnis 4 / 0.9 */
@media (max-width: 576px) {
  .blueBoxGrid {
    aspect-ratio: 4 / 0.9;
  }
}

.blueBoxGrid:hover {
  background-color: var(--orange);
}

/* 3. DER TEXT */
.blueBoxGrid p {
  margin: 0;
  font-size: var(--heading-md) !important;
  color: white;
  font-weight: 300;
  text-align: center;
  line-height: var(--line-height-l);
}

/* ============================================
     ServiceGrid
============================================ */
.serviceGrid {
    display: grid;
    /* Standard für Desktop: 60/40 Aufteilung */
    grid-template-columns: 60% 40%;
    gap: 1rem;
    align-items: center;
}

/* Umbruch bei 768px oder kleiner */
@media (max-width: 768px) {
    .serviceGrid {
        /* Stapelt die Spalten untereinander */
        grid-template-columns: 1fr;
        gap: 2rem; /* Optional: Etwas mehr Abstand zwischen den gestapelten Elementen */
    }
}

.serviceGrid .content-image img {
    width: 100%;
    height: auto;
    display: block;
}

/* Mobile Optimierung */
@media (max-width: 767px) {
    .serviceGrid {
        /* Nur noch eine Spalte */
        grid-template-columns: 1fr;
    }

    /* Rechte Spalte (Bild) ausblenden */
    .serviceGrid .content-image {
        /* display: none; */
    }
}
/* ============================================
     BlueBoxWrap
============================================ */

.blueBoxWrap {
    display: flex;
    gap: 5rem; /* Abstand zwischen den Boxen */
    justify-content: space-between; /* Gleichmäßige Verteilung */
    width: 100%;
    flex-wrap: no-wrap; 
    margin-bottom: 2rem;
    margin-top: 2rem;
}

.blueBox {
    flex: 1 1 calc(33.333% - 20px); /* Jede Box nimmt ~33.33% der Breite ein (abzüglich gap) */
    min-width: 250px; /* Mindestbreite für kleine Bildschirme (optional) */
    box-sizing: border-box; /* Padding/Border in die Breite einbeziehen */
    padding: 25px; /* Optional: Innenabstand */
    border: 1px solid #e1e1e1; /* Optional: Rahmen */
}

/* Optional: Responsive-Anpassung für mobile Geräte */
@media (max-width: 768px) {
    .blueBox {
        flex: 1 1 100%; /* Volle Breite auf kleinen Bildschirmen */
    }
}


.blueBox {
    width: 100%; /* Volle Breite des Elternelements */
    aspect-ratio: 1 / 1; /* Quadratisches Verhältnis (Höhe = Breite) */
    background-color: var(--color-blue);
    color: white; /* Weiße Schrift */
    display: flex; /* Flexbox für Zentrierung des Inhalts */
    align-items: center; /* Vertikal zentrieren */
    justify-content: center; /* Horizontal zentrieren */
    padding: 30px; /* Innenabstand (optional) */
    box-sizing: border-box; /* Padding in die Breite/Höhe einbeziehen */
    text-align: center; /* Text zentrieren */
    border-radius: 0; /* Optional: Ecken abrunden (z. B. 8px) */
}

/* Optional: Schriftgröße anpassen */
.blueBox p {
    margin: 0; /* Entfernt Standard-Abstand */
    font-size: 2.2rem;
    color: white;
    font-weight: 300;
}


/* ============================================
     Reparaturbox
============================================ */

/* ReparaturBox: Drei Spalten mit Grid */
.reparaturBox {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* Drei gleich breite Spalten */
    gap: 2rem; /* Abstand zwischen den Spalten */
    width: 100%;
    margin: 0 auto; /* Optional: Zentrieren */
    margin-top: 3rem;
}

/* Listen ohne Bulletpoints und in Großbuchstaben */
.reparaturBox .content-text.media.media--below .rte ul {
    list-style: none; /* Entfernt Aufzählungszeichen */
    margin: 0; /* Entfernt Standard-Abstand */
    padding-left: 0; /* Entfernt Einrückung */
    text-align: center; /* Zentriert den Text */
    font-size: var(--heading-sm);
}

.reparaturBox .content-text.media.media--below .rte ul li {
    text-transform: uppercase; /* Großbuchstaben */
    margin-bottom: 0.5rem; /* Abstand zwischen Listenelementen */
    font-weight: 300; /* Optional: Etwas fett */
    letter-spacing: 0.02em; /* Leichter Buchstabenabstand */
}

/* Bilder und Layout-Anpassungen */
.reparaturBox .content-text {
    display: flex;
    flex-direction: column;
    align-items: center; /* Zentriert Inhalt horizontal */
}

.reparaturBox img {
    width: 100%; /* Bilder füllen die Spaltenbreite */
    height: auto; /* Proportionen erhalten */
    max-width: 600px; /* Maximale Breite begrenzen */
}

/* Responsive-Anpassung für mobile Geräte */
@media (max-width: 768px) {
    .reparaturBox {
        grid-template-columns: 1fr; /* Auf mobilen Geräten untereinander */
        gap: 1.5rem;
    }
}


/* ============================================
   Spezialwerkzeuge 
============================================ */
.spezialwerkzeugeBullets .rte ul {
    display: flex; /* Flexbox für Umbruch */
    flex-wrap: wrap; /* Erzwingt Umbruch */
    list-style: none;
    margin: 0;
    padding: 1rem;
    gap: 0.5rem;
    background-color: var(--grey);
    border-radius: 5px;
    width: 100%; /* Volle Breite nutzen */
    max-width: 100%; /* Verhindert Überlauf */
    box-sizing: border-box; /* Padding in Breite einbeziehen */
}

.spezialwerkzeugeBullets .rte ul li {
    background-color: var(--color-blue);
    color: white;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    font-size: var(--copy-small);
    line-height: 1.2;
    margin: 0;
    cursor: cell;

    /* ÄNDERUNG: Standard ist "normal" (bricht um) */
    white-space: normal;
    
    /* Hilft bei sehr langen Wörtern auf kleinen Bildschirmen */
    word-break: break-word;

    max-width: 100%;
    min-width: fit-content;
}

/* WICHTIG: Ab 960px greift erst das "nowrap" */
@media (min-width: 960px) {
    .spezialwerkzeugeBullets .rte ul li {
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden;
    }
}




  /* ============================================
     CONTAINER & LAYOUT
     ============================================ */
  #container {
    background-color: var(--white); 
    border-color: var(--color-black);
  }
  
  .centered {
    width: var(--layoutWidth);
    margin-inline: auto;
    background-color: var(--white);
  }
  
  .grey {
    background-color: var(--grey);
  }

.mod_article.twoCols {
  display: grid;
  grid-template-columns: 1fr 1fr; /* zwei gleich breite Spalten */
  column-gap: 10rem;             /* nur Abstand zwischen den Spalten */
  row-gap: 0;                    /* kein vertikaler Abstand */
  margin-top: 6rem;
}
  .mod_article.oneCol {
  display: grid;
  grid-template-columns: 1fr; /* zwei gleich breite Spalten */
  margin-bottom: var(--space-xl);
}

.headline {
    grid-column: 1 / -1;
    margin-bottom: var(--space-m);
    margin-top: var(--space-m);
    font-weight: normal;
    font-size: var(--heading-lg); /* 2.1rem */
    text-transform: uppercase;
    color: var(--red);
    /* Optimierte Zeilenhöhe für Umlaute */
    line-height: 1.35; /* 2.1rem × 1.35 = ~2.835rem (ausreichend für Ä/Ö/Ü) */
    /* Spezifische Anpassungen für Umlaute */
    font-variant-ligatures: none; /* Deaktiviert Ligaturen */
    text-rendering: geometricPrecision; /* Bessere Darstellung von Großbuchstaben */
    letter-spacing: 0.03em; /* Verhindert Kollisionen */
    display: block; /* Verhindert Überlappungen */
}
.twoCols p strong{
font-weight: 100 !important;
color: var(--red);
}
.oneCol li strong{
font-weight: 100 !important;
color: var(--red);
}

/* optional: auf kleinen Bildschirmen nur eine Spalte */
@media (max-width: 768px) {
  .mod_article.twoCols {
    grid-template-columns: 1fr; /* einspaltig */
  }
}
/* ============================================
     BILD WRAP
============================================ */


.bildWrap.content-element-group {
    display: grid;
    /* 40% Links, 60% Rechts */
    grid-template-columns: 40% 59%; 
    gap: 1%;
    align-items: start; /* Richtet Inhalt oben aus */
}

/* Sorgt dafür, dass das Bild nicht über den Grid-Container hinausragt */
.bildLinks.content-image img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Optional: Damit es auf Handys untereinander rutscht */
@media (max-width: 768px) {
    .bildWrap.content-element-group {
        grid-template-columns: 1fr; /* Stacking: 1 Spalte */
    }
}

/* ============================================
     SERVICE SECTION
============================================ */
  #service {
    padding-block: var(--space-m);
  }
  
  .rubrikHeadline {
    color: var(--white);
    width: var(--layoutWidth);
    margin-inline: auto;
    font-size: var(--h-bigger);
    text-transform: uppercase;
    padding-bottom: var(--space-xs);
    border-bottom: 2px solid var(--white);
  }

  #serviceBox {
    display: flex;
    flex-direction: row;
    column-gap: 6.5rem;
    justify-content: space-between;
    width: var(--layoutWidth);
    margin-inline: auto;
    background-color: var(--grey);
    padding-block: var(--space-m);
    font-size: var(--h-middle);
    text-align: center;
    color: var(--white);
  }
  
  #serviceBox img {
    padding-bottom: 1rem;
  }

  /* ============================================
     EVENTS SECTION
     ============================================ */
  #aktuelleEvents {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(2, 1fr);
    grid-column-gap: 1.4rem;
    grid-row-gap: 3rem;
    padding-block: 4rem;
  }
  
  .eventContainer {
    border-top: 5px solid;
    border-color: var(--yellow);
    border-bottom: 2px solid var(--grey);
    padding-bottom: 2rem;
  }
  
  .eventContainer figure.image_container {
    width: 100%;
    margin-bottom: 1rem;
    overflow: hidden;
    transition: all 0.9s ease;
  }
  
  .image_container.float_above a img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: all 0.5s ease;
    transform: scale(1);
  }
  
  .eventContainer h2 a {
    color: var(--color-black);
    text-decoration: none;
    display: inline-block;
    margin-bottom: 1rem;
  }
  
  .eventContainer p.time {
    display: none;
  }
  
  .image_container a:hover img {
    transition: all 0.9s ease;
    transform: scale(1.3);
  }
  /* ============================================
     GALERIE
     ============================================ */
.content-gallery ul {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 3 Spalten nebeneinander */
  gap: 2rem; /* Abstand zwischen den Spalten */
  list-style: none;
  margin: 0;
  padding: 0;
  margin-block: 2rem;
}

.content-gallery li {
  margin: 0;
  padding: 0;
}

.content-gallery img {
  display: block;
  width: 100%;
  height: auto;
}

/* ============================================
     FOOTER SECTION
============================================ */
  #footer {
    width: 100%;
    height: auto;
    background-color: var(--color-blue);
    padding-top: 0rem;
    padding-bottom: var(--space-m);
  }
  
  #footer div.inside {
    margin-inline: auto;
  }
  #footerWrapper{
    width: var(--layoutWidth);
    margin-inline: auto;
    margin-top: var(--space-m);
  }  
  #footerBox {
    /* width: var(--layoutWidth); */
    margin-inline: auto;
  }
  

  
  #footerFadeImage img {
    height: 100%;
    object-fit: contain;
  }
  
  .footerBrandLines p { ;
    color: var(--color-blue);
    text-transform: uppercase;
    padding-block: var(--space-xs);
    width: var(--layoutWidth);
    margin-inline: auto;
  }
  
  .bottomBox{
    background-color: var(--white);
    border-top: 2px solid var(--color-blue);
  }

  .bottomBox:nth-of-type(2) {
  border-bottom: 2px solid var(--color-blue);
}
  .footerAdresse p {
    color: white;
  }

  .footerKontakt {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
  .footerAdresse{
    line-height: 2.5rem;
  }


.footerMenu {
    display: grid;
    /* Desktop: 3 Spalten nebeneinander */
    grid-template-columns: repeat(3, 1fr); 
    gap: 2rem; /* Abstand zwischen den Elementen */
    
    padding-top: 2rem;
    padding-bottom: 6rem;
    width: var(--layoutWidth);
    margin-inline: auto;
}

/* Bis 767px: 3 Zeilen untereinander */
@media (max-width: 767px) {
    .footerMenu {
        grid-template-columns: 1fr;
        padding-bottom: 3rem; 
        text-align: center;  
    }
}
  
  .footerMenu ul {
    line-height: 2.5rem;
  }
  
  .footerMenu ul a {
    color: var(--color-black);
    text-decoration: none;
  }
  
  .footerMenuLinks ul li:first-child > a {
  }



/* Liste zurücksetzen */
.mod_navigation.footerMenuLinks ul.level_1 {
  font-size: var(--copy-small);
  list-style: none;   /* Bulletpoints weg */
  margin: 0;
  padding: 0;
  display: block;     /* wichtig */
}

/* Jedes Listenelement untereinander */
.mod_navigation.footerMenuLinks ul.level_1 li {
  display: block !important;  /* überschreibt Contao-Default */

}

/* Links als Block */
.mod_navigation.footerMenuLinks ul.level_1 a {
  display: block;         /* jeder Link nimmt volle Breite */
  text-decoration: none;
  color: inherit;
  font-weight: 400;
  color: white;
}

/* Erster Menüpunkt hervorgehoben */
.footerMenu h2 {
text-transform: uppercase;
line-height: 2.5rem;
color: white;
}


.serviceItem figure {
  margin: 0;
}

.serviceItem a {
  display: block;
  overflow: hidden;      /* alles Überstehende abschneiden */
}

.serviceItem img {
  width: 100%;
  height: 100%;
  object-fit: cover;     /* Bild füllt das Quadrat */
  display: block;
}

.serviceItem figcaption {
  margin-top: .5rem;
  text-align: center;
}

figure a {
  color: #000;              /* Schriftfarbe schwarz */
  text-decoration: none;    /* optional: Unterstreichung entfernen */
}

figure a:hover {
  color: #c00;              /* optional: andere Farbe beim Hover */
}

figure figcaption {
  margin-top: .5rem;
  text-align: center;
}

.serviceItem .rte {
  margin-top: .75rem; /* Abstand oberhalb des Textblocks */
}

.serviceItem .rte a {
  color: #000;             /* schwarze Schrift */
  text-decoration: none;   /* keine Unterstreichung */
  font-weight: 500;        /* optional: etwas kräftiger */
}

.serviceItem .rte a:hover {
  color: #c00;             /* Hover-Farbe (optional) */
}


.artikelBild {
  /* width: 1280px;
  margin-bottom: 3rem; */
}

.jobBild {
  width: 1280px;
  height: 622px; /* Korrekte Höhe */
  background: lightblue;
  clip-path: path('M1280,465s-121,34-232,34c-210,0-369,-83-639,-83C150,416,0,495,0,495V0h1280v465Z');
}
.jobBild.content-image figure {
  height: 650px; /* Gewünschte Container-Höhe */
  width: 100%;
  overflow: hidden;
  position: relative;
}

.jobBild.content-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: -100px; /* Bild nach oben schieben */
  left: 0;
}


/**************************************************
Hamburger Menu
**************************************************/
/* ============================================
   MOBILE NAVIGATION (0px bis 959px)
   ============================================ */
@media (max-width: 959px) {
    /* Hamburger Button */
    .menu-trigger {
        display: block;
        position: fixed;
        top: 30px;
        right: 30px;
        z-index: 1001;
        background: none;
        border: none;
        cursor: pointer;
    }

    .menu-trigger .line {
        display: block;
        width: 28px;
        height: 3px;
        background: var(--color-blue);
        margin: 5px 0;
        transition: 0.3s;
    }

    /* Animation zum X */
    .menu-trigger.is-active .line:nth-child(1) { transform: translateY(8px) rotate(45deg); }
    .menu-trigger.is-active .line:nth-child(2) { opacity: 0; }
    .menu-trigger.is-active .line:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

    /* Menü als Overlay */
    #logoMenu .content-text {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        background: white;
        z-index: 1000;
        display: flex;
        align-items: center;
        justify-content: center;
        transform: translateX(100%); /* Start außerhalb */
    }

    #logoMenu .content-text ul {
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }

    #logoMenu .content-text a {
        font-size: 1.8rem !important;
    }

    #menuHoverBg { display: none; } /* Deaktiviert den Hover-Effekt auf Mobile */
}

/* ============================================
   DEIN ORIGINAL CSS (ab 960px)
   ============================================ */
/* ============================================================
   MOBILE NAVIGATION (0px bis 959px)
   ============================================================ */
@media (max-width: 959px) {
    .menu-trigger {
        display: block;
        position: fixed;
        top: 25px;
        right: 20px;
        z-index: 1002;
        background: none;
        border: none;
        cursor: pointer;
    }

    .menu-trigger .line {
        display: block;
        width: 30px;
        height: 3px;
        background: var(--color-blue);
        margin: 6px 0;
        transition: 0.3s;
    }

    /* Animation zum X */
    .menu-trigger.is-active .line:nth-child(1) { transform: translateY(9px) rotate(45deg); }
    .menu-trigger.is-active .line:nth-child(2) { opacity: 0; }
    .menu-trigger.is-active .line:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }

    #logoMenu .content-text {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        background: white;
        z-index: 1001;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        transform: translateX(100%); /* Startzustand: Rechts versteckt */
    }

    #logoMenu .content-text ul {
        display: block;
        text-align: center;
        list-style: none;
        padding: 0;
    }

    #logoMenu .content-text li { margin: 1.5rem 0; }
    #logoMenu .content-text a { font-size: 1.6rem !important; color: var(--color-blue) !important; }
    
    #menuHoverBg { display: none; }
}

/* ============================================================
   DEIN DESKTOP DESIGN (Ab 960px)
   ============================================================ */
@media (min-width: 960px) {
    .menu-trigger { display: none !important; }

    #logoMenu {
        display: flex;
        align-items: center;
        width: 100%;
        height: 82px;
    }

    #logoMenu .content-image {
        flex: 0 0 200px;
        width: 200px;
        min-width: 200px;
        margin-right: 2rem;
        display: none;
    }

    #logoMenu .content-image figure { width: 100%; margin: 0; }

    #logoMenu .content-image img {
        width: 65%;
        height: auto;
        object-fit: contain;
        max-width: none;
    }

    #logoMenu .content-text {
        position: relative !important;
        display: flex !important;
        flex: 1 1 auto;
        margin: 0;
        padding: 0;
        overflow: visible; /* Auf visible geändert, damit der Hover-Bg nicht abgeschnitten wird */
        transform: none !important; /* Fix gegen das Verschwinden beim Laden */
        visibility: visible !important;
        opacity: 1 !important;
        background: transparent !important;
        height: auto !important;
    }

    #logoMenu .content-text ul {
        display: flex !important;
        justify-content: space-between;
        margin: 0;
        padding: 0;
        list-style: none;
        width: 100%;
        position: relative;
        line-height: 1;
    }

    #logoMenu .content-text li {
        margin: 0;
        padding: 0;
        position: relative;
        z-index: 1;
    }

    #logoMenu .content-text a {
        color: var(--color-blue) !important;
        text-decoration: none !important;
        font-size: 1.0rem !important;
        text-transform: uppercase;
        display: inline-block;
        padding: 0.5rem 0.5rem;
    }

    #menuHoverBg {
        position: absolute;
        background: var(--orange);
        height: 100%;
        width: 0;
        top: 0;
        left: 0;
        z-index: 0;
        border-radius: 6px;
        pointer-events: none;
        opacity: 0;
    }
}

/*****************************************
   Hover bei Menu
   **************************************/

/* Der neue CSS-Hover */
.mainMenu .level_1 li a {
    position: relative;
    padding: 8px 15px;
    color: var(--color-blue) !important;
    text-decoration: none !important;
    z-index: 1;
}

.mainMenu .level_1 li a::before {
    content: "";
    position: absolute;
    bottom: 0; left: 0; width: 100%; height: 0;
    background: var(--orange);
    z-index: -1;
    border-radius: 4px;
    transition: height 0.3s ease;
}

.mainMenu .level_1 li a:hover::before {
    height: 100%; /* Füllt die Box beim Drüberfahren */
}

.mainMenu .level_1 li a:hover {
    color: white !important;
}

/*****************************************
   SLideMenu
   **************************************/
   .slideMenu {
    display: grid;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;

    /* Spalten passen sich dem Text an */
    grid-template-columns: repeat(7, auto);
    
    /* Verteilt die Spalten so, dass der Abstand dazwischen exakt gleich ist */
    justify-content: space-between;
    
    /* Vertikale Zentrierung */
    align-items: center;
}

.slideMenu li {
    /* Keine feste Breite hier, damit justify-content greift */
    display: flex;
    justify-content: center;
}

.slideMenu a {
    text-decoration: none;
    color: var(--color-blue);
    font-size: 0.9rem;
    text-transform: uppercase;
    white-space: nowrap; /* Verhindert Zeilenumbruch */
    transition: color 0.3s ease;
    
    /* Padding nur oben/unten, da der seitliche Abstand vom Grid kommt */
    padding: 10px 0; 
}

.slideMenu a:hover {
    color: var(--orange);
}

/* Fallback: Wenn der Bildschirm zu schmal für die langen Wörter wird */
@media (max-width: 1200px) {
    .slideMenu {
        /* Schaltet auf festen Abstand um, wenn Platz knapp wird */
        justify-content: center; 
        gap: 20px; 
    }
    .slideMenu a {
        font-size: 0.8rem;
    }
}
/* Grundzustand des fixierten Menüs */
.slideMenu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: white; /* Hintergrund nötig, da es über Content schwebt */
    z-index: 2000;
    margin: 0;
    padding: 10px 40px; /* Etwas Platz zur Seite */
    box-shadow: 0 2px 10px rgba(0,0,0,0.1); /* Leichter Schatten für Tiefe */
    
    /* Grid-Layout von vorhin */
    display: grid;
    grid-template-columns: repeat(7, auto);
    justify-content: space-between;
    align-items: center;
    list-style: none;

    /* Start-Position: Oben außerhalb des Bildschirms */
    transform: translateY(-100%);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Wenn diese Klasse per JS hinzugefügt wird, slidet es rein */
.slideMenu.is-visible {
    transform: translateY(0);
}

/* Links im fixierten Menü */
.slideMenu a {
    text-decoration: none;
    color: var(--color-blue);
    font-size: 0.85rem;
    text-transform: uppercase;
    transition: color 0.3s;
}

.slideMenu a:hover {
    color: var(--orange);
}

/* Auf Mobile verstecken wir dieses spezielle Scroll-Menü meistens */
@media (max-width: 959px) {
    .slideMenu {
        display: none; 
    }
}

.hideMenu div#wrapper header#header{
  display: none;
}

/*********************************************
   Backlink
   ******************************************/

.backlink.content-hyperlink a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: var(--space-m);
    
    /* Farben */
    background-color: var(--orange); /* Nutzt deine Orange-Variable */
    color: white !important;
    
    /* Form & Abstände */
    padding: 12px 28px;
    border-radius: 4px;
    text-decoration: none !important;
    
    /* Schrift */
    text-transform: uppercase;
    font-size: 0.9rem;
    letter-spacing: 0.5px;
    
    /* Animation */
    transition: all 0.3s ease;
    border: 2px solid var(--orange);
    cursor: pointer;
}

/* Hover-Effekt */
.backlink.content-hyperlink a:hover {
    background-color: transparent;
    color: var(--orange) !important;
    transform: translateY(-2px); /* Kleiner Sprung nach oben */
    box-shadow: 0 4px 12px rgba(255, 123, 0, 0.2); /* Sanfter Glow */
}

/* Optional: Ein kleines Icon vor dem Text (Pfeil nach links) */
.backlink.content-hyperlink a::before {
    content: "←";
    margin-right: 8px;
    font-size: 1.1rem;
    transition: transform 0.3s ease;
}

.backlink.content-hyperlink a:hover::before {
    transform: translateX(-4px); /* Pfeil bewegt sich beim Hover nach links */
}


/****************************************
  Bild-Einblendungen
****************************************/
.image-reveal {
    opacity: 0;
    transform: translateY(30px) scale(0.95); /* Tiefer und leicht kleiner */
    will-change: transform, opacity;
}


@media (max-width: 768px) {
    .me-logo-top img {
        width: 200px !important;
        height: auto !important; /* auto sorgt dafür, dass die Proportionen (80px -> 160px) stimmen */
        max-width: 90vw; /* Sicherheitsnetz: Verhindert, dass das Logo auf sehr kleinen Handys breiter als der Bildschirm wird */
    }

    /* Falls der Container das Logo zentrieren oder einschränken soll */
    .me-logo-top figure {
        margin: 0;
        display: flex;
        justify-content: center; /* Zentriert das nun größere Logo */
    }
}

/****************************************
  OpenstreetMap
****************************************/
#karte.mod_article.block div.map-wrapper div#map-overlay p{
  color: white;
}

#karte.mod_article.block div.map-wrapper div#map-overlay button.btn-map{
font-size: var(--copy-small);
color: white;
}