@charset "UTF-8";
/* ==========================================================================
   VARIABLEN
   Zentrale Konfiguration für Abstände, Breakpoints und Farben.
   Alle hier definierten Variablen werden in allen importierten Partials verwendet.
   ========================================================================== */
/* Standard-Außenabstand */
/* Responsive Breakpoints:
   s = < 680px (Mobile), m = ab 680px (Tablet),
   l = ab 1024px (Desktop), xl = ab 1280px (Großer Desktop) */
/* Graustufen */
/* Textfarben für Spezialzwecke */
/* Aysbergfarben – Corporate-Design-Farbpalette */
/* Zusätzliche Akzentfarben */
/* Primär- und Sekundärfarben (für einfachen Austausch im gesamten Projekt) */
/* Abgerundete Ecken – Standardwert */
/* Stylesheet fuer Grund-Einstellungen, die sich nie aendern */
/* ==============================[ Resets/Presets/Fixes ]============================== */
/* Universeller Reset: Setzt Aussen-/Innenabstaende auf 0
   und aktiviert das Border-Box-Modell fuer alle Elemente,
   damit padding und border in die Breitenberechnung einfliessen */
* {
  margin: 0;
  padding: 0;
  -webkit-text-size-adjust: 100%;
  /* Border-Box-Modell -> Andere Berechnung von padding, border, margin */
  box-sizing: border-box;
}
/* HTML5-Blockelemente: Stellt sicher, dass semantische HTML5-Elemente
   als Blockelemente dargestellt werden (wichtig fuer aeltere Browser) */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, video {
  display: block;
}
/* Scrollbalken immer einblenden und Schrift auf Basis 10px festlegen
   (62.5% von 16px = 10px, erleichtert rem-Berechnungen) */
html {
  overflow-y: scroll;
  font-size: 62.5%;
}
/* Automatische Silbentrennung fuer Absaetze und Links */
p, a {
  -webkit-hyphens: auto;
  -moz-hyphens: auto;
  hyphens: auto;
}
/* Clearfix fuer Sections: Behebt Float-Probleme,
   ohne overflow:hidden verwenden zu muessen */
section:after {
  content: "";
  display: block;
  clear: both;
  height: 0;
}
/* Hilfsklasse: Unterer Abstand einer Section entfernen */
section.no-margin-bottom {
  margin-bottom: 0;
}
/* Folge-Section nach einer Section ohne unteren Abstand:
   Oberen Abstand ebenfalls entfernen */
section.no-margin-bottom + section {
  margin-top: 0;
}
/* Hilfsklasse: Oberen Abstand einer Section entfernen */
section.no-margin-top {
  margin-top: 0;
}
/* Hintergrundfarbe fuer selektierten/markierten Text */
::-moz-selection {
  background: #ddd;
  text-shadow: none;
}
::selection {
  background: #ddd;
  text-shadow: none;
}
/* Picture-Element als Block mit relativer Positionierung */
picture {
  position: relative;
  display: block;
}
/* ==========================================================================
   TYPOGRAFIE
   Schriftarten (@font-face), Basis-Textstile, Überschriften,
   Hyperlinks und Listen-Defaults.
   ========================================================================== */
/* ==========================================================================
   1. SCHRIFTEN (Font-Face)
   Web-Fonts für die Aysberg-Website.
   ========================================================================== */
/* Open Sans – Regulärer Schnitt (Fließtext) */
@font-face {
  font-family: "open-sans";
  font-style: normal;
  font-weight: 400;
  src: url("/inc/fonts/open-sans-regular.woff2") format("woff2"), url("/inc/fonts/open-sans-regular.woff") format("woff");
  font-display: swap;
}
/* Open Sans – Kursiver Schnitt */
@font-face {
  font-family: "open-sans-italic";
  font-style: normal;
  font-weight: 400;
  src: url("/inc/fonts/open-sans-italic.woff2") format("woff2"), url("/inc/fonts/open-sans-italic.woff") format("woff");
  font-display: swap;
}
/* Open Sans – Halbfetter Schnitt (für <strong> Elemente) */
@font-face {
  font-family: "open-sans-semibold";
  font-style: normal;
  font-weight: 400;
  src: url("/inc/fonts/open-sans-semibold.woff") format("woff");
  font-display: swap;
}
/* Formata – Regulärer Schnitt (für Überschriften h1, h2) */
@font-face {
  font-family: "formata";
  font-style: normal;
  font-weight: 400;
  src: url("/inc/fonts/formataReg.woff2") format("woff2"), url("/inc/fonts/formataReg.woff") format("woff");
  font-display: swap;
}
/* Formata Light – Leichter Schnitt (für Subnavigation) */
@font-face {
  font-family: "formata light";
  font-style: normal;
  font-weight: 400;
  src: url("/inc/fonts/formataLight.woff2") format("woff2"), url("/inc/fonts/formataLight.woff") format("woff");
  font-display: swap;
}
/* Amatic Bold – Handschrift-Schrift (für Unter-Überschriften h3, h1>span, h2>span) */
@font-face {
  font-family: "amatic bold";
  font-style: normal;
  font-weight: 400;
  src: url("/inc/fonts/amatic-bold.woff2") format("woff2"), url("/inc/fonts/amatic-bold.woff") format("woff");
  font-display: swap;
}
/* ==========================================================================
   2. GEMEINSAME HEADING-STILE
   Placeholder für Amatic-Handschrift-Überschriften (h1>span, h2>span, h3).
   Wird per @extend eingebunden, damit die gemeinsamen Eigenschaften
   nur einmal im kompilierten CSS erscheinen.
   ========================================================================== */
h1 > span, h2 > span, h3 {
  font-family: "amatic bold", sans-serif;
  font-weight: normal;
  text-transform: uppercase;
  white-space: normal;
  font-size: 3.3rem;
  line-height: 3.2rem;
  letter-spacing: 0.65px;
}
/* ==========================================================================
   3. BASIS-TEXTSTILE
   Body, Überschriften h1–h3, Abstände und Textausrichtung.
   ========================================================================== */
/* Basis-Textformatierung für den Body */
body {
  color: #444;
  font-size: 18px;
  line-height: 28px;
  font-family: "open-sans", "sans-serif";
  background: #fff;
}
/* Überschriften h1, h2: Formata-Schrift, kein Fettdruck, Float-Reset */
h1, h2 {
  font-family: "formata", "sans-serif";
  clear: both;
  font-weight: normal;
}
/* Hauptüberschrift h1: Größe, Zeilenhöhe, Abstand, Farbe und Großbuchstaben */
h1 {
  font-size: 4.8rem;
  line-height: 5.6rem;
  margin: 0 0 7.2rem;
  color: #0582B9;
  text-transform: uppercase;
}
/* Unterzeile innerhalb von h1 (z.B. Slogan): Amatic-Handschrift, kleiner */
h1 > span {
  color: #444;
  display: block;
  margin-top: 8px;
}
/* Zwischenüberschrift h2: Größe, Zeilenhöhe, Abstände, Farbe */
h2 {
  font-size: 4rem;
  line-height: 4.6rem;
  margin: 4.8rem 0 5.4rem;
  color: #0582B9;
}
/* Unterzeile innerhalb von h2: Gleicher Stil wie h1 > span */
h2 > span {
  color: #444;
  display: block;
  margin-top: 8px;
}
/* Unter-Überschrift h3: Amatic-Handschrift, Großbuchstaben */
h3 {
  margin: 48px 0 16px;
}
/* Responsive: h1 auf kleinen Bildschirmen verkleinern (unter 680px) */
@media screen and (max-width: 679px) {
  h1 {
    font-size: 4rem;
    line-height: 4.6rem;
  }
}
/* Standard-Abstand zwischen Inline-Elementen (Listen und Absätze) */
ul, ol, p {
  margin: 14px 0 28px;
}
/* Negativer Abstand: h3 direkt nach h1 näher heranrücken */
h1 + h3 {
  margin-top: -54px;
}
/* Negativer Abstand: h3 direkt nach h2 näher heranrücken */
h2 + h3 {
  margin-top: -30px;
}
/* Negativer Abstand: Absatz direkt nach h2 näher heranrücken */
h2 + p {
  margin-top: -24px;
}
/* Textausrichtung: Überschriften und Text links, zentriert oder rechts */
.hl-align-left .section-headlines, .text-align-left {
  text-align: left;
}
.hl-align-center .section-headlines, .text-align-center {
  text-align: center;
}
.hl-align-right .section-headlines, .text-align-right {
  text-align: right;
}
/* Rubrik-Einstiegsseite: Erste Section nach unten verschieben */
#rubrikeinstieg .first-section {
  margin-top: 64px;
}
#rubrikeinstieg .first-section h1 {
  margin-top: 0;
}
/* Startseite: Erste Section ohne oberen Abstand,
   h1 als Handschrift-Überschrift zentriert */
#home .first-section {
  margin-top: 0;
}
#home .first-section h1 {
  font-family: "amatic bold", sans-serif;
  font-weight: normal;
  text-transform: uppercase;
  white-space: normal;
  text-align: center;
  margin-bottom: 30px;
}
/* Fettschrift: Open Sans Semibold für <strong>-Elemente */
strong {
  font-family: "open-sans-semibold", "sans-serif";
}
/* ==========================================================================
   4. HYPERLINKS
   Standard-Links, Hover-, Fokus- und Aktiv-Zustände.
   ========================================================================== */
/* Standard-Link: Farbe, keine Unterstreichung, sanfter Übergang */
a {
  color: #0582B9;
  text-decoration: none;
  transition: all 0.2s ease-in-out;
}
/* Besuchte Links: Keine abweichende Darstellung */
/* Hover- und Fokus-Zustand: Orange hervorheben */
a:hover, a:focus {
  color: #E27E32;
}
/* Aktiver Zustand (Klick): Ebenfalls orange */
a:active {
  color: #E27E32;
}
/* Verlinkte Bilder: Kein Rahmen, als Block dargestellt */
a img {
  border: none;
  display: block;
}
/* Bilder: Kein Rahmen */
img {
  border: none;
}
/* ==========================================================================
   5. LISTEN
   Standard-Abstände und Einrückungen für ul und ol.
   ========================================================================== */
/* Ungeordnete Liste: Abstände und linker Einzug */
ul {
  margin: 16px 0 32px;
  padding: 0 0 0 32px;
}
/* Liste 2. Ebene: Eingerückter Einzug */
ul > li ul {
  padding: 0 24px;
  margin: 0.2em 0 0.5em;
}
/* Nummerierte Liste: Abstände und linker Einzug */
ol {
  margin: 16px 0 32px;
  padding: 0 0 0 32px;
}
/* Nummerierte Liste Elemente: Linker Innenabstand */
ol > li {
  margin: 0;
  padding-left: 8px;
}
/* Nummerierte Liste 2. Ebene: Eingerückter Einzug */
ol > li ol {
  padding: 0 0 0 24px;
  margin: 0.2em 0 0.5em;
}
/* ==========================================================================
   6. SONSTIGES
   Horizontale Linien, Abkürzungen.
   ========================================================================== */
/* Horizontale Linien: Standardmäßig ausgeblendet */
hr {
  display: none;
}
/* Abkürzungen: Gepunktete Unterstreichung mit Hilfe-Cursor */
abbr {
  border-bottom: 1px dotted #ccc;
  cursor: help;
}
/* Reset der Browser-Standard-Dekoration für title-Attribute */
abbr[title], acronym[title] {
  text-decoration: none;
}
/* ==========================================================================
   1. DEBUG-HILFE
   Zeigt die aktuelle Viewport-Größe (s, m, l, xl) als Label rechts oben
   im Browser an. Standardmäßig ausgeblendet (display: none).
   Zum Aktivieren: display auf "block" setzen.
   ========================================================================== */
body:after {
  position: fixed;
  top: 0;
  right: 0;
  background: grey;
  padding: 5px 10px;
  opacity: 1;
  color: #fff;
  font-size: 14px;
  z-index: 99999999999;
  display: none !important;
}
/* ==========================================================================
   2. SICHTBARKEITS-HILFSKLASSEN
   Steuern, welche Elemente in welcher Viewport-Größe sichtbar sind.

   Verwendung im HTML:
   - .only-s   → Element nur im Small-Viewport sichtbar (< $break-m)
   - .only-m   → Element nur im Medium-Viewport sichtbar ($break-m bis $break-l)
   - .only-l   → Element nur im Large-Viewport sichtbar ($break-l bis $break-xl)
   - .only-xl  → Element nur im XL-Viewport sichtbar (>= $break-xl)
   - .only-xxl → Element nur im XXL-Viewport sichtbar (>= 1920px),
                  wirkt nur innerhalb von .leistungs-uebersicht-wrap
   - .no-s     → Element im Small-Viewport ausgeblendet
   - .no-m     → Element im Medium-Viewport ausgeblendet
   - .no-l     → Element im Large-Viewport ausgeblendet
   - .no-xl    → Element im XL-Viewport ausgeblendet
   - .no       → Element immer ausgeblendet
   ========================================================================== */
/* Standardmäßig sind alle "only"-Klassen ausgeblendet.
   Sie werden erst im jeweiligen Media-Query eingeblendet. */
.only-s {
  display: none !important;
}
.only-m {
  display: none !important;
}
.only-l {
  display: none !important;
}
.only-xl {
  display: none !important;
}
.only-xxl {
  display: none !important;
}
.no {
  display: none !important;
}
/* Small: Viewport schmaler als $break-m */
@media (max-width: 679px) {
  .only-s {
    display: block !important;
  }
  .no-s {
    display: none !important;
  }
}
/* Medium: Viewport zwischen $break-m und $break-l */
@media (min-width: 680px) and (max-width: 1023px) {
  .only-m {
    display: block !important;
  }
  .no-m {
    display: none !important;
  }
}
/* Large: Viewport zwischen $break-l und $break-xl */
@media (min-width: 1024px) and (max-width: 1279px) {
  .only-l {
    display: block !important;
  }
  .no-l {
    display: none !important;
  }
}
/* XL: Viewport ab $break-xl */
@media (min-width: 1280px) {
  .only-xl {
    display: block !important;
  }
  .no-xl {
    display: none !important;
  }
}
/* XXL: Ab 1920px, nur innerhalb .leistungs-uebersicht-wrap.
   Blendet dort .only-xl aus und .only-xxl ein. */
@media (min-width: 1920px) {
  .leistungs-uebersicht-wrap .only-xxl {
    display: block !important;
  }
  .leistungs-uebersicht-wrap .no-xxl {
    display: none !important;
  }
  .leistungs-uebersicht-wrap .only-xl {
    display: none !important;
  }
}
/* ==========================================================================
   3. SEKTIONEN – Grundlayout
   <section>-Elemente bilden die horizontalen Inhaltsbereiche der Seite.
   Jede Section ist volle Breite und zentriert.
   Direkte <div>-Kinder brechen lange Wörter um (word-wrap).
   ========================================================================== */
section {
  width: 100%;
  margin: 0 auto;
  position: relative;
}
section > div {
  word-wrap: break-word;
}
/* ==========================================================================
   4. SEKTIONEN – Farbige Stripes
   Farbige Hintergrundbereiche mit dekorativen Wasserfarb-Kanten oben und unten.

   Verwendung im HTML:
   - <section class="sand-stripe">      → Sandfarbener Hintergrund
   - <section class="blue-stripe">      → Blauer Hintergrund, weißer Text
   - <section class="turquoise-stripe"> → Türkiser Hintergrund, weißer Text

   Die Wasserfarb-Kanten werden über ::before (oben) und ::after (unten)
   als Pseudo-Elemente eingefügt. Die URLs /inc/img/overlay-wasserfarbe-bottom.png und /inc/img/overlay-wasserfarbe-top.png sind
   webEdition-Platzhalter, die beim Rendern durch echte Bild-URLs ersetzt werden.
   ========================================================================== */
section.sand-stripe {
  background: #DED8D0;
}
/* Blue- und Turquoise-Stripe: Identische Struktur, nur Hintergrundfarbe unterschiedlich */
section.blue-stripe {
  background: #01ACE8;
  color: #fff;
}
section.blue-stripe h2, section.blue-stripe h3 {
  color: #fff;
}
section.blue-stripe .button {
  border: 2px solid #fff;
}
section.blue-stripe .button:before {
  top: -1px;
  width: 65px;
  height: calc(100% + 2px);
}
section.turquoise-stripe {
  background: #0ab4c5;
  color: #fff;
}
section.turquoise-stripe h2, section.turquoise-stripe h3 {
  color: #fff;
}
section.turquoise-stripe .button {
  border: 2px solid #fff;
}
section.turquoise-stripe .button:before {
  top: -1px;
  width: 65px;
  height: calc(100% + 2px);
}
/* Gemeinsame Eigenschaften aller farbigen Stripes:
   Vertikales Padding und dekorative Wellen oben/unten. */
section.sand-stripe, section.blue-stripe, section.turquoise-stripe {
  padding: 160px 0;
}
section.sand-stripe:after, section.blue-stripe:after, section.turquoise-stripe:after {
  content: "";
  background-image: url("/inc/img/overlay-wasserfarbe-bottom.png");
  background-repeat: no-repeat;
  position: absolute;
  bottom: 0;
  display: block;
  z-index: 1;
  width: 100%;
  height: 232px;
  pointer-events: none;
}
section.sand-stripe:before, section.blue-stripe:before, section.turquoise-stripe:before {
  content: "";
  background-image: url("/inc/img/overlay-wasserfarbe-top.png");
  background-repeat: no-repeat;
  position: absolute;
  top: 0;
  display: block;
  z-index: 1;
  width: 100%;
  height: 232px;
  pointer-events: none;
}
/* ==========================================================================
   5. GRID-SYSTEM – Basis
   Ein 12-Spalten-Grid auf Basis von CSS Grid.
   Der Spaltenabstand (gap) beträgt einheitlich 48px.

   Verwendung im HTML:
   - Gleichmäßige Spalten:  <div class="grid" cols="3"> → 3 gleich breite Spalten
   - Ungleiche Aufteilung:  <div class="grid" cols="4-8"> → 4/12 + 8/12 Breite

   Verfügbare cols-Werte:
   - Gleichmäßig: "1" bis "12" (jeweils gleich breite Spalten)
   - Aufgeteilt:  "4-8", "8-4", "2-10", "3-9", "9-3"
     Die Zahlen entsprechen der Spaltenbreite im 12er-Raster.
   ========================================================================== */
.grid {
  display: grid;
  grid-gap: 48px;
}
/* Gleichmäßige Spalten: Erzeugt für cols="1" bis cols="12"
   jeweils ein Grid mit der entsprechenden Anzahl gleich breiter Spalten. */
.grid[cols="1"] {
  grid-template-columns: repeat(1, 1fr);
}
.grid[cols="2"] {
  grid-template-columns: repeat(2, 1fr);
}
.grid[cols="3"] {
  grid-template-columns: repeat(3, 1fr);
}
.grid[cols="4"] {
  grid-template-columns: repeat(4, 1fr);
}
.grid[cols="5"] {
  grid-template-columns: repeat(5, 1fr);
}
.grid[cols="6"] {
  grid-template-columns: repeat(6, 1fr);
}
.grid[cols="7"] {
  grid-template-columns: repeat(7, 1fr);
}
.grid[cols="8"] {
  grid-template-columns: repeat(8, 1fr);
}
.grid[cols="9"] {
  grid-template-columns: repeat(9, 1fr);
}
.grid[cols="10"] {
  grid-template-columns: repeat(10, 1fr);
}
.grid[cols="11"] {
  grid-template-columns: repeat(11, 1fr);
}
.grid[cols="12"] {
  grid-template-columns: repeat(12, 1fr);
}
/* ==========================================================================
   6. GRID-SYSTEM – Ungleiche Spaltenaufteilung
   Für Layouts mit zwei unterschiedlich breiten Spalten.
   Basiert auf einem 12-Spalten-Raster mit benannten Grid-Areas.

   Jede Variante definiert:
   - grid-template-areas: Welche Spalte wie viel Platz einnimmt
   - Das erste Kind-<div> erhält die erste Area
   - Das letzte Kind-<div> erhält die zweite Area

   Beispiel: cols="4-8" → Linke Spalte 1/3, rechte Spalte 2/3 der Breite.
   ========================================================================== */
