/*
Theme Name: GeneratePress Child
Theme URI: https://generatepress.com
Template: generatepress
Author: Tom Usborne
Author URI: https://tomusborne.com
Description: GeneratePress is a lightweight WordPress theme built with a focus on speed and usability. Performance is important to us, which is why a fresh GeneratePress install adds less than 10kb (gzipped) to your page size. We take full advantage of the block editor (Gutenberg), which gives you more control over creating your content. If you use page builders, GeneratePress is the right theme for you. It is completely compatible with all major page builders, including Beaver Builder and Elementor. Thanks to our emphasis on WordPress coding standards, we can boast full compatibility with all well-coded plugins, including WooCommerce. GeneratePress is fully responsive, uses valid HTML/CSS, and is translated into over 25 languages by our amazing community of users. A few of our many features include 60+ color controls, powerful dynamic typography, 5 navigation locations, 5 sidebar layouts, dropdown menus (click or hover), and 9 widget areas. Learn more and check out our powerful premium version at https://generatepress.com
Tags: two-columns,three-columns,one-column,right-sidebar,left-sidebar,footer-widgets,blog,e-commerce,flexible-header,full-width-template,buddypress,custom-header,custom-background,custom-menu,custom-colors,sticky-post,threaded-comments,translation-ready,rtl-language-support,featured-images,theme-options
Version: 3.5.1.1740481057
Updated: 2025-02-25 11:57:37

*/

/* 
Setzt die Standardschriftart für die gesamte Website. 
- 'IBM Plex Sans' ist die bevorzugte Schriftart.
- Falls 'IBM Plex Sans' nicht geladen werden kann, wird Arial als Fallback genutzt.
- Falls Arial nicht verfügbar ist, wird eine generische sans-serif-Schrift verwendet.
*/
body {
  font-family: 'roboto', Arial, sans-serif;
}

/* automatische Silbentrennung */
p {
    hyphens: auto;
}


/* Größe des Burger-Icons */
.mobile-menu-control-wrapper .menu-toggle {
    font-size: 50px;
}

/* Farbe der Linien im Burger-Icon */
.menu-toggle .gp-icon.icon-menu-bars svg path {
    fill: #e30613;
}

/* Hintergrundfarbe beim Öffnen */
.has-inline-mobile-toggle #site-navigation.toggled,
.mobile-menu-control-wrapper .menu-toggle {
    background-color: #fff;
}

/* nachfolgend: CTA PLZ Button Feld */

/* Container für PLZ-Feld und Button */
.plz-form-wrapper {
    display: flex; /* Elemente nebeneinander ausrichten */
    gap: 0.5rem; /* Kleiner Abstand zwischen den Elementen */
    align-items: center; /* Vertikale Ausrichtung */
    width: 100%; /* Sicherstellen, dass sie sich ausdehnen können */
}

/* PLZ-Feld und Button EXAKT gleich groß */
.plz-input,
.plz-button {
    width: 50%; /* Beide gleich breit */
    height: 2.65rem; /* Einheitliche Höhe */
    box-sizing: border-box; /* Stellt sicher, dass padding die Breite nicht verändert */
}

/* Eingabefeld */
.plz-input {
    background-color: #ffffff !important;
    color: #444f54 !important;
    border: 1px solid #1a1a18 !important; /* Feine Rahmenlinie */
    border-radius: 5px; /* Abgerundete Ecken */
    padding: 0 1rem; /* Innenabstand ausgleichen */
}

/* Button */
.plz-button {
    background-color: #e30613 !important;
    color: white !important;
	font-weight: bold !important; /* Macht den Text fett */
    border: none !important;
    border-radius: 5px;
    cursor: not-allowed !important;
    transition: background-color 0.3s ease;
    padding: 0; /* Kein extra Padding, da Höhe über height geregelt wird */
    display: flex;
    align-items: center; /* Text vertikal zentrieren */
    justify-content: center; /* Text horizontal zentrieren */
}

/* Stil für deaktivierten Button */
.plz-button[disabled] {
    background-color: #e30613 !important; /* Farbe für deaktivierten Button */
    cursor: not-allowed !important;
}

/* Stil beim Hover über einen aktivierten Button */
.plz-button:hover:not([disabled]) {
    background-color: #1a1a18 !important;
    cursor: pointer !important;
}

/* Responsive: Untereinander stapeln bei wenig Platz */
@media (max-width: 23.53rem) { /* 400px / 17px */
    .plz-form-wrapper {
        flex-direction: column; /* Stapelt Eingabefeld und Button übereinander */
        gap: 0.59rem; /* 10px / 17px */
    }

    .plz-input,
    .plz-button {
        width: 100% !important; /* Volle Breite */
        max-width: none; /* Breitenbeschränkung aufheben */
    }
}

/* Header Logo */
.header-image.is-logo-image {
  width: 100% !important;
  height: auto;
  max-width: 320px; /* Desktop-Standardgröße */
}

@media (max-width: 1024px) {
  .header-image.is-logo-image {
    max-width: 220px; /* Tablet */
  }
}

@media (max-width: 768px) {
  .header-image.is-logo-image {
    max-width: 160px; /* Mobil */
  }
}

/* Container des Videos */
.video-banner {
  width: 100%;
  height: 300px; /* gewünschte Höhe */
  overflow: hidden;
  position: relative;
}