/* Alle Grids mit Bindestrich im cols-Wert nutzen das 12-Spalten-Raster */
.grid[cols*="-"] {
  grid-template-columns: repeat(12, 1fr);
}
/* --- 4-8: Linke Spalte schmal (4/12), rechte Spalte breit (8/12) --- */
.grid[cols="4-8"] {
  grid-template-areas: "div4 div4 div4 div4 div8 div8 div8 div8 div8 div8 div8 div8";
}
.grid[cols="4-8"] > div:first-child {
  grid-area: div4;
}
.grid[cols="4-8"] > div:last-child {
  grid-area: div8;
}
/* --- 8-4: Linke Spalte breit (8/12), rechte Spalte schmal (4/12) --- */
.grid[cols="8-4"] {
  grid-template-areas: "div8 div8 div8 div8 div8 div8 div8 div8 div4 div4 div4 div4";
}
.grid[cols="8-4"] > div:first-child {
  grid-area: div8;
}
.grid[cols="8-4"] > div:last-child {
  grid-area: div4;
}
/* --- 2-10: Linke Spalte sehr schmal (2/12), rechte Spalte sehr breit (10/12) --- */
.grid[cols="2-10"] {
  grid-template-areas: "div2 div2 div10 div10 div10 div10 div10 div10 div10 div10 div10 div10";
}
.grid[cols="2-10"] > div:first-child {
  grid-area: div2;
}
.grid[cols="2-10"] > div:last-child {
  grid-area: div10;
}
/* --- 3-9: Linke Spalte schmal (3/12), rechte Spalte breit (9/12) --- */
.grid[cols="3-9"] {
  grid-template-areas: "div3 div3 div3 div9 div9 div9 div9 div9 div9 div9 div9 div9";
}
.grid[cols="3-9"] > div:first-child {
  grid-area: div3;
}
.grid[cols="3-9"] > div:last-child {
  grid-area: div9;
}
/* --- 9-3: Linke Spalte breit (9/12), rechte Spalte schmal (3/12) --- */
.grid[cols="9-3"] {
  grid-template-areas: "div9 div9 div9 div9 div9 div9 div9 div9 div9 div3 div3 div3";
}
.grid[cols="9-3"] > div:first-child {
  grid-area: div9;
}
.grid[cols="9-3"] > div:last-child {
  grid-area: div3;
}
/* ==========================================================================
   7. FOOTER-GRID
   Sonderfall: Das 3-Spalten-Grid im Footer weist den drei Bereichen
   feste Grid-Areas zu, damit die Reihenfolge im HTML unabhängig
   von der visuellen Darstellung sein kann.

   Erwartete HTML-Struktur:
   <footer>
     <div class="grid" cols="3">
       <div class="footer-address">…</div>
       <div class="footer-event">…</div>
       <div class="footer-contact">…</div>
     </div>
   </footer>
   ========================================================================== */
footer .grid[cols="3"] {
  grid-template-areas: "div1 div2 div3";
}
footer .grid[cols="3"] .footer-address {
  grid-area: div1;
}
footer .grid[cols="3"] .footer-event {
  grid-area: div2;
}
footer .grid[cols="3"] .footer-contact {
  grid-area: div3;
}
/* ==========================================================================
   8. RESPONSIVE ANPASSUNGEN – Tablet (< $break-l)
   Ab hier werden mehrspaltige Grids reduziert:
   - 3 Spalten → 1 Spalte (untereinander)
   - 4 Spalten → 2 Spalten (2×2 Raster)
   - Ungleiche Aufteilungen werden gleichmäßiger (z.B. 4-8 → 6-6)
   - Footer: Adresse und Kontakt nebeneinander, Event darunter
   ========================================================================== */
@media (max-width: 1023px) {
  /* Ungleiche Spalten werden auf Tablet gleichmäßiger aufgeteilt */
  /* Footer auf Tablet: Adresse + Kontakt nebeneinander, Event volle Breite darunter */
  .grid[cols="3"] {
    grid-template-columns: 1fr;
  }
  .grid[cols="4"] {
    grid-template-columns: repeat(2, 1fr);
  }
  .grid[cols="4-8"] {
    grid-template-areas: "div4 div4 div4 div4 div4 div4 div8 div8 div8 div8 div8 div8";
  }
  .grid[cols="8-4"] {
    grid-template-areas: "div8 div8 div8 div8 div8 div8 div4 div4 div4 div4 div4 div4";
  }
  .grid[cols="3-9"] {
    grid-template-areas: "div3 div3 div3 div3 div9 div9 div9 div9 div9 div9 div9 div9";
  }
  .grid[cols="9-3"] {
    grid-template-areas: "div9 div9 div9 div9 div9 div9 div9 div9 div3 div3 div3 div3";
  }
  .grid[cols="2-10"] {
    grid-template-areas: "div2 div2 div2 div2 div10 div10 div10 div10 div10 div10 div10 div10";
  }
  footer .grid[cols="3"] {
    grid-template-areas: "div1 div1 div1 div1 div1 div1 div3 div3 div3 div3 div3 div3" "div2 div2 div2 div2 div2 div2 div2 div2 div2 div2 div2 div2";
    grid-template-columns: repeat(12, 1fr);
    grid-gap: 12px;
  }
}
/* ==========================================================================
   9. RESPONSIVE ANPASSUNGEN – Mobil (< $break-m)
   Alle Mehrspalten-Grids werden einspaltig (untereinander).
   Grids mit vielen Spalten (6, 8, 9, 10, 12) werden auf eine
   sinnvolle Zwischenstufe reduziert.
   Alle ungleichen Aufteilungen werden komplett einspaltig gestapelt.
   ========================================================================== */
@media (max-width: 679px) {
  /* Grids mit 2–4 Spalten: alles untereinander */
  /* Grids mit vielen Spalten: auf sinnvolle Zwischenstufen reduziert */
  /* Ungleiche Spalten: Alle werden einspaltig gestapelt.
	   Die Reihenfolge der Areas bestimmt die Stapelreihenfolge. */
  /* Footer auf Mobil: Adresse, Kontakt, Event – alle untereinander */
  .grid[cols="2"], .grid[cols="3"], .grid[cols="4"], footer .grid[cols="3"] {
    grid-template-columns: 1fr;
  }
  .grid[cols="6"] {
    grid-template-columns: repeat(3, 1fr);
  }
  .grid[cols="8"] {
    grid-template-columns: repeat(4, 1fr);
  }
  .grid[cols="9"] {
    grid-template-columns: repeat(3, 1fr);
  }
  .grid[cols="10"] {
    grid-template-columns: repeat(2, 1fr);
  }
  .grid[cols="12"] {
    grid-template-columns: repeat(3, 1fr);
  }
  .grid[cols="4-8"] {
    grid-template-areas: "div4" "div8";
    grid-template-columns: 1fr;
  }
  .grid[cols="8-4"] {
    grid-template-areas: "div8" "div4";
    grid-template-columns: 1fr;
  }
  .grid[cols="3-9"] {
    grid-template-areas: "div3" "div9";
    grid-template-columns: 1fr;
  }
  .grid[cols="9-3"] {
    grid-template-areas: "div9" "div3";
    grid-template-columns: 1fr;
  }
  .grid[cols="2-10"] {
    grid-template-areas: "div2" "div10";
    grid-template-columns: 1fr;
  }
  footer .grid[cols="3"] {
    grid-template-areas: "div1" "div3" "div2";
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   10. RESPONSIVE ANPASSUNGEN – Sehr kleine Viewports (< 500px)
   Alle Grids mit gleichmäßigen Spalten werden auf eine Spalte reduziert.
   Das betrifft insbesondere die höheren Spaltenzahlen (6, 8, 9, 10, 12),
   die im mobilen Breakpoint oben noch mehrspaltig dargestellt werden.
   ========================================================================== */
@media (max-width: 500px) {
  .grid[cols="2"], .grid[cols="3"], .grid[cols="4"], .grid[cols="6"], .grid[cols="8"], .grid[cols="9"], .grid[cols="10"], .grid[cols="12"] {
    grid-template-columns: 1fr;
  }
}
/* ==========================================================================
   HINWEISMELDUNGEN / ALERTS
   Styles für Benachrichtigungen, Fehler- und Erfolgsmeldungen.

   Verwendung im HTML:
   - <div class="alert">           → Neutrale Meldung (grau)
   - <div class="alert error">     → Fehlermeldung (rot)
   - <div class="alert warning">   → Warnmeldung (gelb)
   - <div class="alert success">   → Erfolgsmeldung (grün)
   - <ul class="alerts"><li class="alert">…</li></ul> → Alert-Liste
   ========================================================================== */
/* Standard-Alert: Grauer Rahmen auf hellem Hintergrund */
.alert {
  padding: 12px;
  margin: 0;
  margin-top: 1em !important;
  margin-bottom: 1em !important;
  border: solid 1px #C5C5C5;
  border-radius: 4px;
  background-color: #F1F1F1;
  color: #666;
  line-height: 26px;
}
/* Alert-Liste: Kein Padding auf der umgebenden <ul> */
ul.alerts {
  padding: 0;
}
/* Alert als Listenelement: Kein Aufzählungszeichen */
li.alert {
  list-style-type: none;
  margin: 5px 0;
  background: none;
}
/* Fehlermeldung: Roter Rahmen und roter Text */
.alert.error {
  border-color: #ebccd1;
  background-color: #f2dede;
  color: #a94442;
}
/* Warnmeldung: Gelber Rahmen und brauner Text */
.alert.warning {
  background-color: #fcf8e3;
  border-color: #faebcc;
  color: #8a6d3b;
}
/* Erfolgsmeldung: Grüner Hintergrund */
.alert.success {
  background-color: #00b97f;
  border-color: #cefbe3;
  color: #3c763d;
}
/* ==========================================================================
   NOSCRIPT-HINWEIS
   Fixierter Hinweis am unteren Bildschirmrand, wenn JavaScript deaktiviert ist.
   Wird über <noscript> im HTML eingebunden.
   ========================================================================== */
#noscriptBox {
  position: fixed;
  bottom: 0;
  left: 0;
  padding: 12px;
  width: 100%;
  height: 144px;
  line-height: 24px;
  text-align: center;
  color: #fff;
  background-color: #0582B9;
  z-index: 999999999999;
}
#noscriptBoxContainer {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 75%;
}
/* Höhe des Noscript-Balkens wird bei breiteren Viewports reduziert */
@media (min-width: 500px) {
  #noscriptBox {
    height: 104px;
  }
}
@media (min-width: 800px) {
  #noscriptBox {
    height: 84px;
  }
}
@media (min-width: 1024px) {
  #noscriptBox {
    height: 64px;
  }
}
/* ==========================================================================
   TABELLEN
   Grundlegende Tabellen-Styles für die gesamte Website.
   Es gibt zwei Varianten:
   - Standard-Tabelle: Mit Rahmen und hellem Header
   - Moderne Tabelle (<table class="modern">): Nur horizontale Linien
   ========================================================================== */
/* --- Standard-Tabelle --- */
table {
  border: 1px solid #E5E5E5;
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
  border-radius: 4px;
}
tr {
  border: 1px solid #E5E5E5;
  border-width: 4px 0;
}
th, td {
  padding: 12px 18px;
  vertical-align: top;
  border: 1px solid #E5E5E5;
}
/* Tabellenkopf: Linksbündig mit hellem Hintergrund */
th {
  text-align: left;
  background: #E5E5E5;
  min-width: 130px;
}
/* --- Moderne Tabelle (class="modern") ---
   Schlichtere Variante ohne äußeren Rahmen, nur horizontale Trennlinien. */
table.modern {
  border: none;
  border-collapse: collapse;
}
.modern tr {
  border: 2px solid #E5E5E5;
  border-width: 2px 0;
}
.modern th, .modern td {
  vertical-align: top;
  border-width: 0;
}
/* Sehr kleine Viewports: Tabellen leicht verkleinern */
@media (max-width: 380px) {
  table {
    zoom: 0.85;
  }
}
/* --- Tabellen innerhalb farbiger Container ---
   In Infoboxen und farbigen Hintergründen werden Rahmen entfernt
   und durch weiße Trennlinien ersetzt. */
.hgBlau td, .hgBlau th, .hgTuerkis td, .hgTuerkis th, .infobox td, .infobox th {
  padding: 10px 0;
  border: none;
  background: transparent;
  border-bottom: 1px solid #fff;
}
.hgBlau table, .hgBlau tr, .hgTuerkis table, .hgTuerkis tr, .infobox table, .infobox tr {
  border: none;
}
/* ==========================================================================
   FORMULARE
   Styles für alle Formularelemente: Eingabefelder, Labels, Buttons,
   Select-Dropdowns, Radio/Checkboxen, Fehlermeldungen und Tooltips.
   ========================================================================== */
/* ==========================================================================
   1. GRUNDLEGENDE FORMULARELEMENTE
   Layout und Abstände für Formularcontainer und Legends.
   ========================================================================== */
.form-content {
  margin: 12px 0;
}
/* Button im Formular: Pfeil-Icon etwas nach rechts versetzt */
form .button:before {
  right: -10px;
}
/* Legende: Beschriftung über einer Fieldset-Gruppe */
legend {
  display: block;
  font-size: 18px;
  line-height: 24px;
  margin-bottom: 0.5em;
}
fieldset:not(.field) > legend {
  font-family: "open sans bold";
}
/* ==========================================================================
   2. LABELS UND EINGABEFELDER
   Styles für Labels, Text-Inputs, Textareas und Select-Dropdowns.
   ========================================================================== */
label {
  display: block;
  font-size: 18px;
  margin-bottom: 0;
  color: #444;
  cursor: pointer;
}
/* Alle Eingabefelder: Volle Breite */
input, textarea, select, .input-radio-content, .input-checkbox-content {
  width: 100%;
  margin: 0;
}
/* Text-Inputs und Textareas: Einheitliches Aussehen */
input, textarea {
  display: block;
  font-size: 16px;
  line-height: 22px;
  background-color: #fff;
  border: 1px solid #d3d3d3;
  padding: 12px 18px;
  resize: none;
}
/* Fehlerhafte Felder: Roter Rahmen */
.error input, .error textarea {
  border: 1px solid #b40000;
}
fieldset {
  border: none;
  clear: both;
  padding: 0;
  margin: 0;
}
textarea {
  width: 100%;
  min-height: 120px;
  font-family: "Open Sans", sans-serif;
}
/* Select-Dropdown: Eigener Pfeil statt Browser-Standard */
select {
  color: #444;
  width: 100%;
  font-size: 16px;
  line-height: 22px;
  background-color: #fff;
  background-image: url("/images/vogelhaus.jpg");
  background-position: right 12px center;
  background-repeat: no-repeat;
  background-size: 18px;
  border: 1px solid #c4c4c4;
  padding: 12px 18px;
  margin: 0;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
/* Fokus-Zustand: Blauer Rahmen für alle Eingabefelder */
input:focus, textarea:focus, select:focus {
  outline: none;
  border: 1px solid #00baff;
}
/* Labels mit eingebettetem Input (z.B. Checkbox/Radio innerhalb des Labels) */
label:has(input) {
  display: grid;
  grid-template-columns: 1em auto;
  gap: 0.5em;
  align-items: center;
  accent-color: #019fd7;
  font-family: "open sans";
}
/* ==========================================================================
   3. RADIO-BUTTONS UND CHECKBOXEN
   ========================================================================== */
input[type="radio"]:checked, input[type="radio"]:not(:checked), input[type="checkbox"]:checked, input[type="checkbox"]:not(:checked) {
  margin: 0;
  height: 18px;
}
input[type="radio"]:checked + label, input[type="radio"]:not(:checked) + label, input[type="checkbox"]:checked + label, input[type="checkbox"]:not(:checked) + label {
  position: relative;
  font-size: 16px;
  line-height: 24px;
  padding-left: 30px;
  cursor: pointer;
}
/* ==========================================================================
   4. SELECT-OPTIONEN UND SUBMIT-BUTTON
   ========================================================================== */
option {
  padding: 0.3em 1em 0.3em 1em;
  border-top: 1px solid #444;
  background: #fff;
}
/* Abschicken-Button: Blauer Hintergrund */
input[type="submit"] {
  color: #fff;
  background-color: #0582B9;
  border: none;
  padding: 12px 24px;
  cursor: pointer;
  width: auto;
}
button {
  font-size: 16px;
  line-height: 22px;
  border: none;
  outline: none;
  cursor: pointer;
  width: auto;
}
input[type="submit"]:hover {
  background-color: var(--color-light-blue);
}
/* Einzelnes Formularfeld mit Abstand nach unten */
.field {
  margin-bottom: 16px;
}
/* ==========================================================================
   5. FEHLERMELDUNGEN
   Rote Rahmen und Textfarbe für ungültige Felder.
   ========================================================================== */
.fieldError {
  border: 1px solid #a94442;
}
.labelError {
  color: #a94442;
}
/* ==========================================================================
   6. FORMULAR-FEHLERMELDUNGEN (Alert-Variante)
   Überschreibt die Standard-Alerts für den Formularbereich.
   ========================================================================== */
.alert.error {
  padding: 12px 24px;
  background: #b40000;
  color: white;
  border: none;
  border-radius: 0;
}
/* Fehlerliste direkt unter dem Error-Alert */
.alert.error + ul {
  list-style: none;
  border: 1px solid #b40000;
  padding: 12px 24px;
  margin-top: -18px;
  background: none;
}
.alert.error + ul > li {
  background: none;
}
.alert.error + ul > li > a {
  background: none;
  padding: 0;
}
.alert.success {
  padding: 12px 24px;
  background: #00b97f;
  color: white;
}
/* ==========================================================================
   7. DATEI-UPLOAD
   Styling für den nativen Datei-Upload-Button.
   ========================================================================== */
input[type="file"]::file-selector-button {
  display: inline-block;
  color: #fff;
  text-decoration: none;
  text-align: center;
  background: #d3d3d3;
  border-radius: 42px;
  padding: 8px 16px;
  margin-right: 12px;
  transition: all 0.3s ease-in-out;
  border: none;
}
input[type="file"]::file-selector-button:hover {
  background: #e0e0e0;
}
/* ==========================================================================
   8. LADE-ANIMATION
   Wird angezeigt, wenn ein Formular abgeschickt wurde und die Antwort
   noch lädt. Das Formular wird mit einem halbtransparenten Overlay verdeckt,
   darüber erscheint eine Ripple-Animation.
   ========================================================================== */
.kontaktformular {
  position: relative;
}
.kontaktformular button {
  margin: 0 0 40px;
}
form.loading {
  position: relative;
}
form.loading:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #ffffffbb;
}
.lds-ripple {
  display: none;
  position: relative;
  width: 80px;
  height: 80px;
}
form.loading + .loading-icon {
  display: inline-block;
  position: absolute;
  top: calc(50% - 40px);
  left: calc(50% - 40px);
}
.lds-ripple div {
  position: absolute;
  border: 4px solid #0582B9;
  opacity: 1;
  border-radius: 50%;
  animation: lds-ripple 2s cubic-bezier(0, 0.2, 0.8, 1) infinite;
}
.lds-ripple div:nth-child(2) {
  animation-delay: -0.75s;
}
@keyframes lds-ripple {
  0% {
    top: 36px;
    left: 36px;
    width: 0;
    height: 0;
    opacity: 0;
  }
  4.9% {
    top: 36px;
    left: 36px;
    width: 0;
    height: 0;
    opacity: 0;
  }
  5% {
    top: 36px;
    left: 36px;
    width: 0;
    height: 0;
    opacity: 1;
  }
  100% {
    top: 0px;
    left: 0px;
    width: 72px;
    height: 72px;
    opacity: 0;
  }
}
/* ==========================================================================
   9. TOOLTIP
   Info-Icon neben Formularfeldern. Bei Klick/Hover erscheint eine
   Sprechblase mit Hilfetext. Positionierung über JavaScript.
   ========================================================================== */
.icon-tooltip {
  display: inline-block;
  height: 18px;
  width: 18px;
  top: 3px;
  margin-left: 8px;
  position: relative;
  cursor: pointer;
}
.icon-tooltip abbr {
  display: inline-block;
  width: 100%;
  height: 100%;
  border-bottom: none;
}
.icon-tooltip path {
  fill: #0582B9;
}
/* Tooltip-Box: Dunkler Hintergrund mit Dreieck-Pfeil */
#tooltip-box {
  position: absolute;
  font-size: 0.85em;
  line-height: 20px;
  color: #fff;
  background: #0582B9;
  padding: 12px;
  transition: all 0.3s ease-in-out;
  z-index: 100;
}
/* Dreieck-Pfeil unter der Tooltip-Box */
#tooltip-box:after {
  width: 0;
  height: 0;
  content: "";
  position: absolute;
  left: 50%;
  bottom: -10px;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 10px solid #0582B9;
  margin-left: -10px;
}
/* Tooltip oben: Pfeil zeigt nach unten statt nach oben */
#tooltip-box.top:after {
  top: -20px;
  bottom: auto;
  border-top-color: transparent;
  border-bottom: 10px solid #0582B9;
  transition: all 0.3s ease-in-out;
}
#tooltip-box.left:after {
  left: 12px;
  margin: 0;
}
#tooltip-box.right:after {
  right: 12px;
  left: auto;
  margin: 0;
}
/* ==========================================================================
   10. HILFETEXT
   Kleiner Hinweistext unter Formularfeldern.
   ========================================================================== */
.help {
  font-size: 0.8em;
  color: #d3d3d3;
}
.kontaktformular tr th {
  text-align: right;
}
/* ==========================================================================
   11. RESPONSIVE ANPASSUNGEN
   Ab Tablet ($break-m): Formularfelder nebeneinander (2-spaltig).
   ========================================================================== */
@media screen and (min-width: 680px) {
  .fieldset-one .field {
    display: inline-block;
    vertical-align: top;
    width: calc(50% - 12px);
  }
  .field-left-padding {
    padding-right: 12px;
  }
  .field-right-padding {
    padding-left: 12px;
  }
}
@media screen and (min-width: 1024px) {
  .field-left-padding {
    padding-right: 16px;
  }
  .field-right-padding {
    padding-left: 20px;
  }
}
/* ==========================================================================
   AUSKOMMENTIERTER REFERENZ-CODE
   Ältere Formular-Styles als Referenz aufbewahrt.
   ========================================================================== */
/*
.form-content {
	margin: 12px 0;
}

legend {
	display: block;
	font-size: 18px;
	line-height: 24px;
	padding: 12px 0 0;
}

fieldset > legend {
	font-family: open sans semibold;
}

label {
	display: inline-block;
	font-size: 18px;
	margin-bottom: .5em;
	color: $coal;
	cursor: pointer;
}

input,
textarea,
select,
.input-radio-content,
.input-checkbox-content {
	width: 100%;
	margin: 10px 0;
}

input,
textarea {
	display: block;
	font-size: 16px;
	line-height: 22px;
	background-color: $white;
	border: 1px solid #c4c4c4;
	padding: 12px 18px;
	margin: 0 0 24px;
	resize: none;
}

fieldset {
	border: none;
	clear: both;
	padding: 0;
	margin: 0;
}

textarea {
	width: 100%;
	min-height: 120px;
}

select {
	color: $coal;
	width: 100%;
	font-size: 16px;
	line-height: 22px;
	background-color: $white;
	background-image: url('/inc/img/accordion/arrow-down.svg');
	background-position: right 12px center;
	background-repeat: no-repeat;
	background-size: 18px;
	border: 1px solid #c4c4c4;
	padding: 12px 18px;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
}

input:focus, textarea:focus, select:focus {
	outline: none;
	border: 1px solid #00baff;
}
*/
/* Radio/Checkboxen */
/*
input[type="radio"]:checked,
input[type="radio"]:not(:checked),
input[type="checkbox"]:checked,
input[type="checkbox"]:not(:checked) {
	position: absolute;
	left: -9999px;
}

input[type="radio"]:checked + label,
input[type="radio"]:not(:checked) + label,
input[type="checkbox"]:checked + label,
input[type="checkbox"]:not(:checked) + label {
	display: block;
	position: relative;
	font-size: 16px;
	line-height: 24px;
	padding-left: 30px;
	cursor: pointer;
}

input[type="radio"]:checked + label:before,
input[type="radio"]:not(:checked) + label:before,
input[type="checkbox"]:checked + label:before,
input[type="checkbox"]:not(:checked) + label:before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 24px;
	height: 24px;
	border-radius: 100%;
	border: 1px solid #c4c4c4;
	background: $white;
}

input[type="radio"]:checked + label:after,
input[type="radio"]:not(:checked) + label:after,
input[type="checkbox"]:checked + label:after,
input[type="checkbox"]:not(:checked) + label:after {
	content: '';
	width: 12px;
	height: 12px;
	position: absolute;
	top: 6px;
	left: 6px;
	background: #00baff;
	border-radius: 100%;
	transition: all 0.2s ease-in-out;
}
*/
/* Checkbox */
/*
input[type="checkbox"]:checked + label:before,
input[type="checkbox"]:not(:checked) + label:before {
	border-radius: 6px;
}

input[type="checkbox"]:checked + label:after,
input[type="checkbox"]:not(:checked) + label:after {
	border-radius: 0;
	background: url(/inc/img/icons/input-check.svg) center no-repeat;
}

input[type="radio"]:not(:checked) + label:after,
input[type="checkbox"]:not(:checked) + label:after {
	opacity: 0;
	transform: scale(0);
	-webkit-transform: scale(0);
}

input[type="radio"]:checked + label:after,
input[type="checkbox"]:checked + label:after {
	opacity: 1;
	transform: scale(1);
	-webkit-transform: scale(1);
}

option {
	padding: 0.3em 1em 0.3em 1em;
	border-top: 1px solid $coal;
	background: $white;
}

input[type="submit"] {
	color: $white;
	background-color: $blue;
	border: none;
	padding: 12px 24px;
	cursor: pointer;
	width: auto;
}

button {
	font-size: inherit;
	line-height: inherit;
	border: none;
	outline: none;
	cursor: pointer;
	width: auto;
}

input[type="submit"]:hover {
	background-color: $light-blue;
}

.fieldError {
	border: 1px solid #a94442;
}

.labelError {
	color: #a94442;
}

.legend-display-none legend {
	display: none;
}

@media screen and (min-width: $break-m) {

	.fieldset-one .field {
		display: inline-block;
		vertical-align: top;
		width: 49.61%;
	}

	.field-left-padding {
		padding-right: 1.6vw;
	}

	.field-right-padding {
		padding-left: 1.94805vw;
	}
}

@media screen and (min-width: $break-l) {

	.field-left-padding {
		padding-right: 16px;
	}

	.field-right-padding {
		padding-left: 20px;
	}
}

@media screen and (min-width: $break-xl) {
}
*/
/* ==========================================================================
   KOMPONENTEN
   Wiederverwendbare UI-Komponenten, die breakpoint-unabhängig sind.
   Enthält: Wasserfarbkanten, Listen, Bilder, Video, Leistungsberge,
   Listing Number, Call to Action und Tooltips.
   ========================================================================== */
/* ==========================================================================
   1. WASSERFARBKANTEN
   Dekorative Wasserfarb-Kanten, die über Pseudo-Elemente auf Sektionen
   gelegt werden. Die URLs #WE:xxx# sind webEdition-Platzhalter.
   ========================================================================== */
/* Wasserfarbkante oben */
.overlay-wasserfarben-top:before {
  content: "";
  background-image: url("/inc/img/overlay-wasserfarbe-top.png");
  background-repeat: no-repeat;
  position: absolute;
  top: 0;
  display: block;
  z-index: 1;
  width: 100%;
  height: 232px;
  pointer-events: none;
}
/* Wasserfarbkante unten */
.overlay-wasserfarben-bottom:after {
  content: "";
  background-image: url("/inc/img/overlay-wasserfarbe-bottom.png");
  background-repeat: no-repeat;
  position: absolute;
  bottom: 0;
  display: block;
  z-index: 1;
  width: 100%;
  height: 232px;
  pointer-events: none;
}
/* Wasserfarbkante unterhalb des Elements (z.B. unter dem Header) */
.overlay-wasserfarben-bottom-after:after {
  content: "";
  background-image: url("/inc/img/overlay-wasserfarbe-top.png");
  background-repeat: no-repeat;
  position: absolute;
  bottom: -232px;
  display: block;
  z-index: 1;
  width: 100%;
  height: 232px;
  pointer-events: none;
}
/* Wasserfarbkante auf allen Seiten (links oben + rechts unten) */
.overlay-wasserfarben-all:before {
  content: "";
  background-image: url("/inc/img/overlay-wasserfarbe-left-top.png"), url("/inc/img/overlay-wasserfarbe-right-bottom.png");
  background-repeat: no-repeat;
  background-position: left top, right bottom;
  background-size: 200% 200%;
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  z-index: 1;
  width: 100%;
  height: calc(100% + 1px);
  pointer-events: none;
}
/* Variante für sandfarbene Stripes (andere Farbe der Kante) */
.sand-stripe .overlay-wasserfarben-all:before {
  content: "";
  background-image: url("/inc/img/overlay-wasserfarbe-left-top-sand.png"), url("/inc/img/overlay-wasserfarbe-right-bottom-sand.png");
  background-repeat: no-repeat;
  background-position: left top, right bottom;
  background-size: 200% 200%;
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  z-index: 1;
  width: 100%;
  height: calc(100% + 1px);
  pointer-events: none;
}
/* Dekorativer Rahmen um Elemente */
.overlay-border {
  border: 2px solid #E5E5E5;
}
/* ==========================================================================
   2. LISTEN-VARIANTEN
   Spezielle Listen-Stile: Mehr Abstand und Häkchen-Listen.
   ========================================================================== */
/* ---------- Mehr Abstand zwischen Listenpunkten ---------- */
ul.listspace > li, ol.listspace > li {
  margin: 16px 0;
}
ul.listspace > li:last-child, ol.listspace > li:last-child {
  padding-bottom: 0;
}
ul.listspace li ul, ol.listspace li ol {
  margin: 0.3em 0;
}
/* ---------- Liste mit Häkchen/Check ---------- */
ul.listcheck > li {
  position: relative;
  list-style: none;
}
ul.listcheck > li:before {
  content: "";
  background: url("/inc/img/listcheck.svg") no-repeat center;
  width: 23px;
  height: 20px;
  display: inline-block;
  position: absolute;
  left: -32px;
  top: 6px;
  background-size: 80%;
}
/* Listcheck auf farbigen Hintergründen: Weißes Häkchen-Icon für Kontrast.
   Betrifft farbige Section-Stripes und farbige Infoboxen.
   Umrandete Infoboxen (.rahmen, .weiss) behalten das blaue Standard-Icon. */
section.blue-stripe ul.listcheck > li:before, section.turquoise-stripe ul.listcheck > li:before, section.sand-stripe ul.listcheck > li:before, .infobox ul.listcheck > li:before, .infobox.hgBlau ul.listcheck > li:before, .infobox.hgTuerkis ul.listcheck > li:before {
  background-image: url("/inc/img/listcheck-white.svg");
}
/* ==========================================================================
   3. BILDER
   Standard-Bildstile und dekorative Störer-Elemente.
   ========================================================================== */
/* Standard-Bild: Volle Breite */
.pic {
  display: block;
  width: 100%;
  height: auto;
}
/* Bildbeschreibung: Klein, zentriert */
.pic-description {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: normal;
  text-align: center;
  margin-top: 0.5em;
}
/* ---------- Blauer Störer auf Bild ---------- */
/* Schräg gestelltes Label auf Bildern (z.B. "Neu!", "Relaunch") */
.img-stoerer {
  position: absolute;
  top: -28px;
  right: 24px;
  background-color: #0582B9;
  padding: 4px 12px;
  border: 4px solid #fff;
  border-radius: 4px;
  font-size: 1.5em;
  color: #fff;
  text-transform: uppercase;
  transform: rotate(-8deg);
  z-index: 1;
}
/* ==========================================================================
   4. VIDEO
   Video-Popup mit Play-Button-Overlay und responsive Video-Container.
   ========================================================================== */
/* Video-Popup: Vorschaubild mit Play-Button-Overlay */
.responsive-video-popup {
  position: relative;
}
/* Play-Button: Blauer Kreis */
.responsive-video-popup:before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: block;
  width: 64px;
  height: 64px;
  background-color: #0582B9;
  border-radius: 100%;
  box-shadow: 0 0 5px #fff;
}
/* Play-Button: Weißes Dreieck */
.responsive-video-popup:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-28%, -50%);
  display: block;
  width: 28px;
  height: 28px;
  border: 0;
  background: transparent;
  border-color: transparent transparent transparent #fff;
  border-style: solid;
  border-width: 14px 0 14px 22px;
  box-sizing: border-box;
}
.responsive-video-popup img {
  width: 100%;
  height: auto;
}
/* Responsive Video: 16:9-Container für iframes */
.responsive-video {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  margin: 1em 0;
}
.responsive-video iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/* ==========================================================================
   5. LEISTUNGSBERGE
   Interaktive Leistungs-Übersicht: Absolut positionierte Punkte auf einem
   Bergpanorama-Bild. Jeder Punkt ist ein Link zu einer Leistungsseite.
   ========================================================================== */
.leistungs-uebersicht-wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* Hover-Zustand der Leistungspunkte */
}
.leistungs-uebersicht-wrap li {
  position: absolute;
  list-style: none;
  padding: 0;
  border-radius: 4px;
  transform: perspective(1px) translateZ(0);
  z-index: 1;
  /* Farbvarianten der Leistungspunkte */
  /* Verbindungspunkt unter jedem Label (kleiner Kreis) */
  /* Ripple-Effekt bei Hover */
}
.leistungs-uebersicht-wrap li a {
  display: inline-block;
  color: #fff;
  padding: 6px 12px;
  background: none;
  /* Hover-Hintergrund: Orange mit Scale-Animation */
}
.leistungs-uebersicht-wrap li a:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #E27E32;
  border-radius: 4px;
  transform: scale(0);
  transition-property: transform;
  transition-duration: 0.15s;
  transition-timing-function: ease-out;
}
.leistungs-uebersicht-wrap li.bg-light-blue, .leistungs-uebersicht-wrap li.bg-light-blue:after {
  background-color: #01ACE8;
  transition: all 0.5s ease;
}
.leistungs-uebersicht-wrap li.bg-blue, .leistungs-uebersicht-wrap li.bg-blue:after {
  background-color: #0582B9;
  transition: all 0.5s ease;
}
.leistungs-uebersicht-wrap li.bg-turquoise, .leistungs-uebersicht-wrap li.bg-turquoise:after {
  background-color: #0ab4c5;
  transition: all 0.5s ease;
}
.leistungs-uebersicht-wrap li:after {
  content: "";
  display: inline-block;
  position: absolute;
  bottom: -30px;
  left: 50%;
  transform: translate(-50%, 0);
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 3px solid transparent;
  box-shadow: 0px 0px 0 1px #fff;
  background-clip: padding-box;
}
.leistungs-uebersicht-wrap li:before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  border: 0px solid #E27E32;
  animation-duration: 0.5s;
  border-radius: 4px;
  opacity: 0;
  z-index: -1;
  animation-delay: 0.15s;
  transition: all 0.3s ease;
}
.leistungs-uebersicht-wrap li:hover {
  /* Verbindungspunkt wird orange */
  /* Link-Hintergrund einblenden */
  /* Ripple-Animation starten */
}
.leistungs-uebersicht-wrap li:hover.bg-light-blue:after, .leistungs-uebersicht-wrap li:hover.bg-blue:after, .leistungs-uebersicht-wrap li:hover.bg-turquoise:after {
  background-color: #E27E32;
}
.leistungs-uebersicht-wrap li:hover a:before {
  -webkit-transform: scale(1);
  transform: scale(1);
}
.leistungs-uebersicht-wrap li:hover.bg-light-blue:before, .leistungs-uebersicht-wrap li:hover.bg-blue:before, .leistungs-uebersicht-wrap li:hover.bg-turquoise:before {
  animation-name: ripple-out;
  opacity: 1;
  border: 6px solid #E27E32;
}
/* ==============================[ Leistungsbild ]============================== */
/* Großes Panoramabild für die Leistungs-Übersicht */
.image-leistung {
  position: relative;
  overflow: hidden;
  background: url("/images/bergkette-leistungen.jpg") no-repeat center;
  height: 888px;
}
/* ==========================================================================
   6. LISTING NUMBER
   Nummerierte Auflistung: Nummer als Kreis links neben der Überschrift.
   ========================================================================== */
h3.listing-number {
  position: relative;
  padding-left: 60px;
}
.listing-number span {
  position: absolute;
  font-size: 0.8em;
  top: calc(50% - 23px);
  width: 46px;
  height: 46px;
  display: flex;
  justify-content: center;
  align-items: center;
  left: 0;
  background-color: #DED8D0;
  border-radius: 50%;
}
/* ==========================================================================
   7. CALL TO ACTION
   Großer Call-to-Action-Button (z.B. für Kontaktanfragen).
   ========================================================================== */
.calltoaction {
  display: block;
  margin: 1em 3px;
  padding: 20px;
  color: #fff;
  background: #0582B9;
  text-align: center;
  text-decoration: none;
  border-radius: 4px;
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
  font-size: 22px;
  font-size: 2.2rem;
  transition: background 0.2s ease-in-out;
}
.calltoaction:hover {
  color: #fff;
  background: #01ACE8;
}
.calltoaction span {
  display: block;
  margin-top: 6px;
  font-size: 16px;
  font-size: 1.6rem;
}
/* ==========================================================================
   8. TOOLTIPS
   Info-Icon neben Formularfeldern. Bei Klick/Hover erscheint eine
   Sprechblase mit Hilfetext.
   ========================================================================== */
.icon-tooltip {
  display: inline-block;
  height: 20px;
  width: 18px;
  position: relative;
  top: 3px;
  margin-left: 8px;
  cursor: pointer;
}
.icon-tooltip abbr {
  border-bottom: none;
  display: inline-block;
  width: 100%;
  height: 100%;
}
.icon-tooltip path {
  fill: #01ACE8;
}
/* Tooltip-Box: Dunkler Hintergrund mit Pfeil */
#tooltip-box {
  text-align: center;
  color: #fff;
  background: #111;
  position: absolute;
  z-index: 100;
  padding: 15px;
}
/* Dreieck-Pfeil unter der Tooltip-Box */
#tooltip-box:after {
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 10px solid #111;
  content: "";
  position: absolute;
  left: 50%;
  bottom: -10px;
  margin-left: -10px;
}
/* Tooltip oben: Pfeil zeigt nach unten */
#tooltip-box.top:after {
  border-top-color: transparent;
  border-bottom: 10px solid #111;
  top: -20px;
  bottom: auto;
}
#tooltip-box.left:after {
  left: 10px;
  margin: 0;
}
#tooltip-box.right:after {
  right: 10px;
  left: auto;
  margin: 0;
}
/* ==========================================================================
   ANIMATIONEN
   Scroll-basierte Einblend- und Scale-Animationen.
   Die Klasse .inview wird per JavaScript hinzugefügt,
   wenn das Element im Viewport erscheint.
   ========================================================================== */
/* ==========================================================================
   1. FADE-IN / SLIDE-UP
   Elemente gleiten beim Scrollen von unten nach oben ins Bild.
   ========================================================================== */
.fade-in, .animation-cta {
  -webkit-transform: translate3d(0, 50px, 0);
  transform: translate3d(0, 50px, 0);
  -webkit-transition: opacity 2250ms cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 2250ms cubic-bezier(0.19, 1, 0.22, 1);
  transition: transform 2250ms cubic-bezier(0.19, 1, 0.22, 1), opacity 2250ms cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 2250ms cubic-bezier(0.19, 1, 0.22, 1);
  opacity: 0;
}
.fade-in.inview, .animation-cta.inview {
  opacity: 1;
  -webkit-transform: translate3d(0, 0px, 0);
  transform: translate3d(0, 0px, 0);
}
/* ==========================================================================
   2. SCALE-ANIMATION (CTAs)
   Elemente skalieren von 0 auf 1.
   ========================================================================== */