/* Video selbst */
.video-banner video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%; /* <-- hier justierst du den sichtbaren Bereich */
  display: block;
}

/* Links nicht unterstrichen - nicht farbig */
h1 a.no-link-style,
h2 a.no-link-style,
h3 a.no-link-style,
h4 a.no-link-style,
h5 a.no-link-style,
h6 a.no-link-style {
  color: inherit !important;
  text-decoration: none !important;
  font-weight: inherit !important;
  background: none !important;
  box-shadow: none !important;
}

/* rote Linie unter Header -> siehe "Elements: rote Linie unter Header" */
.full-width-top-line {
    width: 100%;
    height: 1px;
    background-color: #e30613;
    margin: 0;
    position: relative;
    z-index: 10;
}

/* ========== Basis-Layout ========== */

/* Desktop-Variante (immer sichtbar) */
.floating-menu {
  display: flex !important;
  flex-direction: column !important;
  gap: 15px !important;
  position: fixed !important;
  top: 33% !important;
  right: 5px !important;
  transform: translateY(-50%) !important;
  align-items: flex-end !important; /* Alle Buttons rechts */
  z-index: 9999 !important;
}

/* Mobile-Variante (versteckt, wird per FAB-Menu getoggelt) */
.fab-container {
  display: none !important;
  position: fixed !important;
  bottom: 40px !important;
  right: 20px !important;
  z-index: 9999 !important;
}

@media (max-width: 1024px) {
  .floating-menu {
    display: none !important;
  }
  .fab-container {
    display: block !important;
  }
}

/* ========== Toggle-Button (Mobile) ========== */
.fab-toggle {
  width: 60px !important;
  height: 60px !important;
  border-radius: 50% !important;
  background-color: #e30613 !important;
  color: #fff !important;
  font-size: 32px !important;
  border: none !important;
  cursor: pointer !important;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
}

.fab-toggle .fab-icon {
  line-height: 1 !important;
  font-weight: bold !important;
  font-size: 32px !important;
  pointer-events: none !important;
  user-select: none !important;
}

/* ========== FAB Menu (Mobile) ========== */
.fab-menu {
  display: none !important;
  flex-direction: column !important;
  gap: 10px !important;
  margin-top: 10px !important;
  align-items: flex-end !important;
}

.fab-menu.show {
  display: flex !important;
}

/* ========== Allgemeine Floating-Button Styles ========== */
.floating-button {
  width: 60px !important;
  height: 60px !important;
  background-color: #ffffff !important;
  border: 1px solid #e30613 !important;
  border-radius: 10px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  position: relative !important;
  overflow: hidden !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 4px 6px rgba(0,0,0,0.1) !important;
  text-decoration: none !important;
  color: #e30613 !important;
}

.floating-button:hover {
  box-shadow: 0 6px 10px rgba(0,0,0,0.2) !important;
}

.floating-button object {
  width: 32px !important;
  height: 32px !important;
  pointer-events: none !important;
  margin: 0 auto !important;
  display: block !important;
}

.fab-label {
  font-size: 0.8em !important;
  font-weight: bold !important;
  font-family: sans-serif !important;
  line-height: 1 !important;
  pointer-events: none !important;
  user-select: none !important;
  text-decoration: none !important;
}

/* ========== Kontakt-Button (Telefon) ========== */

/* Geschlossener Zustand: Button bleibt 60×60, Icon wird absolut zentriert */
.contact-button {
  width: 60px !important;
  height: 60px !important;
  position: relative !important;
}

/* Icon: absolut zentriert im geschlossenen Zustand */
.contact-icon {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: 32px !important;
  height: 32px !important;
  transform: translate(-50%, -50%) !important;
  pointer-events: none !important;
  z-index: 1 !important;
}

/* Kontakt-Info: standardmäßig unsichtbar (nur der Link soll aktiv sein) */
.contact-info {
  display: none !important;
  position: absolute !important;
  top: 50% !important;
  left: 60px !important; /* erscheint rechts vom Icon */
  transform: translateY(-50%) !important;
  z-index: 2 !important;
  /* Deaktiviere Klicks auf diesen Container */
  pointer-events: none !important;
}

/* Im aktiven Zustand: Button erweitert sich, Icon rutscht nach links, Info erscheint */
.contact-button.active {
  width: 260px !important;
}

.contact-button.active .contact-icon {
  left: 24px !important; /* Icon rutscht nach links */
  transform: translateY(-50%) !important; /* X-Übersetzung entfällt */
}

.contact-button.active .contact-info {
  display: block !important;
  /* Aktivierung der Klickbarkeit nur für den Link innerhalb */
  pointer-events: auto !important;
}

/* Nur der Textlink (Telefonnummer) ist klickbar */
.contact-info a {
  display: inline-block !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  white-space: nowrap !important;
  pointer-events: auto !important;
}

/* Textstile */
.contact-label {
  font-size: 0.5em !important;
  margin: 0 !important;
}

.contact-number {
  font-size: 1em !important;
  color: #e30613 !important;
  font-weight: bold !important;
  margin: 0 !important;
}

/* ========== Spezifische Regel für den Mail-Button ========== */
.mail-button object {
  width: 40px !important;
  height: 40px !important;
}