.animation-cta {
  -webkit-transform: scale(0);
  transform: scale(0);
  -webkit-transition: opacity 2250ms cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 2250ms cubic-bezier(0.19, 1, 0.22, 1);
  transition: transform 2250ms cubic-bezier(0.19, 1, 0.22, 1), opacity 2250ms cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 2250ms cubic-bezier(0.19, 1, 0.22, 1);
  opacity: 0;
}
.animation-cta.inview {
  opacity: 1;
  -webkit-transform: scale(1);
  transform: scale(1);
}
/* ==========================================================================
   3. STÖRER-ANIMATION
   Eindrehen und Skalieren für Badge-Elemente auf Bildern.
   ========================================================================== */
.img-stoerer.animation-cta {
  -webkit-transform: scale(0) rotate(4deg);
  transform: scale(0) rotate(4deg);
  transition: all 0.2s ease-in-out;
}
.img-stoerer.animation-cta.inview {
  -webkit-transform: scale(1) rotate(-4deg);
  transform: scale(1) rotate(-4deg);
}
/* ==========================================================================
   4. LEISTUNGSBERG-ANIMATIONEN
   Labels gleiten von oben ein, Verbindungspunkte folgen verzögert.
   ========================================================================== */
.leistungs-uebersicht-wrap .animation-after {
  -webkit-transform: translateY(-20px);
  transform: translateY(-20px);
  -webkit-transition: opacity 2250ms cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 2250ms cubic-bezier(0.19, 1, 0.22, 1);
  transition: transform 2250ms cubic-bezier(0.19, 1, 0.22, 1), opacity 2250ms cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 2250ms cubic-bezier(0.19, 1, 0.22, 1);
  opacity: 0;
}
.leistungs-uebersicht-wrap .animation-after.inview {
  opacity: 1;
  -webkit-transform: translateY(0px);
  transform: translateY(0px);
}
/* Verbindungspunkte unter den Labels: Verzögerte Animation */
.leistungs-uebersicht-wrap .animation-after:after {
  -webkit-transform: translate(-50%, -20px);
  transform: translate(-50%, -20px);
  -webkit-transition: opacity 2250ms cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 2250ms cubic-bezier(0.19, 1, 0.22, 1);
  transition: transform 2250ms cubic-bezier(0.19, 1, 0.22, 1), opacity 2250ms cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 2250ms cubic-bezier(0.19, 1, 0.22, 1);
  opacity: 0;
  transition-delay: 0.2s;
}
.leistungs-uebersicht-wrap .animation-after.inview:after {
  opacity: 1;
  -webkit-transform: translate(-50%, 0px);
  transform: translate(-50%, 0px);
  transition-delay: 0.2s;
}
/* ==========================================================================
   5. RIPPLE-OUT KEYFRAMES
   Expansions-Animation für die Leistungsberg-Hover-Effekte.
   ========================================================================== */
@-webkit-keyframes ripple-out {
  100% {
    top: -12px;
    right: -12px;
    bottom: -12px;
    left: -12px;
    opacity: 0;
  }
}
@keyframes ripple-out {
  100% {
    top: -12px;
    right: -12px;
    bottom: -12px;
    left: -12px;
    opacity: 0;
  }
}
/* ==========================================================================
   SMALL / MOBILE-FIRST BASIS-STYLESHEET
   Dies ist das Haupt-Stylesheet der Aysberg-Website. Alle Styles hier
   gelten als Mobile-First-Basis und werden in den Breakpoint-Dateien
   _middle.scss, _large.scss und _xlarge.scss schrittweise überschrieben.
   ========================================================================== */
/* ==============================[ Allgemein ]============================== */
/* Debug-Label: Zeigt "S" für Small-Viewport (siehe _grid.scss Abschnitt 1) */
body:after {
  content: "S";
}
/* HTML und Body: Volle Höhe, Scroll-Offset für fixierten Header */
html, body {
  height: 100%;
  scroll-padding-top: 300px;
}
/* Seitencontainer: Mindesthöhe, maximale Breite, zentriert */
#wrap {
  min-height: 100%;
  max-width: 2560px;
  margin: 0 auto;
}
/* Google-Translate-Button: Überschreibung der Inline-Styles,
   damit der Button zum Aysberg-Design passt */
button.qxCTlb[style] {
  position: relative;
  background-color: #fff !important;
  color: #444 !important;
  border: 2px solid #DED8D0;
  border-radius: 4px !important;
  padding: 10px 78px 10px 24px !important;
  line-height: 28px;
  font-weight: normal;
  transition: all 0.2s ease-out;
}
button.qxCTlb[style]:before {
  content: "";
  display: inline-block;
  background-image: url(/inc/img/buttons/btn-regular.svg);
  background-repeat: no-repeat;
  background-size: auto 100%;
  position: absolute;
  right: -3px;
  top: -2px;
  width: 66px;
  height: calc(100% + 4px);
  transition: all 0.2s ease-out;
}
button.qxCTlb[style]:after {
  content: "";
  display: inline-block;
  background-image: url(/inc/img/buttons/btn-arrow-right.svg);
  background-repeat: no-repeat;
  position: absolute;
  right: 17px;
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 24px;
}
button.qxCTlb[style]:hover {
  color: #E27E32 !important;
  transition: all 0.2s ease-out;
}
button.qxCTlb[style]:hover:before {
  background-image: url(/inc/img/buttons/btn-regular-orange.svg);
  transition: all 0.2s ease-out;
}
.sand-stripe button.qxCTlb[style] {
  border: 2px solid #E5E5E5;
}
/* ==============================[ Skip to Content ]============================== */
/* Barrierefreiheit: Unsichtbarer Link, der bei Fokus (Tab-Taste) erscheint */
.skip-link {
  position: absolute;
  top: -100px;
  left: 10px;
  background: #fff;
  font-size: 14px;
  color: #fff;
  padding: 8px;
  text-decoration: none;
  z-index: 9999;
}
.skip-link:focus {
  top: 10px;
}
/* ==============================[ Formate für Sektionen ]============================== */
/* Artikel-Bereich: Leichtes Padding oben */
article {
  padding: 12px 0 0;
}
/* Sektionen innerhalb des Artikels: Vertikaler Abstand */
article section {
  margin: 48px 0;
}
/* Detail- und Referenzseiten: Erste Sektion weiter unten (unter dem Header) */
#detailseite .first-section, #referenzseite .first-section {
  margin-top: 180px;
}
/* ==============================[ Klassen ]============================== */
/* Zentrierter Inhaltscontainer mit maximaler Breite */
.inner {
  margin: 0 auto;
  width: 100%;
  max-width: 1280px;
  padding: 0 16px;
  position: relative;
}
/* Schmaler Inhaltscontainer (z.B. für Formulare) */
.inner.small-800 {
  margin: 0 auto;
  width: 100%;
  max-width: 800px;
  padding: 0 16px;
  position: relative;
}
/* Container mit festen Breakpoint-Breiten (wird pro Breakpoint überschrieben) */
.inner-fix-breakpoints {
  max-width: 375px;
  position: relative;
  width: 100%;
  margin: 0 auto;
  padding: 0 16px;
}
/* Breiter Container für Referenz-Detailseiten */
.inner-referenzdetail {
  margin: 0 auto;
  width: 100%;
  max-width: 1800px;
  padding: 0 16px;
  position: relative;
}
/* Clearfix für .inner und .inner-referenzdetail */
.inner:after, .inner-referenzdetail:after {
  content: "";
  display: block;
  clear: both;
  height: 0;
}
/* ---------- Layout ---------- */
.flexbox {
  display: flex;
}
/* Grid mit vertikal zentrierten Inhalten */
.grid.align-items-center {
  align-items: center;
}
.grid.align-items-center h3, .grid.align-items-center h2 {
  margin-top: 0;
}
.grid.align-items-center h2 + h3 {
  margin-top: -30px;
}
.grid.align-items-center p:last-child {
  margin-bottom: 0;
}
/* ---------- Text und Link ---------- */
/* Klickbarer Container (z.B. Teaser-Kacheln) */
.clickbox {
  cursor: pointer;
}
/* Tabulatorbreite für Adress-Darstellung (z.B. "Tel:" / "Fax:") */
.tab {
  width: 4.5em;
  float: left;
  clear: left;
  display: block;
}
/* Kleine Schrift (z.B. für Copyright oder Fußnoten) */
.minitext {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 15px;
  line-height: 1.5rem;
}
/* Klasse, die h3-Styling auf beliebige Elemente anwendet */
.h3style {
  font-family: "amatic bold", sans-serif;
  font-weight: normal;
  text-transform: uppercase;
  white-space: normal;
  font-size: 33px;
  font-size: 3.3rem;
  line-height: 35px;
  line-height: 3.5rem;
  letter-spacing: 0.65px;
  margin: 48px 0 16px;
}
/* ==============================[ Trenner ]============================== */
/* ---------- Berge ---------- */
/* Dekorativer Berg-Trenner: Bergsilhouette mit gepunkteter Linie */
.line-berg {
  background-image: url("/inc/img/line-berg.svg"), url("/inc/img/line-sand.svg");
  background-repeat: no-repeat, repeat-x;
  background-position: center bottom -1px;
  padding-bottom: 108px;
  margin-bottom: 64px;
  background-size: 320px, 3px;
}
/* ---------- Crack ---------- */
/* Dekorativer Riss-Trenner */
.line-crack {
  background-image: url("/inc/img/line-crack.svg");
  background-repeat: no-repeat;
  background-position: center bottom;
  padding-bottom: 108px;
  background-size: 200%;
}
/* Riss-Trenner mit Farbverlauf */
.line-crack-gradient {
  background-image: url("/inc/img/line-crack-gradient.png");
  background-repeat: no-repeat;
  background-position: center bottom;
  padding-bottom: 108px;
}
/* Kleiner SVG-Riss (nur auf bestimmten Viewports sichtbar) */
.small-line-crack {
  display: none;
  text-align: center;
  margin-bottom: 40px;
}
.small-line-crack svg {
  width: 100%;
  max-width: 450px;
}
/* ==============================[ Header ]============================== */
/* Fixierter Header mit halbtransparentem Hintergrund */
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: 0;
  z-index: 999;
  background-color: rgba(255, 255, 255, 0.95);
  transition: all 0.3s ease-out;
}
header .overlay-wasserfarben-bottom-after:after {
  opacity: 0.95;
  transition: all 0.3s ease-out;
}
/* Detail- und Referenzseiten: Header mit sandfarbenem Hintergrund */
#detailseite header, #referenzseite header {
  background-color: #E5E5E5;
}
#detailseite header .overlay-wasserfarben-bottom-after:after, #referenzseite header .overlay-wasserfarben-bottom-after:after {
  background-image: url("/inc/img/wasserfarbe-grob-sand.png");
  opacity: 1;
}
/* Header-Flexbox: Logo links, Navigation rechts */
header .flexbox {
  justify-content: space-between;
  align-items: center;
}
header .flexbox img {
  transition: all 0.3s ease-out;
}
/* ---------- Logo ---------- */
header a.logo {
  display: block;
  position: relative;
  top: 0;
  transition: all 0.3s ease-out;
  background: none;
}
header a.logo img {
  width: 104px;
  height: auto;
}
/* ---------- Header beim Scrollen ---------- */
/* Kompakter Header nach dem Herunterscrollen */
header.small {
  background-color: rgba(255, 255, 255, 0.95);
}
header.small .logo img {
  width: 104px;
}
header.small nav ul li a {
  font-size: 20px;
  background: none;
  transition: all 0.3s ease-out;
}
header.small ul.subnav li a {
  font-family: "formata light";
  background: none;
}
header.small .overlay-wasserfarben-bottom-after:after {
  opacity: 0.95;
}
/* ==============================[ Navigationen ]============================== */
/* Grundlegendes Reset für Navigations-Listen */
nav ul, nav ul li {
  margin: 0;
  padding: 0;
  list-style-type: none;
  background-image: none;
  position: relative;
}
/* Trennlinien zwischen Hauptmenüpunkten (mobil) */
nav > ul > li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.6);
}
/* Clearfix für Navigation */
nav.mainnav ul:after, ul.subnav ul:after {
  content: "";
  display: block;
  height: 0;
  clear: both;
}
nav.mainnav ul li, ul.subnav li {
  display: block;
  padding: 0;
}
/* Hauptnavigation: Vollbild-Overlay auf Mobile */
nav.mainnav {
  position: absolute;
  top: 56px;
  left: 0;
  width: 100%;
  height: calc(100vh - 56px);
  overflow-x: scroll;
  z-index: 2;
  display: none;
  background-color: #0582B9;
  transition: all 0.2s ease;
}
nav.mainnav > ul {
  padding-bottom: 56px;
}
/* Nav-Links: Weiße Schrift auf blauem Hintergrund */
nav.mainnav ul li a {
  display: block;
  padding: 8px 16px;
  text-decoration: none;
  color: #fff;
  font-family: "formata";
  font-size: 22px;
  text-transform: uppercase;
  border-radius: 4px;
  transition: all 0.3s ease-out;
  background: none;
}
nav.mainnav ul li a:hover, nav.mainnav > ul > li:hover > a {
  background: #01ACE8;
  outline: none;
}
/* Aktiver Menüpunkt */
nav.mainnav ul li.current a, nav.mainnav ul > li.current:hover > a {
  background: #01ACE8;
}
/* ---------- Subnavigation ---------- */
nav ul li:hover ul.subnav {
  display: block;
}
/* Untermenü: Eingerückt, mit Abstand */
nav.mainnav li ul.subnav {
  margin: 2px 0 18px;
}
nav.mainnav li ul.subnav li a {
  background: transparent;
  font-family: formata light;
  text-transform: none;
  white-space: nowrap;
}
nav.mainnav li ul.subnav li.current a {
  background-color: #01ACE8;
  font-family: formata;
}
nav.mainnav li ul.subnav li.current .subnav2 li.current a {
  font-family: formata light;
}
/* Zweites Untermenü-Level */
nav.mainnav li ul.subnav2 {
  margin: 0;
  padding: 0;
}
nav.mainnav li ul.subnav2 li a {
  padding-left: 36px;
}
/* ---------- mobile Navigation ---------- */
/* Hamburger-Button-Container */
#nav-toggle-wrap {
  display: flex;
  position: relative;
  justify-content: flex-end;
  background-color: transparent;
}
/* Hamburger-Button */
.nav-toggle {
  display: inline-block;
  cursor: pointer;
  transition: background 0.2s ease-in-out;
  padding: 24px;
  position: relative;
  margin: 4px 0;
}
.nav-toggle:hover, .open .nav-toggle {
  background: #01ACE8;
}
/* Hamburger-Icon: Drei Striche */
.hamburger-icon {
  width: 24px;
  position: absolute;
  top: 16px;
  right: 12px;
}
.hamburger, .hamburger:after, .hamburger:before {
  height: 3px;
  background-color: #000;
  position: relative;
  transition: all 0.3s ease;
}
.hamburger:after, .hamburger:before {
  content: "";
  width: 100%;
  position: absolute;
}
.hamburger:before {
  top: 14px;
  left: 0;
}
.hamburger:after {
  top: 7px;
  left: 0;
}
/* Hamburger-Icon: Weiß bei Hover */
.nav-toggle:hover .hamburger, .nav-toggle:hover .hamburger:after, .nav-toggle:hover .hamburger:before {
  background: #fff;
}
/* Header-Zustand: Offen/Geschlossen */
.header-section {
  /* Geöffnet: Navigation sichtbar, Hamburger wird zum X */
}
.header-section.closed .mainnav {
  display: none;
}
.header-section.open .mainnav {
  display: block;
}
.header-section.open .hamburger {
  background: none;
}
.header-section.open .hamburger:before {
  transform: rotate(-45deg);
  top: 7px;
  background: #fff;
}
.header-section.open .hamburger:after {
  background: #fff;
  top: 7px;
  transform: rotate(45deg);
}
/* ==============================[ Keyvisual ]============================== */
/* Hero-Bild: Volle Breite, Mindesthöhe */
.keyvisual {
  position: relative;
  overflow: hidden;
  background-size: 100% auto;
  background-position: center;
  background-repeat: no-repeat;
  min-height: 350px;
}
/* Startseite: Keyvisual fast volle Bildschirmhöhe */
#home .keyvisual {
  height: 80vh;
}
#home .keyvisual .pic {
  min-width: 600px;
  height: 80vh;
  width: auto;
}
/* Allgemeines Bild im Keyvisual */
.keyvisual .pic, .col-12-bg-image .pic {
  min-width: 300px;
}
/* Ganzseitiges Hintergrundbild (12-Spalten-Breite) */
.col-12-bg-image {
  overflow: hidden;
  height: 250px;
}
/* ---------- Slogan auf Keyvisual ---------- */
/* Slogan: Absolut positioniert auf dem Keyvisual */
.slogan {
  position: absolute;
  top: 50%;
  left: 30%;
  transform: translate(0, -20%);
  display: flex;
  flex-direction: column;
}
.slogan span {
  position: relative;
  align-self: flex-start;
  margin: 3px 0;
  padding: 6px 24px;
  font-size: 24px;
  line-height: 1.4em;
  text-transform: uppercase;
  color: #fff;
  background-color: #0582B9;
  text-align: center;
  border-radius: 4px;
  transition: all 0.2s ease-out;
}
.slogan span:nth-child(2) {
  left: -24px;
}
.slogan span:nth-child(3) {
  right: -30px;
}
.home-section-experience h2 {
  margin-top: 0;
}
/* ---------- Intro-Text ---------- */
/* Größerer Einleitungstext nach dem Keyvisual */
.intro-text {
  font-size: 22px;
  line-height: 32px;
}
#home .intro-text {
  margin-top: 0;
}
/* ==============================[ Verlinkungen ]============================== */
/* Standard-Links: Heller Hintergrund für bessere Erkennbarkeit */
a {
  background-color: #E5E5E5;
  padding: 0 6px;
  border-radius: 2px;
  color: #444;
  word-break: break-word;
}
a:hover {
  color: #E27E32;
}
/* ---------- Buttons ---------- */
/* Standard-Button: Rechteckig mit Pfeil-Grafik rechts */
.button {
  display: inline-block;
  position: relative;
  padding: 10px 78px 10px 16px;
  border: 2px solid #DED8D0;
  border-radius: 4px;
  color: #444;
  background-color: #fff;
  margin: 0;
  transition: all 0.2s ease-out;
  /* Farbige Fläche rechts im Button */
  /* Pfeil-Icon im Button */
  /* Hover: Orange Fläche */
}
.button:before {
  content: "";
  display: inline-block;
  background-image: url("/inc/img/buttons/btn-regular.svg");
  background-repeat: no-repeat;
  background-size: auto 100%;
  position: absolute;
  right: -3px;
  top: -2px;
  width: 65px;
  height: calc(100% + 4px);
  transition: all 0.2s ease-out;
}
.button:after {
  content: "";
  display: inline-block;
  background-image: url("/inc/img/buttons/btn-arrow-right.svg");
  background-repeat: no-repeat;
  position: absolute;
  right: 17px;
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 24px;
}
.button:hover:before {
  background-image: url("/inc/img/buttons/btn-regular-orange.svg");
}
/* Buttons in Infoboxen: Immer weißer Hintergrund */
.infobox a.button, .infobox.hgBlau a.button, .infobox.hgTuerkis a.button {
  color: #444;
  background-color: #fff;
  border: 4px solid white;
}
/* ==============================[ Sonderelemente ]============================== */
/* ==============================[ Infobox ]============================== */
/* Farbige Infoboxen für hervorgehobene Inhalte.
   Varianten: Standard (sand), .hgBlau, .hgTuerkis, .rahmen, .weiss */
.infobox {
  padding: 36px 24px 12px;
  border-radius: 4px;
  position: relative;
  background-color: #DED8D0;
  height: 100%;
  /* Blaue Infobox */
  /* Türkise Infobox */
  /* Rahmen-Infobox: Weißer Hintergrund mit Rahmen */
  /* Weiße Infobox: Kein Padding, kein Hintergrund */
}
.infobox h3 {
  margin-top: 0;
}
.infobox.hgBlau {
  color: #fff;
  background-color: #01ACE8;
}
.infobox.hgBlau a {
  background-color: #57d3ff;
  color: #fff;
}
.infobox.hgBlau a:hover {
  color: #444;
}
.infobox.hgTuerkis {
  color: #fff;
  background-color: #0ab4c5;
}
.infobox.hgTuerkis a {
  background-color: #0091a2;
  color: #fff;
}
.infobox.hgTuerkis a:hover {
  color: #444;
}
.infobox.rahmen {
  background-color: #fff;
  border: 2px solid #DED8D0;
  color: #444;
}
.infobox.weiss {
  background-color: #fff;
  padding: 0;
}
.infobox.weiss h3 {
  color: #0582B9;
}
/* Labels in farbigen Infoboxen: Weiße Schrift */
.infobox.hgBlau label, .infobox.hgTuerkis label {
  color: #fff;
}
/* Eingabefelder in farbigen Infoboxen: Weißer Rahmen */
.infobox.hgBlau input, .infobox.hgBlau textarea, .infobox.hgTuerkis input, .infobox.hgTuerkis textarea {
  border-color: #fff;
}
/* ==============================[ Bildergallerie ]============================== */
.image-gallery {
  margin: 0;
  padding: 0;
  list-style-type: none;
}
.image-gallery:after {
  content: "";
  display: block;
  height: 0;
  clear: both;
}
.image-gallery li {
  margin: 0;
  margin-bottom: 24px;
  padding: 0;
  background: none;
}
.image-gallery li a.imagelightbox {
  margin: 12px 0;
}
/* ==============================[ Teaser ]============================== */
/* Klickbare Teaser-Karte mit Rahmen und Hover-Effekt */
.teaser.clickbox {
  position: relative;
  padding: 24px 24px 48px;
  background: #fff;
  transition: all 0.2s ease-in-out;
  border-radius: 4px;
  border: 2px solid #DED8D0;
}
.teaser.clickbox h3 {
  margin-top: 0;
}
.teaser.clickbox h3 a {
  color: #0582B9;
  background: none;
  padding: 0;
}
.teaser.clickbox .mg-btn-none p:last-child {
  margin-bottom: 0;
}
/* Teaser Hover: Schatten und orange Überschrift */
.teaser.clickbox:hover {
  box-shadow: 0 0 6px rgba(0, 0, 0, 0.2);
}
.teaser.clickbox:hover .teaser-button {
  background: url("/inc/img/buttons/btn-teaser-orange.svg") no-repeat center;
}
.teaser.clickbox:hover h3 a {
  margin-top: 0;
  color: #E27E32;
}
/* Teaser-Button: Kleiner Pfeil-Bereich unten rechts */
.teaser-button {
  position: absolute;
  bottom: -2px;
  right: -2px;
  width: 60px;
  height: 48px;
  background: url("/inc/img/buttons/btn-teaser.svg") no-repeat center;
  transition: background 0.5s ease-in-out;
}
.teaser-button:after {
  content: "";
  display: inline-block;
  width: 12px;
  height: 24px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-40%, -32%);
  background: url("/inc/img/buttons/btn-arrow-right.svg") no-repeat center;
  background-size: 100%;
}
.referer .teaser-button {
  background: url("/inc/img/buttons/btn-teaser-grey.svg");
}
/* ---------- flex-Teaser ---------- */
/* Teaser als Flex-Container (für responsive Spalten-Layouts) */
.teaser-flex {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}
.teaser-flex h2 {
  margin-top: 0;
}
.teaser-flex p + .button-right, .teaser-flex p + .button-left {
  margin: 0;
}
.teaser-flex .button {
  align-self: flex-end;
  margin: 0;
}
.teaser-flex .teaser {
  margin: 0 0 24px 0;
  transition: all 0.2s ease-in-out;
  display: flex;
  flex-direction: column;
  width: 100%;
}
.teaser-flex .teaser:hover .button {
  color: #E27E32;
}
.teaser-flex .teaser:hover .button:before {
  background-image: url("/inc/img/buttons/btn-regular-orange.svg");
}
/* Teaser-Bilder: Auf Mobile ausgeblendet, stattdessen Hintergrundbild */
.teaser-flex img.pic {
  display: none;
}
.teaser-flex .teaser-image, .teaser .teaser-image {
  position: relative;
  height: 200px;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
/* Hover-Effekt: Animierter oranger Rahmen (Border-Animation) */
.teaser.clickbox:before, .teaser.clickbox:after, .footer-call-to-action .clickbox:before, .footer-call-to-action .clickbox:after {
  width: calc(100% + 4px);
  height: calc(100% + 4px);
  z-index: 3;
  content: "";
  position: absolute;
  top: -2px;
  left: -2px;
  border-radius: 4px;
  box-sizing: border-box;
  -webkit-transform: scale(0);
  transition: 0.5s;
}
.teaser.clickbox:before, .footer-call-to-action .clickbox:before {
  border-bottom: 2px solid #E27E32;
  border-left: 2px solid #E27E32;
  -webkit-transform-origin: 0 100%;
}
.teaser.clickbox:after, .footer-call-to-action .clickbox:after {
  border-top: 2px solid #E27E32;
  border-right: 2px solid #E27E32;
  -webkit-transform-origin: 100% 0;
}
.teaser.clickbox:hover, .footer-call-to-action .clickbox:hover {
  border: 2px solid transparent;
}
.teaser.clickbox:hover:before, .teaser.clickbox:hover:after, .footer-call-to-action .clickbox:hover:before, .footer-call-to-action .clickbox:hover:after {
  -webkit-transform: scale(1);
}
/* ==============================[ Slider ]============================== */
/* Slider-Navigation: Pfeil-Links und -Rechts */
.slider-ctrl a {
  position: absolute;
  top: 32%;
  z-index: 10;
  cursor: pointer;
  background: none;
}
.slider-ctrl a.slider-ctrl-left {
  left: 18px;
}
.slider-ctrl a.slider-ctrl-right {
  right: 18px;
}
.slider-ctrl a:hover.slider-ctrl-left path {
  fill: #E27E32;
}
.slider-ctrl a:hover.slider-ctrl-right path {
  fill: #E27E32;
}
/* Slider-Pfeile: Halbtransparent auf Mobile */
.slider-ctrl-left svg, .slider-ctrl-right svg {
  opacity: 0.6;
}
/* Start-Weiteres-Bereich auf der Startseite */
.start-weiteres .section-headlines {
  margin-bottom: 84px;
}
.start-weiteres .infobox.weiss {
  background: none;
}
/* ==============================[ Zitate ]============================== */
/* Zitat-Container: Clearfix */
.zitat-wrap.infobox:after {
  content: "";
  display: block;
  clear: both;
}
/* Zitat-Überschrift: Handschrift-Stil */
.zitat-ueberschrift {
  font-family: "amatic bold", "sans-serif";
  font-weight: normal;
  text-transform: uppercase;
  white-space: normal;
  font-size: 33px;
  font-size: 3.3rem;
  line-height: 32px;
  line-height: 3.2rem;
  letter-spacing: 0.65px;
  margin-bottom: 16px;
}
/* Zitat-Bild: Links gefloatet mit Abstand */
.zitat-bild {
  position: relative;
  float: left;
  margin: 0 24px 12px 0;
  width: calc(100% / 3);
  max-width: 250px;
}
/* Zitat-Text: Kursiv, füllt den verbleibenden Platz */
.zitat-text {
  font-family: "open-sans-italic";
  flex: 1;
}
.zitat-text h2 {
  margin-top: 0;
}
/* In 4-Spalten-Grids: Zitat-Bild volle Breite statt gefloatet */
.grid[cols="4"] .zitat-bild {
  float: none;
  width: 100%;
  margin: 0 0 24px;
}
/* ==============================[ Kacheln ]============================== */
/* Kachel-Varianten für das Ratgeber-/Blog-Grid.
   Auf Mobile: Alle Kacheln volle Breite untereinander. */
.kachel-quer, .kachel-hoch, .kachel-einfach {
  display: block;
  margin: 16px 0;
  float: none;
  width: 100%;
  height: auto;
}
.kachel-quer h3, .kachel-hoch h3, .kachel-einfach h3 {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.kachel-quer .ellipsis, .kachel-hoch .ellipsis, .kachel-einfach .ellipsis {
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 5;
  margin-top: 16px;
}
.teaser.kachel-einfach.ratgeber {
  padding: 36px 24px;
}
.kachel-einfach.ratgeber h3 {
  white-space: normal;
  text-overflow: unset;
  overflow: inherit;
}
/* ==============================[ Referenzübersicht ]============================== */
/* Container für den Referenz-Slider */
.section-referenzen {
  background: #E5E5E5;
  padding: 8px 0 0;
}
.referenzen-uebersicht-wrap {
  overflow: hidden;
  position: relative;
  padding: 60px 0 152px;
}
.referenzen-uebersicht-wrap ul {
  padding: 0;
  position: relative;
  list-style-type: none;
  white-space: nowrap;
  font-size: 0;
  line-height: 0;
  transition: transform 0.7s cubic-bezier(0.82, -0.27, 0.58, 1);
}
.referenzen-uebersicht-wrap ul li {
  display: inline-block;
  vertical-align: top;
  list-style: none;
  padding: 0;
}
.referenzen-uebersicht-wrap p {
  font-size: 18px;
  line-height: 30px;
  white-space: normal;
}
.referenzen-uebersicht-wrap img {
  max-width: 678px;
  margin: 0 auto;
}
.referenzen-uebersicht-wrap .text-link {
  background-color: rgba(255, 255, 255, 0.7);
}
/* ==============================[ Referenzen ]============================== */
/* Monitor-Parallax: Scrollende Website-Vorschau in einem Bildschirm-Mockup */
.monitor-parallax-image {
  position: relative;
  text-align: right;
}
.monitor-parallax-image > div, .monitor-parallax-image > a > div {
  position: absolute;
  width: 90%;
  top: 5%;
  right: 5%;
  height: 44%;
  overflow-x: hidden;
  overflow-y: scroll;
}
.monitor-parallax-image > a {
  background-color: transparent;
  padding: 0;
  border-radius: 0;
  display: block;
}
.monitor-parallax-text {
  max-width: 616px;
}
.monitor-parallax-text h2:first-child, .monitor-parallax-text h3:first-child {
  margin-top: -10px;
}
/* Unternehmens-Launch: Infos zum Referenzprojekt */
.monitor-parallax-image .referenz-unternehmenslaunch {
  position: relative;
  top: 0;
  left: 0;
  text-align: left;
  margin: 0 0 0 auto;
  overflow: auto;
  width: 100%;
  max-width: 600px;
  height: auto;
}
.monitor-parallax-image .referenz-unternehmenslaunch p {
  margin: 8px 0;
  padding-left: 32px;
  position: relative;
}
.referenz-unternehmensinfos p {
  margin: 8px 0;
  padding-left: 32px;
  position: relative;
}
/* ---------- Info-Icons ---------- */
/* Icons vor Referenz-Infos (Launch, Desktop, Info, Kunde) */
.icon-launch:before, .icon-desktop:before, .icon-info:before, .icon-kunde:before {
  content: "";
  width: 24px;
  height: 24px;
  display: inline-block;
  top: 5px;
  left: 0;
  position: absolute;
}
.icon-launch:before {
  background: url("/inc/img/icon-launch.svg") no-repeat center center;
}
.icon-desktop:before {
  background: url("/inc/img/icon-desktop.svg") no-repeat center center;
}
.icon-info:before {
  background: url("/inc/img/icon-info.svg") no-repeat center center;
}
.icon-kunde:before {
  background: url("/inc/img/icon-kunde.svg") no-repeat center center;
}
/* ==============================[ Sternenlinie ]============================== */
/* SVG-Sternenlinie: Gestrichelte Linie mit Sternen (nur ab Desktop sichtbar) */
.svg-stars-line {
  display: none;
  position: absolute;
  top: 104px;
  left: 0;
}
.svg-stars-line .st1 {
  stroke: #d3d3d3;
  stroke-width: 3;
  stroke-dasharray: 6;
  stroke-dashoffset: 2530.5004882813;
  shape-rendering: geometricPrecision;
  fill: none;
}
/* ==============================[ Alle Geräte ]============================== */
/* Container für die Geräte-Darstellung (iMac, MacBook, iPad, iPhone) */
.referenz-container {
  width: 100%;
  height: 340px;
  overflow: hidden;
  position: relative;
}
.referenz-container a {
  background: none;
  border-radius: 0;
  padding: 0;
}
.referenz-container picture {
  position: unset;
}
/* iMac: Rechts positioniert, fast volle Höhe */
.referenz-container .referenz-mac {
  width: auto;
  height: 94%;
  position: absolute;
  right: -18%;
  top: 0%;
}
/* MacBook: Links positioniert */
.referenz-container .referenz-macbook {
  width: auto;
  height: 60%;
  position: absolute;
  left: -12%;
  bottom: 0%;
}
/* iPad und iPhone: Auf Mobile ausgeblendet */
.referenz-container .referenz-ipad {
  display: none;
}
.referenz-container .referenz-iphone {
  display: none;
}
/* ------------[ Parallax-Animationen alle Geräte ]------------ */
.scroll-container-mac {
  transform: translateX(calc((var(--onscroll-fraction) - 0.5) * +24%));
  transform-origin: center center;
}
.scroll-container-macbook {
  transform: translateX(calc((var(--onscroll-fraction) - 0.6) * -60%));
  transform-origin: center center;
}
/* ==============================[ Banner fixed Seitenbildschirm ]============================== */
/* Kleines fixiertes Banner am rechten Bildschirmrand */
.banner-side {
  position: fixed;
  bottom: 16px;
  right: 16px;
  width: 80px;
  height: auto;
  z-index: 2;
  border: 1px solid #e2e2e2;
  background-color: #fff;
  border-radius: 4px;
}
.banner-side > a {
  display: block;
  background: none;
  padding: 0;
  overflow: hidden;
  transition: all 0.2s ease-out;
}
/* ==============================[ Footer ]============================== */
footer {
  clear: both;
  max-width: 2560px;
  margin: 0 auto;
}
/* Footer Call-to-Action: Großer Bereich mit Hintergrundbild und
   klickbaren Kacheln für Kontaktmöglichkeiten */
.footer-call-to-action {
  background-image: url("/inc/img/footer-haus-s.jpg");
  background-repeat: no-repeat;
  background-position: top 54px center;
  background-size: cover;
  position: relative;
  padding-bottom: 100%;
  padding-top: 30px;
  height: 100%;
  margin: 0;
  /* Dekorativer Zackenpfeil unter den CTA-Kacheln */
  /* CTA-Kachel Hover: Weißer Hintergrund, Schatten, Pfeil-Animation */
}
.footer-call-to-action .line-crack {
  background-size: 200%;
  background-position: center top;
  padding: 54px 16px 0;
}
.footer-call-to-action .grid > div {
  max-width: 400px;
  position: relative;
  left: 0;
  padding: 32px;
  transition: all 0.2s ease-in-out;
  border-radius: 4px;
  border: 2px solid #DED8D0;
}
.footer-call-to-action h3 {
  margin-bottom: 24px;
  margin-top: 0;
}
.footer-call-to-action h3 a {
  color: #E27E32;
  background-color: transparent;
  position: relative;
  display: block;
  padding: 12px 0 12px 64px;
  background: url("/inc/img/buttons/btn-cta.svg") no-repeat left center;
}
.footer-call-to-action h3 a:after, .footer-call-to-action h3 a:before {
  content: "";
  display: inline-block;
  background-image: url("/inc/img/buttons/btn-arrow-right.svg");
  background-repeat: no-repeat;
  position: absolute;
  left: 17px;
  top: 50%;
  transform: translate(2px, -50%);
  width: 12px;
  height: 24px;
  transition: all 0.2s ease;
}
.footer-call-to-action p {
  margin-bottom: 0;
}
.footer-call-to-action .zackenpfeil {
  position: absolute;
  bottom: -114px;
  left: 60%;
  transform: translate(-50%, 0);
}
.footer-call-to-action .clickbox:hover {
  background-color: #fff;
  box-shadow: 0 0 6px rgba(0, 0, 0, 0.2);
}
.footer-call-to-action .clickbox:hover a {
  color: #E27E32;
}
.footer-call-to-action .clickbox:hover a:before {
  transform: translate(6px, -50%);
}
.footer-call-to-action .clickbox:hover a:after {
  transform: translate(-2px, -50%);
}
.footer-call-to-action .clickbox:hover .zackenpfeil polygon {
  transition: all 0.2s ease;
  transition-delay: 0.1s;
  fill: #E27E32;
}
.footer-call-to-action .clickbox:hover.no-cta {
  background-position: top center;
}
.footer-call-to-action .clickbox:hover .clickbox:after {
  content: url("/inc/img/zackenpfeil.svg");
  width: 127px;
  height: 114px;
  display: inline-block;
  position: absolute;
  left: 50%;
  bottom: -134px;
}
/* Footer-Info: Dunkler Bereich mit Kontaktdaten */
.footer-info {
  background-color: #94826A;
  background-image: url("/inc/img/footer-overlay-wasserfarben.png");
  background-position: center;
  background-size: cover;
  padding: 40px 0;
  color: #fff;
  text-align: center;
}
.footer-info a {
  color: #fff;
  display: inline-block;
  padding: 0;
  background: none;
}
.footer-info a:hover {
  color: #DED8D0;
}
.footer-info .tab {
  width: auto;
  float: none;
  display: inline-block;
}
/* Footer-Kontakt: Auf Mobile zentriert (ab Tablet rechtsbündig) */
.footer-contact {
  text-align: center;
}
/* Footer-Event: Zentrierter Bereich für Veranstaltungshinweise */
.footer-event {
  text-align: center;
}
.footer-event a {
  text-decoration: none;
}
.footer-event > a {
  padding-bottom: 12px;
}
.footer-event > img {
  max-width: 368px;
  width: 100%;
}
.footer-event img {
  margin: 6px auto;
}
/* Social Media Icons */
.social-media {
  font-size: 0;
  line-height: normal;
}
.social-media a:hover {
  opacity: 0.65;
}
.social-media img {
  margin: 6px;
  display: inline-block;
  width: 35px;
  height: auto;
}
/* ==============================[ Responsive Sonderfälle ]============================== */
/* Sehr kleine Viewports (< 500px) */
@media screen and (max-width: 500px) {
  /* Zitat-Bild: Volle Breite */
  /* Monitor-Parallax: Etwas weniger Höhe */
  .zitat-bild {
    float: none;
    width: 100%;
    margin: 0 0 24px;
  }
  .monitor-parallax-image > div, .monitor-parallax-image > a > div {
    height: 42%;
  }
}
@media screen and (min-width: 680px) {
  /* ==========================================================================
   MIDDLE BREAKPOINT (ab $break-m / 680px)
   Überschreibt die Mobile-Basis-Styles aus _small.scss für Tablets.
   Jeder Abschnitt entspricht dem gleichnamigen Abschnitt in _small.scss,
   damit Änderungen pro Breakpoint nachvollziehbar bleiben.
   ========================================================================== */
  /* ==============================[ Allgemein ]============================== */
  /* Debug-Label: Zeigt "M" für Medium-Viewport */
  body:after {
    content: "M";
  }
  /* Platz für den fixierten Footer reservieren */
  #wrap {
    padding-bottom: 525px;
  }
  /* Hauptinhalt über dem fixierten Footer, mit Schatten zur Abgrenzung */
  #main {
    z-index: 2;
    position: relative;
    background-color: #fff;
    box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.3);
  }
  /* ==============================[ Formate für Sektionen ]============================== */
  /* Mehr vertikaler Abstand zwischen Sektionen als auf Mobile */
  article section {
    margin: 96px 0;
  }
  /* ==============================[ Klassen ]============================== */
  /* Fixe Breakpoint-Container: Breiter als auf Mobile */
  .inner-fix-breakpoints {
    max-width: 680px;
  }
  /* ==============================[ Wasserfarbkante ]============================== */
  /* ==============================[ Trenner ]============================== */
  /* ---------- Berge ---------- */
  /* Berg-Trenner: Position angepasst für breiteren Viewport */
  .line-berg {
    background-position: right 28% bottom -1px, bottom;
  }
  /* ---------- Crack ---------- */
  /* Riss-Trenner: Natürliche Größe statt skaliert */
  .line-crack {
    background-size: inherit;
  }
  /* ==============================[ Header ]============================== */
  /* Mehr Padding oben im Header */
  header {
    padding: 8px 0 0;
  }
  /* ---------- Logo ---------- */
  /* Logo größer als auf Mobile */
  header a.logo img {
    width: 160px;
  }
  /* ==============================[ Navigationen ]============================== */
  /* Navigation: Höher positioniert wegen größerem Header */
  nav.mainnav {
    top: 72px;
    height: calc(100vh - 72px);
  }
  /* ==============================[ Keyvisual ]============================== */
  /* Keyvisual: Größere Mindesthöhe auf Tablet */
  .keyvisual {
    min-height: 540px;
  }
  /* Startseite: Keyvisual fast volle Viewporthöhe */
  #home .keyvisual {
    height: 90vh;
  }
  #home .keyvisual .pic {
    height: 100vh;
  }
  /* Ganzseitiges Hintergrundbild: Höher auf Tablet */
  .col-12-bg-image {
    height: 350px;
  }
  /* Text-Overlay auf Hintergrundbildern: Positioniert über dem Bild */
  .col-12-bg-text {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: block;
  }
  .col-12-bg-text > div {
    width: 100%;
    padding: 0 16px;
  }
  /* ---------- Slogan auf Keyvisual ---------- */
  /* Slogan: Weiter nach rechts und größere Schrift */
  .slogan {
    left: 50%;
    transform: translate(0, -30%);
  }
  .slogan span {
    padding: 8px 24px;
    font-size: 40px;
  }
  .slogan span:nth-child(2) {
    left: -48px;
  }
  /* ==============================[ Inline-Elemente ]============================== */
  /* ==============================[ Überschriften ]============================== */
  /* h2: Größer auf Tablet */
  h2 {
    font-size: 4.2rem;
    line-height: 6rem;
    margin: 4.8rem 0 3.6rem;
  }
  /* ==============================[ Verlinkungen ]============================== */
  /* Buttons: Mehr Padding links auf Tablet */
  .button {
    padding: 10px 78px 10px 24px;
  }
  /* ==============================[ Sonderelemente ]============================== */
  /* ==============================[ Infobox ]============================== */
  /* Infobox: Mehr Innenabstand auf Tablet */
  .infobox {
    padding: 48px 48px 24px;
  }
  .infobox.rahmen {
    padding: 46px 48px 22px;
    background-color: #fff;
    border: 2px solid #DED8D0;
  }
  /* ==============================[ Bildergallerie ]============================== */
  /* Galerie: 2 Bilder nebeneinander */
  .image-gallery li {
    float: left;
    margin-right: 24px;
    width: calc(50% - 12px);
  }
  .image-gallery li:nth-child(2n) {
    margin-right: 0;
  }
  /* ==============================[ Teaser ]============================== */
  /* Teaser: Mehr Innenabstand */
  .teaser.clickbox {
    padding: 48px;
  }
  /* Flex-Teaser: Seitliche Abstände */
  .teaser-flex .teaser {
    margin: 0 12px 24px 12px;
  }
  /* 2-spaltige Teaser-Reihe */
  .teaser-flex.teaser-cols2 .teaser {
    width: calc(50% - 24px);
  }
  /* 3-spaltige Teaser-Reihe */
  .teaser-flex.teaser-cols3 .teaser {
    width: calc((100% / 3) - 24px);
  }
  /* 1-spaltige Teaser-Reihe (volle Breite) */
  .teaser-flex.teaser-cols1 .teaser {
    width: 100%;
  }
  /* ==============================[ Bild-Text Element ]============================== */
  /* Bild-Text-Kombinationen: Halbe oder Drittel-Breite mit Umfluss */
  .bild-text.halb {
    width: 50%;
  }
  .bild-text.drittel {
    width: calc(100% / 3);
  }
  .bild-text.links {
    float: left;
    margin: 0 24px 12px 0;
  }
  .bild-text.rechts {
    float: right;
    margin: 0 0 12px 24px;
  }
  /* ==============================[ Banner fixed Seitenbildschirm ]============================== */
  /* ==============================[ Slider ]============================== */
  /* Slider-Navigation: Vertikal zentriert */
  .slider-ctrl a {
    top: 50%;
    transform: translateY(-50%);
  }
  /* ==============================[ Zitate ]============================== */
  /* Zitat-Überschrift: Mehr Abstand oben */
  .inner p:first-child.zitat-ueberschrift {
    margin-top: 48px;
  }
  /* In Infoboxen: Kein Extra-Abstand */
  .inner .infobox p:first-child.zitat-ueberschrift {
    margin-top: 0;
  }
  /* Zitat-Bild: Volle Breite (wird erst ab Large gefloatet) */
  .zitat-bild {
    float: none;
    width: 100%;
    margin: 0 0 24px;
  }
  /* Ausnahme: In 1-Spalten und 3-Spalten-Grids wird das Bild gefloatet */
  .grid[cols="1"] > div:first-child .zitat-bild, .grid[cols="3"] .zitat-bild {
    float: left;
    margin: 0 48px 12px 0;
    width: calc(100% / 3);
  }
  /* ==============================[ Referenzübersicht ]============================== */
  /* Referenz-Grid: Auf Tablet einspaltig statt zweispaltig */
  .section-referenzen .grid[cols="2"] {
    grid-template-columns: 1fr;
  }
  /* ---------- Info-Icons ---------- */
  /* Negativer Margin gleicht das Padding der Icons aus */
  .referenz-unternehmensinfos p.icon-info {
    margin-left: -32px;
  }
  /* ==============================[ Referenzen ]============================== */
  /* Monitor-Parallax: Größere Abmessungen auf Tablet */
  .monitor-parallax-image > div, .monitor-parallax-image > a > div {
    width: 264px;
    top: 16px;
    right: 12px;
    height: 144px;
  }
  .monitor-parallax-pic {
    width: 288px;
    margin: 0 0 0 auto;
  }
  /* ==============================[ Alle Geräte ]============================== */
  /* Geräte-Container: Größer, Overflow sichtbar für herausragende Elemente */
  .referenz-container {
    height: 520px;
    overflow: unset;
  }
  /* iMac: Zentriert, prozentuale Breite */
  .referenz-container .referenz-mac {
    width: 72%;
    height: auto;
    right: auto;
    left: 14%;
  }
  /* MacBook: Links positioniert */
  .referenz-container .referenz-macbook {
    width: 54%;
    height: auto;
    left: -6%;
  }
  /* iPad: Auf Tablet sichtbar (auf Mobile ausgeblendet) */
  .referenz-container .referenz-ipad {
    display: block;
    width: 28%;
    right: 0%;
    position: absolute;
    bottom: 6%;
  }
  /* ------------[ Parallax-Animationen alle Geräte ]------------ */
  /* Kubische Geschwindigkeitskurve für natürlichere Parallax-Bewegung */
  .observe-scroll-fraction {
    --onscroll-scaled: calc((var(--onscroll-fraction) - 0.5) * 2);
    --onscroll-velocity: calc(var(--onscroll-scaled) * var(--onscroll-scaled) * var(--onscroll-scaled));
    --onscroll-fraction-rescaled: calc((var(--onscroll-velocity)/2) + 0.5);
  }
  .scroll-container-mac {
    transform: translateX(calc((var(--onscroll-fraction-rescaled) - 0.5) * -18%));
  }
  .scroll-container-macbook {
    transform: translateX(calc((var(--onscroll-fraction-rescaled) - 0.6) * -100%));
  }
  .scroll-container-ipad {
    transform: translateX(calc((var(--onscroll-fraction-rescaled) - 0.8) * +100%));
    transform-origin: center center;
  }
  /* ==============================[ Footer ]============================== */
  /* Footer: Fixiert am unteren Bildschirmrand (Hauptinhalt scrollt darüber) */
  footer {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
  }
  /* Call-to-Action im Footer: Anderes Hintergrundbild, weniger Padding */
  .footer-call-to-action {
    background-image: url("/inc/img/footer-haus-m.jpg");
    background-position: top 108px center;
    padding-bottom: 45%;
  }
  .footer-call-to-action .line-crack {
    background-size: 100%;
    padding: 130px 0 0;
    margin-top: -24px;
  }
  .footer-call-to-action .grid > div {
    left: 12%;
  }
  /* Footer-Info: Linksbündig statt zentriert */
  .footer-info {
    text-align: left;
  }
  /* Kontakt-Bereich: Rechtsbündig */
  .footer-contact {
    text-align: right;
  }
  .social-media img {
    margin: 6px;
  }
}
@media screen and (min-width: 1024px) {
  /* ==========================================================================
   LARGE BREAKPOINT (ab $break-l / 1024px)
   Überschreibt die Tablet-Styles aus _middle.scss für Desktop.
   Ab diesem Breakpoint wird die Navigation horizontal statt als
   mobiles Hamburger-Menü dargestellt.
   ========================================================================== */
  /* ==============================[ Allgemein ]============================== */
  /* Debug-Label: Zeigt "L" für Large-Viewport */
  body:after {
    content: "L";
  }
  /* Weniger Platz für den Footer nötig (Footer ist kompakter auf Desktop) */
  #wrap {
    padding-bottom: 257px;
  }
  /* ==============================[ Formate für Sektionen ]============================== */
  /* ==============================[ Klassen ]============================== */
  /* Fixe Breakpoint-Container: Breiter auf Desktop */
  .inner-fix-breakpoints {
    max-width: 1024px;
  }
  /* ==============================[ Trenner ]============================== */
  /* Berg-Trenner: Natürliche Größe, mehr Padding */
  .line-berg {
    background-position: right 28% bottom, bottom;
    background-size: inherit;
    padding-bottom: 144px;
  }
  /* ==============================[ Header ]============================== */
  /* Header: Mehr Padding, leicht transparenter Hintergrund */
  header {
    padding: 12px 0 0;
    background-color: rgba(255, 255, 255, 0.8);
  }
  header .overlay-wasserfarben-bottom-after:after {
    opacity: 0.8;
  }
  /* ---------- Logo ---------- */
  /* Logo: Noch größer auf Desktop */
  header a.logo img {
    width: 180px;
  }
  /* ---------- Header beim Scrollen ---------- */
  /* Verkleinertes Logo beim Scrollen */
  header.small .flexbox img {
    width: 160px;
  }
  /* ==============================[ Navigationen ]============================== */
  /* Ab Desktop: Horizontale Navigation statt Hamburger-Menü */
  /* Keine Trennlinien mehr zwischen Nav-Einträgen */
  nav > ul > li {
    border-bottom: none;
  }
  nav.mainnav ul:after, ul.subnav ul:after {
    content: "";
    display: block;
    height: 0;
    clear: both;
  }
  /* Nav-Einträge: Inline nebeneinander */
  nav.mainnav ul li, ul.subnav ul li {
    display: inline-block;
    padding: 0;
  }
  /* Hauptnavigation: Relativ positioniert, immer sichtbar */
  nav.mainnav {
    position: relative;
    width: auto;
    height: auto;
    display: block;
    top: 0;
    background-color: transparent;
    overflow-x: visible;
    visibility: visible;
    opacity: 1;
  }
  nav.mainnav > ul {
    padding-bottom: 0;
  }
  /* Nav-Links: Dunkelblaue Schrift auf transparentem Hintergrund */
  nav.mainnav ul li a {
    display: block;
    padding: 12px 10px;
    margin: 0 2px;
    text-decoration: none;
    color: #233E59;
    font-size: 20px;
    text-transform: uppercase;
    border-radius: 4px;
  }
  /* Hover/Focus: Weiße Schrift auf blauem Hintergrund, oben abgerundet */
  nav.mainnav ul li a:hover, nav.mainnav ul li a:focus, nav.mainnav > ul > li:hover > a, nav.mainnav li:focus-within > a {
    color: #fff;
    background: #0582B9;
    outline: none;
    border-radius: 4px 4px 0 0;
  }
  /* ---------- Subnavigation ---------- */
  nav ul li:hover ul.subnav {
    display: block;
  }
  /* Aktiver Menüpunkt: Blauer Hintergrund */
  nav.mainnav ul li.current a, nav.mainnav ul li.current:hover a {
    color: #fff;
    background: #0582B9;
  }
  nav.mainnav li ul.subnav li.current .subnav2 li:hover > a {
    background-color: #00bdff;
  }
  nav.mainnav li.current ul.subnav2 li.current a {
    background-color: #00bdff;
  }
  /* Dropdown-Untermenü: Animiert eingeblendet */
  nav.mainnav li ul.subnav {
    position: absolute;
    margin: 0 2px;
    top: 52px;
    left: 0;
    height: 0;
    padding: 0;
    pointer-events: none;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.2s ease-in-out, visibility 0.2s;
    overflow: unset;
    width: auto;
    display: table;
    /* Einzelne Subnav-Einträge: Gestaffelte Animation */
    /* Äußere Padding für die Subnav-Liste */
  }
  nav.mainnav li ul.subnav li {
    display: block;
    background-color: #0582B9;
    opacity: 0;
    left: -12px;
    pointer-events: none;
    z-index: 1;
    /* Gestaffelte Einblend-Animation: Jedes Kind erscheint verzögert */
  }
  nav.mainnav li ul.subnav li:nth-child(1) {
    transition: all 0.2s ease 40ms;
    top: 0;
    position: relative;
  }
  nav.mainnav li ul.subnav li:nth-child(2) {
    left: 12px;
  }
  nav.mainnav li ul.subnav li:nth-child(2) {
    transition: all 0.2s ease 80ms;
    top: 0;
    position: relative;
  }
  nav.mainnav li ul.subnav li:nth-child(4) {
    left: 12px;
  }
  nav.mainnav li ul.subnav li:nth-child(3) {
    transition: all 0.2s ease 120ms;
    top: 0;
    position: relative;
  }
  nav.mainnav li ul.subnav li:nth-child(6) {
    left: 12px;
  }
  nav.mainnav li ul.subnav li:nth-child(4) {
    transition: all 0.2s ease 160ms;
    top: 0;
    position: relative;
  }
  nav.mainnav li ul.subnav li:nth-child(8) {
    left: 12px;
  }
  nav.mainnav li ul.subnav li:nth-child(5) {
    transition: all 0.2s ease 200ms;
    top: 0;
    position: relative;
  }
  nav.mainnav li ul.subnav li:nth-child(10) {
    left: 12px;
  }
  nav.mainnav li ul.subnav li:nth-child(6) {
    transition: all 0.2s ease 240ms;
    top: 0;
    position: relative;
  }
  nav.mainnav li ul.subnav li:nth-child(12) {
    left: 12px;
  }
  nav.mainnav li ul.subnav li:nth-child(7) {
    transition: all 0.2s ease 280ms;
    top: 0;
    position: relative;
  }
  nav.mainnav li ul.subnav li:nth-child(14) {
    left: 12px;
  }
  nav.mainnav li ul.subnav li:nth-child(8) {
    transition: all 0.2s ease 320ms;
    top: 0;
    position: relative;
  }
  nav.mainnav li ul.subnav li:nth-child(16) {
    left: 12px;
  }
  nav.mainnav li ul.subnav li:nth-child(9) {
    transition: all 0.2s ease 360ms;
    top: 0;
    position: relative;
  }
  nav.mainnav li ul.subnav li:nth-child(18) {
    left: 12px;
  }
  nav.mainnav li ul.subnav li:nth-child(10) {
    transition: all 0.2s ease 400ms;
    top: 0;
    position: relative;
  }
  nav.mainnav li ul.subnav li:nth-child(20) {
    left: 12px;
  }
  nav.mainnav li ul.subnav li a {
    color: #fff;
    text-transform: inherit;
    border-radius: 0;
    margin: 0;
  }
  nav.mainnav li ul.subnav li a:hover, nav.mainnav li ul.subnav li a:focus {
    background-color: #01ACE8;
  }
  nav.mainnav li ul.subnav li.current a {
    font-family: "formata light";
    color: #fff;
    background-color: #01ACE8;
  }
  nav.mainnav li ul.subnav > li {
    padding-left: 2px;
    padding-right: 2px;
  }
  nav.mainnav li ul.subnav > li:first-child {
    padding-top: 2px;
  }
  nav.mainnav li ul.subnav > li:last-child {
    padding-bottom: 2px;
  }
  /* Untermenü öffnen bei Hover oder Fokus */
  nav.mainnav li:focus-within > .subnav, nav.mainnav li:hover > .subnav {
    visibility: visible;
    opacity: 1;
    height: auto;
  }
  /* Letzter Menüpunkt: Subnav nach links statt rechts ausrichten */
  nav.mainnav li:last-child ul.subnav {
    left: auto;
    right: 0;
  }
  /* Subnav-Einträge bei Hover sichtbar und klickbar machen */
  nav.mainnav li:focus-within ul.subnav li, nav.mainnav li:hover ul.subnav li {
    opacity: 1;
    left: 0;
    pointer-events: all;
  }
  /* ---------- mobile Navigation ---------- */
  /* Hamburger-Menü auf Desktop ausblenden */
  #nav-toggle-wrap {
    display: none;
    flex: none;
  }
  /* ==============================[ Keyvisual ]============================== */
  /* Ganzseitiges Hintergrundbild: Noch höher */
  .col-12-bg-image {
    height: 450px;
  }
  /* ==============================[ Inline-Elemente ]============================== */
  /* ==============================[ Überschriften ]============================== */
  /* h1: Größer auf Desktop */
  h1 {
    font-size: 5.4rem;
    line-height: 7.2rem;
    margin: 4.8rem 0 6rem;
  }
  /* ==============================[ Teaser ]============================== */
  /* Teaser-Bild: Etwas kleiner auf Desktop (mehr Platz für Text) */
  .teaser-flex .teaser-image, .teaser .teaser-image {
    height: 150px;
  }
  /* ==============================[ Zitate ]============================== */
  /* Zitat-Bild: Immer links gefloatet auf Desktop */
  .zitat-bild {
    float: left;
    margin: 0 48px 12px 0;
    width: calc(100% / 3);
  }
  /* Ausnahme: In schmalen Grid-Spalten (4/12 oder 4/8) volle Breite */
  .grid[cols="4-8"] > div:first-child .zitat-bild, .grid[cols="8-4"] > div:last-child .zitat-bild {
    float: none;
    width: 100%;
    margin: 0 0 24px;
  }
  /* ==============================[ Kacheln ]============================== */
  /* Kachel-Grid: 6-Spalten-Layout mit automatischer Platzierung */
  .grid-kacheln {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-gap: 24px;
    grid-auto-flow: dense;
  }
  /* Alle Kachel-Typen: Standardmäßig 2 Spalten breit */
  .kachel-quer, .kachel-hoch, .kachel-einfach {
    display: inline-block;
    margin: 0;
    grid-column: span 2;
  }
  .kachel-einfach .ellipsis {
    -webkit-line-clamp: 6;
  }
  /* Referer-Kacheln: Feste kleine Höhe */
  .kachel-einfach.referer {
    height: 133px;
  }
  /* Quer-Kachel: 4 Spalten breit, Bild links / Text rechts */
  .kachel-quer {
    grid-column: span 4;
    /* Quer-Kachel ohne Bild: Volle Breite für Text */
  }
  .kachel-quer h3 {
    margin: 0 0 16px calc(48% + 29px);
  }
  .kachel-quer .teaser-image {
    display: inline-block;
    width: 48%;
    height: 239px;
    margin-right: 24px;
    background-position: left top;
  }
  .kachel-quer .ellipsis {
    display: inline-block;
    width: calc(51% - 24px);
    margin: 0;
    -webkit-line-clamp: 6;
  }
  .kachel-quer.noimage h3 {
    margin: 0 0 16px;
  }
  .kachel-quer.noimage .teaser-image {
    width: 0;
    display: inline-block;
    height: 0;
    margin-right: 0;
    background-position: left top;
  }
  .kachel-quer.noimage .ellipsis {
    display: block;
    width: 100%;
    margin: 0;
    -webkit-line-clamp: 6;
  }
  /* Hoch-Kachel: Erstreckt sich über 2 Zeilen */
  .kachel-hoch {
    grid-row: span 2;
  }
  .kachel-hoch .ellipsis {
    -webkit-line-clamp: 13;
  }
  .kachel-hoch.noimage {
    grid-row: span 2;
  }
  /* Auskommentierter Kachel-Code (ältere Float-basierte Variante als Referenz) */
  /*
.grid-kacheln {
	margin: 0 -12px;
}

.kachel-quer, .kachel-hoch, .kachel-einfach {
	display: inline-block;
	margin: 12px;
	float: left;
}

.kachel-einfach {
	width: calc((100% - 72px) / 3);
	height: 414px;

	.ellipsis {
		-webkit-line-clamp: 4;
	}
}

.kachel-einfach.noimage, .kachel-quer.noimage {
	height: 248px
}

.kachel-einfach.referer {
	height: 133px;
}

.kachel-quer {
	width: calc(((100% - 72px) / 3) * 2 + 24px);
	height: 414px;

	.ellipsis {
		-webkit-line-clamp: 4;
	}
}

.kachel-hoch {
	width: calc((100% - 72px) / 3);
	height: 852px;

	.ellipsis {
		-webkit-line-clamp: 13;
	}
}

.kachel-hoch.noimage {
	height: 520px
}
*/
  /* ==============================[ Referenzübersicht ]============================== */
  /* Referenz-Grid: Auf Desktop wieder zweispaltig */
  .section-referenzen .grid[cols="2"] {
    grid-template-columns: repeat(2, 1fr);
  }
  /* ==============================[ Referenzen ]============================== */
  /* Monitor-Parallax: Größer auf Desktop */
  .monitor-parallax-image > div, .monitor-parallax-image > a > div {
    width: 424px;
    height: 232px;
    top: 24px;
    right: 24px;
  }
  .monitor-parallax-pic {
    width: 472px;
    margin: 0 0 0 auto;
  }
  .referenz-unternehmenslaunch {
    width: 472px;
  }
  /* ==============================[ Sternenlinie ]============================== */
  /* Sternenlinie: Erst ab Desktop sichtbar */
  .svg-stars-line {
    display: block;
  }
  /* ==============================[ Alle Geräte ]============================== */
  /* Geräte-Container: Größer auf Desktop */
  .referenz-container {
    height: 680px;
  }
  .referenz-container .referenz-mac {
    width: 66%;
    left: 14%;
    top: 6%;
  }
  .referenz-container .referenz-macbook {
    width: 54%;
    left: 3%;
    bottom: 0;
  }
  .referenz-container .referenz-ipad {
    width: 26%;
    right: 6%;
    bottom: 9%;
  }
  /* iPhone: Erst ab Desktop sichtbar */
  .referenz-container .referenz-iphone {
    display: block;
    width: 12%;
    position: absolute;
    right: 24%;
    bottom: 3%;
  }
  /* ------------[ Parallax-Animationen alle Geräte ]------------ */
  .scroll-container-mac {
    transform: translateX(calc((var(--onscroll-fraction-rescaled) - 0.5) * -24%));
  }
  .scroll-container-macbook {
    transform: translateX(calc((var(--onscroll-fraction-rescaled) - 0.5) * -120%));
  }
  .scroll-container-ipad {
    transform: translateX(calc((var(--onscroll-fraction-rescaled) - 0.3) * +60%));
  }
  .scroll-container-iphone {
    transform: translateX(calc((var(--onscroll-fraction-rescaled) - 0.4) * +300%));
  }
  /* ==============================[ Footer ]============================== */
  /* Kein CTA-Bereich: Negativer Margin für nahtlosen Übergang */
  .no-cta {
    margin-top: -96px;
  }
  /* Footer-Absätze: Weniger Abstand */
  footer p {
    margin-bottom: 16px;
  }
  /* Footer-Event-Absätze: Kein zusätzlicher Abstand */
  footer .footer-event p {
    margin-bottom: 0;
  }
  /* Call-to-Action: Anderes Hintergrundbild für Desktop */
  .footer-call-to-action {
    background-image: url("/inc/img/footer-haus-l.jpg");
    background-position: center;
  }
  .footer-call-to-action .grid > div {
    left: 16%;
  }
}
@media screen and (min-width: 1280px) {
  /* ==========================================================================
   XLARGE BREAKPOINT (ab $break-xl / 1280px)
   Überschreibt die Desktop-Styles aus _large.scss für große Bildschirme.
   Enthält auch einen eingebetteten Media-Query für XXL (ab 1920px).
   ========================================================================== */
  /* ==============================[ Allgemein ]============================== */
  /* Debug-Label: Zeigt "XL" für Extra-Large-Viewport */
  body:after {
    content: "XL";
  }
  /* ==============================[ Formate für Sektionen ]============================== */
  /* Artikel: Mehr vertikales Padding auf großen Bildschirmen */
  article {
    padding: 34px 0;
  }
  /* Startseite: Weniger Padding oben */
  #home article {
    padding: 12px 0;
  }
  /* ==============================[ Klassen ]============================== */
  /* Fixe Breakpoint-Container: Maximale Breite erreicht */
  .inner-fix-breakpoints {
    max-width: 1280px;
    padding: 0;
  }
  /* ==============================[ Navigationen ]============================== */
  /* ---------- Logo ---------- */
  /* Logo: Maximale Größe auf XL */
  header a.logo img {
    width: 220px;
  }
  /* Nav-Links: Größer und mehr Abstand */
  nav.mainnav ul li a {
    padding: 12px 18px;
    margin: 0 2px;
    font-size: 24px;
  }
  /* Letzter Menüpunkt: Subnav wieder nach rechts öffnen (genug Platz) */
  nav.mainnav li:last-child ul.subnav {
    left: 0;
    right: auto;
  }
  /* ==============================[ Keyvisual ]============================== */
  /* ---------- Slogan auf Keyvisual ---------- */
  /* Slogan: Maximale Schriftgröße */
  .slogan span {
    padding: 0 24px;
    font-size: 60px;
  }
  /* ==============================[ Bildergallerie ]============================== */
  /* Galerie: 4 Bilder nebeneinander */
  .image-gallery li {
    width: calc(25% - 18px);
  }
  /* 2. Bild: Wieder Abstand rechts (war auf Tablet 0) */
  .image-gallery li:nth-child(2n) {
    margin-right: 24px;
  }
  /* Jedes 4. Bild: Kein Abstand rechts */
  .image-gallery li:nth-child(4n) {
    margin-right: 0;
  }
  /* ==============================[ Slider ]============================== */
  /* Slider-Pfeile: Volle Sichtbarkeit */
  .slider-ctrl svg {
    opacity: 1;
  }
  /* ==============================[ Zitate ]============================== */
  /* Zitat-Bild in schmalen Spalten: Jetzt genug Platz zum Floaten */
  .grid[cols="4-8"] > div:first-child .zitat-bild, .grid[cols="8-4"] > div:last-child .zitat-bild {
    float: left;
    margin: 0 48px 12px 0;
    width: calc(100% / 3);
  }
  /* ==============================[ Referenzübersicht ]============================== */
  /* Referenz-Bereich: Wiederholende Hintergrund-Linie */
  .section-referenzen {
    background: url("/inc/img/computer-bg.jpg") center bottom 14px;
    background-repeat: repeat-x;
  }
  /* Referenz-Slider: Weniger Padding unten */
  .referenzen-uebersicht-wrap {
    padding: 60px 0 80px;
  }
  .referenzen-uebersicht-wrap .text-link {
    background-color: #E5E5E5;
  }
  /* ==============================[ Referenzen ]============================== */
  /* Monitor-Parallax: Maximale Größe */
  .monitor-parallax-image > div, .monitor-parallax-image > a > div {
    width: 540px;
    height: 298px;
    right: 32px;
    top: 32px;
  }
  .monitor-parallax-pic {
    width: 600px;
  }
  .referenz-unternehmenslaunch {
    width: 600px;
  }
  /* ==============================[ Banner fixed Seitenbildschirm ]============================== */
  /* Banner: Ab XL absolut positioniert statt fixiert (neben dem Inhalt) */
  .banner-side {
    position: absolute;
    top: -14px;
    right: -100px;
    bottom: auto;
    width: 92px;
    border-radius: 0 0 4px 4px;
  }
  /* ==============================[ Alle Geräte ]============================== */
  /* Geräte-Container: Maximale Höhe */
  .referenz-container {
    height: 780px;
  }
  .referenz-container .referenz-mac {
    width: 72%;
    left: 12%;
    top: 0%;
  }
  .referenz-container .referenz-macbook {
    width: 52%;
    left: -4%;
    bottom: 0%;
  }
  .referenz-container .referenz-ipad {
    width: 26%;
    right: 6%;
    bottom: 6%;
  }
  .referenz-container .referenz-iphone {
    width: 12%;
    right: 30%;
    bottom: 3%;
  }
  /* ------------[ Parallax-Animationen alle Geräte ]------------ */
  /* ==============================[ Footer ]============================== */
  /* Call-to-Action: Anderes Hintergrundbild, weniger Höhe */
  .footer-call-to-action {
    background-image: url("/inc/img/footer-haus.jpg");
    background-position: top center;
    padding-bottom: 40%;
    height: 0;
  }
  /* ==============================[ XXL Media Query (ab 1920px) ]============================== */
  /* Zusätzliche Überschreibungen für sehr große Bildschirme (z.B. 1920px+).
   Betrifft vor allem die Leistungsberg-Ansicht und die Referenz-Darstellung. */
}
@media screen and (min-width: 1280px) and (min-width: 1920px) {
  /* Debug-Label: Zeigt "XXL" */
  /* Fixe Breakpoint-Container: Volle Breite nutzen */
  /* Slogan: Vertikal zentriert */
  /* Monitor-Parallax: Maximale Größe für XXL */
  body:after {
    content: "XXL";
  }
  .inner-fix-breakpoints {
    max-width: 1920px;
  }
  .slogan {
    transform: translate(0, -50%);
  }
  .monitor-parallax-image > div, .monitor-parallax-image > a > div {
    width: 774px;
    height: 432px;
    right: 44px;
    top: 44px;
  }
  .monitor-parallax-image > a {
    width: 100%;
  }
  .monitor-parallax-pic {
    width: 100%;
    margin: 0;
  }
}
/*! mhLightbox v3.2a Aysberg | (c) Michael Hochstetter | https://gitlab.com/michihochstetter/mhLightbox/raw/master/LICENSE !*/
a[mhlightbox] {
  position: relative;
  display: inline-block;
  /* Aysberg  */
  background-color: transparent;
  min-width: 32px;
  /* Aysberg  */
  min-height: 32px;
  text-decoration: underline;
  padding: 0;
  /* Aysberg  */
  outline: none;
  cursor: zoom-in;
  /* overflow: hidden; */
}
a:not([href^="http"]):not([href^="#"])[mhlightbox]:after {
  content: "+";
  position: absolute;
  bottom: 0px;
  right: 0px;
  width: 32px;
  height: 32px;
  line-height: 32px;
  font-size: 24px;
  background-color: #94826a;
  border-radius: 4px;
  /* Aysberg  */
  color: white;
  /* Aysberg  */
  text-align: center;
  z-index: 1;
}
#mhLightbox_container {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  background-color: rgba(255, 255, 255, 0.9);
  /* Aysberg  */
  cursor: zoom-out;
  z-index: 90000;
  box-sizing: border-box;
  transition: unset !important;
}
#mhLightbox_container * {
  box-sizing: border-box;
  font-family: sans-serif;
}
#mhLightbox_wrapper {
  position: relative;
  position: absolute;
  top: calc(50% - 30px);
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  min-width: 200px;
  min-height: 200px;
  text-align: center;
  cursor: default;
  z-index: 90001;
  -webkit-transition: width 0.3s, height 0.3s;
  -moz-transition: width 0.3s, height 0.3s;
  -o-transition: width 0.3s, height 0.3s;
  transition: width 0.3s, height 0.3s;
}
#mhLightbox_object {
  width: 100%;
  height: 100%;
  z-index: 90008;
  transition: unset !important;
  border: 1px solid #d4d4d4;
}
.overlay-wasserfarben-lightbox > img {
  mask-image: url(/inc/img/overlay-wasserfarbe-mask.png);
  /* Aysberg  */
  mask-size: 100% 100%;
  /* Aysberg  */
  mask-repeat: no-repeat;
  /* Aysberg  */
  -webkit-mask-image: url(/inc/img/overlay-wasserfarbe-mask.png);
  /* Aysberg  */
  -webkit-mask-size: 100% 100%;
  /* Aysberg  */
  -webkit-mask-repeat: no-repeat;
  /* Aysberg  */
}
#mhLightbox_panel {
  display: none;
  position: relative;
  position: absolute;
  bottom: 12px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
  padding: 0px 40px;
  min-width: 148px;
  max-width: 100%;
  height: 40px;
  background-color: #94826a;
  border-radius: 4px;
  /* Aysberg */
  box-shadow: 0 0px 6px rgba(255, 255, 255, 0.16), 0 0px 6px rgba(255, 255, 255, 0.23);
  /* Aysberg */
  overflow: hidden;
}
#mhLightbox_wrapper:hover #mhLightbox_panel {
  display: block !important;
}
#mhLightbox_object_subtitle {
  display: inline-block;
  width: calc(100% - 92px);
  line-height: 40px;
  text-align: left;
  color: white;
  font-size: 14px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  z-index: 90002;
}
#mhLightbox_object_subtitle a:before {
  content: "&raquo; ";
}
#mhLightbox_object_subtitle a {
  color: #fff;
  text-decoration: underline;
}
#mhLightbox_object_controls {
  display: inline-block;
  width: 92px;
}
#mhLightbox_object_count {
  float: left;
  width: 100%;
  height: 40px;
  line-height: 40px;
  text-align: center;
  color: white;
  font-size: 14px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  z-index: 90009;
}
#mhLightbox_close {
  position: absolute;
  top: 28px;
  right: 28px;
  width: 40px;
  height: 40px;
  background-color: #94826a;
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhCQzIxMUIyMUQwNzExRTZCMjVGRTZCQzQxQkFFM0YyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjhCQzIxMUIzMUQwNzExRTZCMjVGRTZCQzQxQkFFM0YyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OEJDMjExQjAxRDA3MTFFNkIyNUZFNkJDNDFCQUUzRjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OEJDMjExQjExRDA3MTFFNkIyNUZFNkJDNDFCQUUzRjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5upf4AAAACAUlEQVR42uyawUrDQBCG04Lxqg+gRwl9EQtp2qj4kKJexEPBNxFsTyIe9Gx6ibOweynZZJOdmd20M/BfTIn5vrTD7iSTuq6TY65pcuQlAkSACBABIkAEiAARIAJEgAgYXDPIPMC155DM+yxqN+iRGeQb8gfJPc/VJ0vIDvIFyXzOhQFvikuCgTflJQELnkvCPry3hKE94BJy1vD3U8iz/n1i1wryBDlpOHYOueDuAepOV3VzYX8TVpY7b/7XPEQP4JJABo8hgFpCSQmPJUBlQSCBHB5TALYEFnhsAVgS2OApBPhKuOGEpxKgUgyQwA5PKaCvhCDwKhPiR2OFXr2lDccqyJ0+9mBZ4anPlJA11QVSC+iSsFPXEAqeS4CqJeTRIiEJBc85EXqB3Os7Hg0890jMRQIrfIwzQVs/OAgBLn0g1Q2zODQBfZogq4RpYPjK0hOMhMXYBXTBly2NMdXjNVoJxAPMynF52/bZSm+wkjHtBfrAB5UQC7zLBopEQkzwrhLyWAVgwLNLiBGeVUKs8C7jNRQJMcNTjtxRBHDAk0ugehpEMcPrknDN+XT4A/LLvJ9/hdxals0/kC33UjjTz+VZprct375PyFWoJmgkcMHvS/CCxxqLZ/rlhDfm6ZF6MWsDeR/DVFjeExQBIkAEiAARIAJEgAgQASJABERV/wIMAH2QdHI24RMjAAAAAElFTkSuQmCC");
  /* Aysberg */
  background-size: 75%;
  background-repeat: no-repeat;
  background-position: center;
  border-radius: 4px;
  box-shadow: 0 0px 6px rgba(255, 255, 255, 0.16), 0 0px 6px rgba(255, 255, 255, 0.23);
  /* Aysberg */
  z-index: 90004;
  cursor: pointer;
}
#mhLightbox_prev, #mhLightbox_next {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 40px;
  height: 64px;
  cursor: pointer;
  background-color: #94826a;
  border-radius: 4px;
  z-index: 90002;
}
#mhLightbox_next {
  right: 0;
  left: unset;
}
#mhLightbox_prev.disabled, #mhLightbox_next.disabled {
  opacity: 0.2;
}
#mhLightbox_prev_icon, #mhLightbox_next_icon {
  width: 100%;
  height: 100%;
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: center;
  z-index: 90004;
}
#mhLightbox_prev_icon {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MjA1RjQ4MUQwNzExRTY4NTAxQTVFNzc4RDUwQzNEIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjQ2MjA1RjQ5MUQwNzExRTY4NTAxQTVFNzc4RDUwQzNEIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDYyMDVGNDYxRDA3MTFFNjg1MDFBNUU3NzhENTBDM0QiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NDYyMDVGNDcxRDA3MTFFNjg1MDFBNUU3NzhENTBDM0QiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5enN6LAAABd0lEQVR42uzbPU4DMRAFYHtFvz1Q0yBKxAk4AkpS0XAATgDOPTgC0CcNLVL63IB++yDMrLQUSMnGzcw8eZ+lpxQprPdllZ/xJuacw5RXEya+CEAAAhCAAAQgAAEIQAACEIAAIKuVPFhtdgJYfiW5kZxLkvqO/UAEJK3kM/9fSXtf5PImCA3YZb9vXWq+VzXg5V8lC8lPjQCl5b9r/BiEKO8FcKz8m1V5D4CS8nOr8tYAcOUtAY6Vf/cobwVQUn7mUd4CALq8NgDsZW8BUFp+V+s84G6kfP+KPyGU1wR4kSxHZhBryUXtE6E0gnAq+UBA0P4UgEew+B4AjWD1TRAWwfK3ACSC9a9BOASPeQAUgtdECAbBcyYIgeA9FXZHiCC3yvYQzwee20qugtJoHOVw9NCV0Enug+K5ANLZYBiOwf5WJ7nW3hPtdDgNj4+SW8lGe8MIerv8meTLYqPI/wtMfBGAAAQgAAEIQAACEIAABCAAAaa4fgUYAB87nyVLpBCsAAAAAElFTkSuQmCC");
}
#mhLightbox_next_icon {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzM0NTI4RTcxRDA3MTFFNjkyNjdEQTNCRTRFNTM0MTMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzM0NTI4RTYxRDA3MTFFNjkyNjdEQTNCRTRFNTM0MTMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDYyMDVGNDgxRDA3MTFFNjg1MDFBNUU3NzhENTBDM0QiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NDYyMDVGNDkxRDA3MTFFNjg1MDFBNUU3NzhENTBDM0QiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5vsBofAAABdUlEQVR42uzaMU4CQRgFYJZgzQG4AbZyACtrkSPgOXb1HPRovIEngI6E0HgAa7mA4/vNErVYYjP//zL7/uQ1bEHel4FlZqlSSoM+z3DQ8xGAAAQgAAEIQAACEIAABCAAAQgg70z6DDBDDkhDJ2AnQpkzQz7SzzQO7/nv5F4BV8grMv71Ws20EqqMZ4KGu0emHdcfGCByroBP5BZ577helw5g84ZcMyN43AWoEbxug7QInj+EKBG8fwrTIUTsBagQojZDNAiRu0EKhOjtcDgCw3lAKEJF9P+AS2SHjDqu3yOrEleAzQXyeKb8Fnkp9SNg5Z+Q+ZnyN8ixRIBRZPloACv/HFk+EoCifBRA+LKPBDiVv2Mo7w1AV94TwMqv2cp7AZzKL9jKewBQl8+9Fxi2tzra8rlXgD0XODCX/x6H529N+jsbZMzybNDrjRrG8hbP84Blu6WNX/akByLFfQkKQAACEIAABCAAAQhAAAIQgABY50uAAQAWH6wzIKSANQAAAABJRU5ErkJggg==");
}
#mhLightbox_wrapper_gallery {
  position: absolute;
  bottom: 0;
  left: 0;
  padding: 0 8px 8px 8px;
  width: 100%;
  height: 60px;
  line-height: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  z-index: 90003;
}
#mhLightbox_wrapper_gallery img {
  display: inline-block;
  margin-right: 12px;
  height: 100%;
  cursor: pointer;
  border: 1px solid transparent;
}
#mhLightbox_wrapper_gallery img:last-child {
  margin-right: 0px;
}
#mhLightbox_wrapper_gallery img:hover, #mhLightbox_wrapper_gallery img.active {
  border: 1px solid #fff;
}
#mhLightbox_wrapper_gallery img.active {
  transform: scale(0.75);
  opacity: 0.75;
}
@media (max-width: 1200px) {
  /*#mhLightbox_wrapper {
	top:3%;
	-webkit-transform:translateX(-50%);
	-moz-transform:translateX(-50%);
	-o-transform:translateX(-50%);
	-ms-transform:translateX(-50%);
	transform: translateX(-50%);
	}*/
  #mhLightbox_wrapper_gallery {
    height: 100px;
  }
  #mhLightbox_wrapper_gallery img {
    height: 80px;
  }
}
@media (max-width: 800px) {
  #mhLightbox_wrapper_gallery {
    height: 90px;
  }
  #mhLightbox_wrapper_gallery img {
    height: 70px;
  }
}
@media (max-width: 500px) {
  #mhLightbox_wrapper_gallery {
    height: 70px;
  }
  #mhLightbox_wrapper_gallery img {
    height: 50px;
  }
}
/* ==================== Akkordeon ==================== */
.accordion {
  margin: 1em 0;
}
.accordion .title h2, .accordion .title h3 {
  font-family: "Open-Sans", sans-serif;
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 30px;
  display: block;
  position: relative;
  margin: 0;
  padding: 9px 48px 9px 24px;
  color: #444;
  background: url("/inc/img/accordion/arrow-right.svg") no-repeat center right 24px;
}
.accordion .title {
  cursor: pointer;
  margin-bottom: 6px;
  background: #E5E5E5;
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  -ms-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  border-radius: 4px;
}
.accordion .title:hover {
  background: #DED8D0;
}
.accordion .acc-content {
  /* display: none; */
  background: #fff;
  margin-bottom: 6px;
  padding: 6px 24px;
}
.accordion p {
  margin: 0;
  padding: 0 0 12px;
}
.accordion .acc-content h1, .accordion .acc-content h2, .accordion .acc-content h3 {
  margin: 0;
  padding: 0.5em 0;
}
/* wenn Akkordeon offen */
.accordion .open {
  background: #DED8D0;
}
.accordion .open h2, .accordion .open h3 {
  background: url("/inc/img/accordion/arrow-down.svg") no-repeat center right 24px;
}
/* ==============================[ Slider-Basics ]============================== */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -khtml-user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}
.slick-list {
  position: relative;
  display: block;
  overflow: hidden;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}
.slick-slider .slick-track, .slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
.slick-track {
  position: relative;
  top: 0;
  left: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.slick-track:before, .slick-track:after {
  display: table;
  content: "";
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}
.slick-slide {
  display: none;
  float: left;
  height: 100%;
  min-height: 1px;
}
[dir="rtl"] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
  display: block;
}
.slick-prev.slick-disabled {
  display: none !important;
}
.slick-next.slick-disabled {
  display: none !important;
}
/* ==============================[ Slider-Inhalt ]============================== */
.slider {
  display: block;
  position: relative;
  max-width: 1280px;
  padding: 0;
  margin: 0 auto 42px;
}
.slider .slick-slide {
  box-sizing: border-box;
  overflow: hidden;
  padding: 0 36px;
}
.slider-item {
  width: 100%;
  height: 100%;
  padding: 0 18px;
  box-sizing: border-box;
  /* NEU hinzugefügt */
  margin: 0;
}
.slider-item .grid[cols="8-4"] > :nth-child(odd), .slider-item .grid[cols="4-8"] > :nth-child(even) {
  grid-column: auto / span 7;
}
.slider-item .grid[cols="8-4"] > :nth-child(even), .slider-item .grid[cols="4-8"] > :nth-child(odd) {
  grid-column: auto / span 5;
}
.slider-item .grid[cols="4-4-4"] > * {
  grid-column: auto / span 4;
}
.slider-item .margin-top {
  margin-top: 30px !important;
}
.slider-item .margin-top-small {
  margin-top: 30px !important;
}
#slider-center .slider-item {
  padding: 0 12px;
}
#slider-center .slider-item h2 {
  margin: 12px 0;
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}
#slider-center .slider-item p {
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}
#slider-center .slider-item img {
  opacity: 0.8;
  transition: opacity 0.3s ease-in-out;
}
#slider-center .slick-current img {
  opacity: 1;
  transition: opacity 0.3s ease-in-out;
}
#slider-center .slick-current h2, #slider-center .slick-current p {
  opacity: 1;
  transition: opacity 0.3s ease-in-out;
}
/* ----------- Pfeile vor/zurück ----------- */
/* Arrows */
.slick-prev, .slick-next {
  display: block;
  width: 36px;
  height: 36px;
  position: absolute;
  top: 42px;
  font-size: 0;
  background-image: url(/inc/img/buttons/btn-arrow-right.svg);
  background-size: 25px 12px;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #0077ae;
  border: none;
  padding: 12px;
  cursor: pointer;
  z-index: 2;
  transition: all 0.3s ease-in-out;
}
#slider-center .slick-prev, #slider-center .slick-next {
  top: auto;
  bottom: -42px;
}
.slick-prev {
  left: 0;
  transform: rotate(180deg);
}
.slick-next {
  right: 0;
}
#slider-center .slick-prev {
  right: 72px;
  left: auto;
  transform: rotate(180deg);
}
#slider-center .slick-next {
  right: 30px;
}
.slick-prev:hover, .slick-prev:focus, .slick-next:hover, .slick-next:focus {
  background-color: #01a6e0;
  outline: none;
  transition: all 0.3s ease-in-out;
}
/* ----------- Punkt (Navigation) ----------- */
.slick-dotted.slick-slider {
  margin-bottom: 30px;
}
.slick-dots {
  position: absolute;
  bottom: 24px;
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  list-style: none;
  text-align: center;
}
.slick-dots li {
  position: relative;
  display: inline-block;
  background: none;
  margin: 0;
  padding: 0;
  cursor: pointer;
}
.slick-dots li button {
  font-size: 0;
  line-height: 0;
  display: block;
  color: transparent;
  background: #444;
  border-radius: 100%;
  border: 0;
  padding: 6px;
  margin: 0 6px;
  cursor: pointer;
}
.slick-dots li button:hover, .slick-dots li button:focus, .slick-dots li button:active {
  opacity: 0.8;
}
/* ==============================[ Media Queries ]============================== */
@media (min-width: 680px) {
  .slick-prev, .slick-next {
    width: 42px;
    height: 42px;
    top: 60px;
    background-size: 25px 18px;
  }
  .slider .slick-slide {
    padding: 0 48px;
  }
  .slider-item .grid[cols="7-5"] > :nth-child(odd), .slider-item .grid[cols="5-7"] > :nth-child(even) {
    grid-column: auto / span 7;
  }
  .slider-item .grid[cols="7-5"] > :nth-child(even), .slider-item .grid[cols="5-7"] > :nth-child(odd) {
    grid-column: auto / span 5;
  }
  #slider-center .slider-item {
    padding: 18px;
  }
  #slider-center .slick-prev {
    right: 90px;
  }
  #slider-center .slick-next {
    right: 42px;
  }
}
@media (min-width: 900px) {
  .slider .slick-slide {
    padding: 0 66px;
  }
  .slider-item {
    padding: 0 18px;
  }
  .slick-prev {
    left: 0;
  }
  .slick-next {
    right: 0;
  }
}
@media (min-width: 1024px) {
  .slider-item .grid[cols="8-4"] > :nth-child(odd), .slider-item .grid[cols="4-8"] > :nth-child(even) {
    grid-column: auto / span 8;
  }
  .slider-item .grid[cols="8-4"] > :nth-child(even), .slider-item .grid[cols="4-8"] > :nth-child(odd) {
    grid-column: auto / span 4;
  }
  .slider-item .margin-top {
    margin-top: 60px !important;
  }
  .slick-prev, .slick-next {
    top: 120px;
  }
}
@media (min-width: 1300px) {
  #slider-center .slick-prev {
    right: 360px;
  }
  #slider-center .slick-next {
    right: 312px;
  }
}
.slick-initialized .slick-slide {
  display: block;
}
.slider .zitat-wrap {
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
}
.slider .zitat-text {
  word-break: break-word;
}
@media print {
  /* ==========================================================================
   DRUCK-STYLESHEET
   Wird nur beim Drucken geladen (@media print in main.scss).
   Optimiert die Seite für den Ausdruck: Entfernt Hintergründe, Schatten,
   Navigation, Slider und andere interaktive Elemente.
   ========================================================================== */
  /* ==========================================================================
   1. VARIABLEN
   Schriftarten, Farben und Seitenränder für den Druck.
   ========================================================================== */
  /* Basis */
  /* Schriftfamilien (Quelle: Bootstrap) */
  /* Druckfarben: Schwarz auf Weiß */
  /* Schriftgröße */
  /* Seitenränder */
  /* ==========================================================================
   2. LINK-QUELLEN ANZEIGEN
   Druckt die URL von externen Links in Klammern hinter dem Linktext aus.
   Bild-Links werden ausgenommen.
   ========================================================================== */
  a {
    /* Bild-Links: Keine URL anzeigen */
  }
  a[href^="http"]:after, a[href^="ftp"]:after {
    content: " (" attr(href) ")";
    font-size: 80%;
  }
  a[href$=".jpg"]:after, a[href$=".jpeg"]:after, a[href$=".gif"]:after, a[href$=".png"]:after {
    display: none;
  }
  /* ==========================================================================
   3. GLOBALE DRUCK-RESETS
   Entfernt Schatten, Hintergründe und setzt Box-Sizing.
   ========================================================================== */
  * {
    box-sizing: border-box;
  }
  /* Hintergründe und Schatten komplett entfernen */
  *, *:before, *:after, p:first-letter, div:first-letter, blockquote:first-letter, li:first-letter, p:first-line, div:first-line, blockquote:first-line, li:first-line {
    background: transparent !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  html {
    font-size: 13px;
    margin: 0;
    padding: 0;
  }
  body {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    background: #fff !important;
    color: #000 !important;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 13px;
    line-height: 1.5;
    margin: 0 auto;
    text-rendering: optimizeLegibility;
  }
  /* ==========================================================================
   4. TYPOGRAFIE
   Abstände und Größen für Fließtext, Überschriften und Listen.
   ========================================================================== */
  p, blockquote, table, ul, ol, dl {
    margin-bottom: 1.5rem;
    margin-top: 0;
  }
  p:last-child, ul:last-child, ol:last-child {
    margin-bottom: 0;
  }
  /* Überschriften */
  h1, h2, h3, h4, h5, h6 {
    color: #000;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    line-height: 1.2;
    margin-bottom: 0.75rem;
    margin-top: 0;
  }
  h1 {
    font-size: 22px;
  }
  h1 span {
    font-size: 22px;
  }
  h2 {
    font-size: 18px;
  }
  h2 span {
    font-size: 18px;
  }
  h3 {
    font-size: 16px;
  }
  h3 span {
    font-size: 16px;
  }
  /* Links: Schwarz und unterstrichen für den Druck */
  a, a:visited {
    color: #000;
    text-decoration: underline;
    word-wrap: break-word;
    padding: 0;
  }
  /* ==========================================================================
   5. TABELLEN
   ========================================================================== */
  table {
    border-collapse: collapse;
  }
  thead {
    display: table-header-group;
  }
  table, th, td {
    border-bottom: 1px solid #000;
  }
  td, th {
    padding: 6.5px 13px;
    page-break-inside: avoid;
  }
  /* ==========================================================================
   6. CODE-BLÖCKE
   ========================================================================== */
  code, pre, kbd {
    border: 1px solid #bbb;
    font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
    font-size: 85%;
  }
  code, kbd {
    padding: 3px;
  }
  pre {
    margin-bottom: 1.5rem;
    padding: 10px 12px;
  }
  pre code, pre kbd {
    border: 0;
  }
  /* ==========================================================================
   7. FORMULAR-PLATZHALTER AUSBLENDEN
   Placeholder-Texte sind im Druck nicht relevant.
   ========================================================================== */
  /* WebKit-Browser */
  ::-webkit-input-placeholder {
    color: transparent;
  }
  /* Mozilla Firefox 4–18 */
  :-moz-placeholder {
    color: transparent;
  }
  /* Mozilla Firefox 19+ */
  ::-moz-placeholder {
    color: transparent;
  }
  /* ==========================================================================
   8. BLOCKQUOTES UND SONSTIGE ELEMENTE
   ========================================================================== */
  blockquote {
    border: 0;
    border-left: 5px solid #bbb;
    margin-left: 1px;
    padding: 12px 1.5rem;
  }
  [dir="rtl"] blockquote {
    border-left: 0;
    border-right: 5px solid #bbb;
    margin-left: 0;
    margin-right: 1px;
  }
  blockquote:first-child {
    margin-top: 0;
  }
  blockquote p:last-child, blockquote ul:last-child, blockquote ol:last-child {
    margin-bottom: 0;
  }
  blockquote footer {
    display: block;
    font-size: 80%;
  }
  /* Bilder: Maximale Breite 200px im Druck */
  img {
    border: 0;
    display: block;
    max-width: 200px !important;
    vertical-align: middle;
  }
  hr {
    border: 0;
    border-bottom: 2px solid #bbb;
    height: 0;
    margin: 2.25rem 0;
    padding: 0;
  }
  dt {
    font-weight: bold;
  }
  dd {
    margin: 0;
    margin-bottom: 0.75rem;
  }
  abbr[title], acronym[title] {
    border: 0;
    text-decoration: none;
  }
  /* ==========================================================================
   9. SEITENSPEZIFISCHE DRUCK-ANPASSUNGEN
   Entfernt oder vereinfacht interaktive und dekorative Elemente,
   die im Ausdruck nicht benötigt werden.
   ========================================================================== */
  /* Header: Relativ statt fixiert, damit er mitgedruckt wird */
  header {
    position: relative;
  }
  /* Keyvisual: Im Druck ausblenden */
  .keyvisual {
    display: none;
  }
  /* Buttons: Vereinfacht, ohne Pseudo-Elemente */
  .button {
    padding: 8px 12px;
  }
  .button:after, .button:before {
    content: none;
  }
  /* Introtext: Auf Druckgröße reduziert */
  .intro-text {
    font-size: 13px;
    line-height: 1.5;
  }
  /* ==========================================================================
   10. GRID IM DRUCK
   Grids werden auf Inline-Block umgestellt, damit sie im Druck
   nebeneinander erscheinen.
   ========================================================================== */
  .grid[cols="3"], .grid[cols="2"] {
    grid-template-columns: none;
    display: inline-block;
  }
  .grid[cols="3"] > div, .grid[cols="2"] > div {
    display: inline-block;
    padding: 0 16px 16px 0;
    vertical-align: text-top;
  }
  .grid[cols="3"] > div {
    width: calc(100% / 3 - 16px);
  }
  .grid[cols="2"] > div {
    width: calc(100% / 2 - 16px);
  }
  .grid[cols="8-4"] {
    grid-template-areas: "div8 div8 div8 div8 div8 div8 div8 div8 div4 div4 div4 div4";
    grid-template-columns: repeat(12, 1fr);
  }
  .grid[cols="4"] {
    grid-gap: 16px;
  }
  /* ==========================================================================
   11. SEITEN-LAYOUT IM DRUCK
   Reduzierte Abstände und Vereinfachungen für verschiedene Sektionen.
   ========================================================================== */
  #rubrikeinstieg .first-section, #home .first-section {
    margin: 0;
  }
  /* Leistungsberge: Höhe automatisch, keine Pseudo-Elemente */
  .inner-fix-breakpoints {
    max-width: 1280px;
  }
  .image-leistung {
    height: auto;
  }
  .image-leistung:before, .image-leistung:after {
    content: none;
  }
  .leistungs-uebersicht-wrap {
    width: 100%;
    position: relative;
    padding: 0;
  }
  .leistungs-uebersicht-wrap li {
    position: relative;
    top: 0 !important;
    left: 0 !important;
    right: auto;
    bottom: auto;
    width: fit-content;
  }
  .leistungs-uebersicht-wrap li:before {
    content: none;
  }
  .leistungs-uebersicht-wrap li a {
    color: #000;
    padding: 0;
  }
  .leistungs-uebersicht-wrap li a:before, .leistungs-uebersicht-wrap li a:after {
    content: none;
  }
  /* Referenz-Slider: Alle Slides untereinander anzeigen */
  #referenz-slider, #referenz-slider li {
    width: 100% !important;
    display: block;
  }
  #referenz-slider img, #referenz-slider li img {
    width: 300px;
  }
  .referenzen-uebersicht-wrap {
    padding: 0;
  }
  .referenzen-uebersicht-wrap p {
    font-size: 13px;
    line-height: 1.5;
  }
  /* Slider-Steuerung ausblenden */
  .slider-ctrl {
    display: none;
  }
  /* Akkordeon: Alle Inhalte sichtbar */
  .accordion .acc-content {
    display: block !important;
    padding: 0;
  }
  .accordion .title h3, .accordion .title h2 {
    padding: 0;
    font-size: 18px;
  }
  /* Allgemeine Layout-Vereinfachungen */
  #wrap {
    min-height: auto;
  }
  article section {
    margin: 24px 0;
  }
  .start-weiteres .section-headlines {
    margin-bottom: 0;
  }
  section.sand-stripe, .line-crack, .line-berg, .start-weiteres {
    padding: 0;
  }
  #detailseite .first-section, #referenzseite .first-section {
    margin-top: 0;
  }
  /* Infoboxen: Kein Padding, schwarzer Text */
  .infobox {
    padding: 0;
  }
  .infobox.hgBlau, .infobox.hgTuerkis, .infobox.weiss h3 {
    color: #000;
  }
  /* Buttons und Vollbild-Bilder im Druck ausblenden */
  .button, section.col-12-bg-image {
    display: none;
  }
  .zitat-ueberschrift {
    font-size: 22px;
    line-height: 22px;
  }
  ul.listspace > li, ol.listspace > li {
    margin: 0 0 8px;
  }
  /* Footer Call-to-Action: Vereinfacht */
  .footer-call-to-action {
    padding: 0;
  }
  .footer-call-to-action .inner {
    padding-top: 24px;
  }
  .footer-call-to-action .clickbox a {
    color: #000;
    padding: 0;
  }
  .footer-call-to-action .clickbox a:before, .footer-call-to-action .clickbox a:after {
    content: none;
  }
  /* Teaser im Druck: Ohne Rahmen und Hover-Effekte */
  .teaser.clickbox {
    border: none;
    padding: 0;
  }
  .teaser.clickbox h3 a {
    text-decoration: none;
    color: #000;
  }
  .teaser.clickbox:hover:before, .teaser.clickbox:hover:after, .teaser.clickbox:hover {
    content: none;
    border: none;
  }
  /* Footer: Schwarzer Text */
  .footer-info, .footer-info a {
    color: #000;
  }
  /* Social Media und Event-Bilder ausblenden */
  .social-media, .footer-event img {
    display: none;
  }
  /* Animationen deaktivieren */
  .fade-in {
    opacity: 1;
    -webkit-transform: translate3d(0, 0px, 0);
    transform: translate3d(0, 0px, 0);
  }
}
