/* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

/* Reset */
*, *::before, *::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    background-color: #eef1f6;
}

/* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */
.Headercontainer {
    display: flex;
    justify-content: left;
    align-items: center;
    width: 80vw; /* Beibehalten der festen Breite */
    margin-left: 10vw; /* Zentrierung */
    height: 20vh; /* Höhe beibehalten */
    background-color: #ffffff;
    z-index: 1000;
    position: sticky; /* Fixiert oben */
    top:10px;


    box-shadow: 10px 0 10px -2px rgba(0, 0, 0, 0.2), /* Schatten rechts */
                -10px 0 10px -2px rgba(0, 0, 0, 0.2), /* Schatten links */
                0 -10px 10px -2px rgba(0, 0, 0, 0.2); /* Schatten oben */
    border-radius: 10px 10px 0 0;

    /* Animierbare Eigenschaften */
    transition: transform 0.7s ease, opacity 0.7s ease;
    transform: translateY(0);
    opacity: 1;
    visibility: visible; /* Standard: Sichtbar */

}

.small-rounded {
    transform: scale(0.9);
    border-radius: 10px; /* Ecken abrunden, Wert nach Geschmack anpassen */
}


.Headercontainer.hidden {
    transform: translateY(-100%);
    opacity: 0;

    /* Um sicherzustellen, dass das Element nach der Animation ausgeblendet bleibt */
    visibility: hidden;
}

header {
    width: 30vw;
    margin-left: 30px;
    margin-top: -51px;
    text-decoration: none;
}

header a{

    text-decoration: none;
    color:#003399;
}

.header-logo {
    width: 420px;
    height: auto;
    margin-left: auto;
    margin-right: -120px;
}

#Headline {
    margin-bottom: 0;
}

#SecondHeadline {
    font-size: 0.929rem;
    font-weight: 400;
    color: #003399;
    margin: 0;
}
#navbar {
    display: flex;
    justify-content: center; /* Zentriert die Liste horizontal */
    list-style: none;
    padding: 0;
    margin-left: -7vw;
    gap: 20px;
    width: 35vw;
    position: relative; /* Wichtig für Dropdown-Positionierung */
}

#navbar ul {
    list-style: none;
    display: flex;
    gap: 70px;
    padding: 0;
    margin: 0;
}

#navbar ul li {
    position: relative; /* Erforderlich, damit Dropdowns relativ zu diesem Element angezeigt werden */
}

#navbar ul li a {

    text-decoration: none;
    font-size: 18px;
    display: inline-block;
    color: #003399;
    font-weight: 800;
    padding: 10px; /* Fügt etwas Platz hinzu */
}

#navbar ul li a:hover {
    text-decoration: underline;
}

#navbar li:last-child {
    margin-right: 0;
}

/* Dropdown-Styles */
#navbar ul #DropdownÜberUns {
    display: none;
    position: absolute;
    top: 100%;
    background-color: #f4f4f4;
    min-width: 200px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
    border-radius: 4px;
    z-index: 1000;
    text-align: left;
}

#navbar ul #DropdownProdukte {
    display: none; /* Standardmäßig Dropdown-Menüs verstecken */
    position: absolute;
    top: 100%; /* Direkt unter dem Hauptmenü */
    left: 0;
    background-color: #f4f4f4; /* Hintergrundfarbe für Dropdown */
    min-width: 200px; /* Mindestbreite */
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2); /* Leichter Schatten */
    border-radius: 4px; /* Abgerundete Ecken */
    z-index: 1000;
    text-align: left; /* Text linksbündig im Dropdown */
}
#navbar ul #DropdownLösungen {
    display: none; /* Standardmäßig Dropdown-Menüs verstecken */
    position: absolute;
    top: 100%; /* Direkt unter dem Hauptmenü */
    left: 0;
    background-color: #f4f4f4; /* Hintergrundfarbe für Dropdown */
    min-width: 200px; /* Mindestbreite */
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2); /* Leichter Schatten */
    border-radius: 4px; /* Abgerundete Ecken */
    z-index: 1000;
    text-align: left; /* Text linksbündig im Dropdown */
}

#navbar ul #DropdownKontakt {
    display: none; /* Standardmäßig Dropdown-Menüs verstecken */
    position: absolute;
    top: 100%; /* Direkt unter dem Hauptmenü */
    left: 0;
    background-color: #f4f4f4; /* Hintergrundfarbe für Dropdown */
    min-width: 200px; /* Mindestbreite */
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2); /* Leichter Schatten */
    border-radius: 4px; /* Abgerundete Ecken */
    z-index: 1000;
    text-align: left; /* Text linksbündig im Dropdown */
}

#navbar .dropdown li a {
    color: #003399; /* Gleiche Farbe wie im Hauptmenü */
    padding: 10px 20px;
    text-decoration: none;
    display: block;
    transition: background-color 0.3s;
    font-size: 14px;
}

#navbar .dropdown li a:hover {
    background-color: rgba(0, 51, 153, 0.1);
}

.shadow-box {
    box-shadow: 0 0 20px rgba(0,0,0,0.3);
    /* weitere Styles */
  }
  
  .no-shadow {
    box-shadow: none !important;
  }



/* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */


#main {
    opacity: 0;                  /* Anfangszustand: Unsichtbar */
    transition: opacity 1s ease;
    font-family: Arial, sans-serif;
    font-style: normal;
    gap: 20px; /* Abstand zwischen Bild und Text */
    height: auto;
    width: 80vw;
    color: #003399;
    overflow-wrap: break-word;
    margin-left: 10vw;
    background-color: #ffffff;
    box-shadow: 10px 0 10px -2px rgba(0, 0, 0, 0.2), /* Schatten rechts */
                -10px 0 10px -2px rgba(0, 0, 0, 0.2), /* Schatten links */
                0 10px 10px -2px rgba(0, 0, 0, 0.2); /* Schatten unten */
    border-radius: 0;

}

#main.fade-in {
    opacity: 1;                  /* Zielzustand: Voll sichtbar */


}




  
#MainImageContainer {
    width: 80vw; /* Breite des Ausschnitts */
    height: 40vh; /* Höhe des Ausschnitts */
    overflow: hidden; /* Versteckt den Rest des Bildes */
    position: relative;
    margin-bottom: 0.5vw;
    /* border: 1px black solid; */
}

#MainImg {
    position: absolute; /* Ermöglicht Verschieben des Bildes */
    top: -170px; /* Anfangsposition */
    width: 100%; /* Optional: Ändere die Bildgröße */
    height: auto; /* Behalte das Seitenverhältnis */
    transition: top 0.1s ease; /* Sanfte Bewegung */
}





/* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

.InfoContainer{
    
    /* border:1px black solid; */
    padding-left: 1vw;
    padding-right: 1vw;

    
}

/* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

.MainImgContainer{
    margin-right:2.5vh;
    padding-bottom: 1vh;
}

/* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

#FirstInfo{
    display: flex; /* Aktiviert Flexbox */
    align-items: flex-start; /* Elemente oben ausrichten (optional) */
}

#FirstImgContainer{
    flex: 0 0 auto; /* Container nimmt nur so viel Platz wie nötig */
    max-width: 25%; /* Optional: Maximale Breite des Bildcontainers */
    
}

#FirstMainText {
    flex: 1; /* Text füllt den restlichen Platz aus */
    text-align: justify; /* Optional: Text gleichmäßig ausrichten */
}

#FirstMainImage {
    max-width: 100%; /* Bild skaliert innerhalb seines Containers */
    height: auto; /* Verhältnis beibehalten */
}



/* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

/* Contact Form Section */

.contact-form-section {
    max-width: 900px;
    margin: 0 auto;
    padding: 4vh 2vw;
}

.contact-info-layout {
    display: flex;
    gap: 2rem;
    margin-bottom: 2.5rem;
    align-items: flex-start;
}

.contact-address {
    flex: 1;
}

.contact-address h3 {
    font-size: 1.2rem;
    color: #003399;
    margin-bottom: 1rem;
    font-weight: 700;
}

.contact-address p {
    margin-bottom: 0.6rem;
    line-height: 1.6;
    color: #333;
}

.contact-map-preview {
    flex: 0 0 180px;
    text-align: center;
    cursor: pointer;
}

.map-preview-img {
    width: 100%;
    border: 2px solid #e0e0e0;
    border-radius: 8px;
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
}

.map-preview-img:hover {
    transform: scale(1.03);
    box-shadow: 0 4px 15px rgba(0, 51, 153, 0.2);
}

.map-preview-hint {
    font-size: 12px;
    color: #666;
    margin-top: 0.4rem;
}

/* Karten-Modal */
.map-modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    z-index: 10000;
    justify-content: center;
    align-items: center;
}

.map-modal-overlay.active {
    display: flex;
}

.map-modal {
    position: relative;
    background: white;
    padding: 2rem;
    border-radius: 12px;
    max-width: 600px;
    width: 90%;
    text-align: center;
}

.map-modal-title {
    font-size: 1.4rem;
    color: #003399;
    margin-bottom: 0.3rem;
}

.map-modal-subtitle {
    color: #555;
    margin-bottom: 1.5rem;
    font-size: 0.95rem;
}

.map-modal-img {
    width: 100%;
    height: auto;
}

.map-modal-close {
    position: absolute;
    top: 10px;
    right: 15px;
    background: none;
    border: none;
    font-size: 2rem;
    cursor: pointer;
    color: #333;
    line-height: 1;
}

.contact-title {
    font-size: 2.5rem;
    color: #003399;
    margin-bottom: 1rem;
    text-align: center;
    font-weight: 700;
}

.contact-subtitle {
    font-size: 1.1rem;
    color: #324b4d;
    margin-bottom: 3rem;
    text-align: center;
    line-height: 1.6;
}

.contact-form {
    background: white;
    padding: 0;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}

.form-group {
    margin-bottom: 1.5rem;
}

.form-group label {
    display: block;
    margin-bottom: 0.5rem;
    color: #003399;
    font-weight: 600;
    font-size: 0.95rem;
}

.required {
    color: #d32f2f;
}

.form-group input,
.form-group textarea {
    width: 100%;
    padding: 0.8rem 1rem;
    border: 2px solid #e0e0e0;
    border-radius: 6px;
    font-family: Arial, sans-serif;
    font-size: 1rem;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
    box-sizing: border-box;
}

.form-group input:focus,
.form-group textarea:focus {
    outline: none;
    border-color: #003399;
    box-shadow: 0 0 0 3px rgba(52, 132, 111, 0.1);
}

.form-group textarea {
    resize: vertical;
    min-height: 120px;
}

.checkbox-group {
    display: flex;
    align-items: flex-start;
    gap: 0.8rem;
}

.checkbox-group input[type="checkbox"] {
    width: auto;
    margin-top: 0.3rem;
    flex-shrink: 0;
    cursor: pointer;
}

.checkbox-group label {
    margin-bottom: 0;
    font-weight: 400;
    font-size: 0.9rem;
    line-height: 1.5;
}

.checkbox-group a {
    color: #003399;
    text-decoration: underline;
}

.checkbox-group a:hover {
    color: #002277;
}

.btn-submit {
    width: 100%;
    padding: 1rem 2rem;
    background: linear-gradient(135deg, #003399 0%, #002277 100%);
    color: white;
    border: none;
    border-radius: 8px;
    font-size: 1.1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    font-family: Arial, sans-serif;
}

.btn-submit:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(52, 132, 111, 0.3);
}

.btn-submit:active {
    transform: translateY(-1px);
}

.form-note {
    text-align: center;
    margin-top: 1rem;
    font-size: 0.85rem;
    color: #666;
}
























/* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */


#SecondInfo {
    display: flex; /* Aktiviert Flexbox */
    align-items: flex-start; /* Elemente oben ausrichten */
    gap: 20px; /* Abstand zwischen Bild und Text */
}

#SecondMainText {
    flex: 1; /* Text füllt den restlichen Platz aus */
    text-align: justify; /* Optional: Text gleichmäßig ausrichten */
    order: 1; /* Text zuerst anzeigen */
}

#SecondImgContainer {
    flex: 0 0 auto; /* Container nimmt nur so viel Platz wie nötig */
    max-width: 25%; /* Maximale Breite des Bildcontainers */
    order: 2; /* Bild danach anzeigen */
}

#SecondMainImage {
    max-width: 100%; /* Bild skaliert innerhalb seines Containers */
    height: auto; /* Verhältnis beibehalten */
}

/* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    background-color: #eef1f6;
}


/* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */


footer{
    height: 20vh;
    width: 80vw;
    margin-left: 10vw;
    margin-top: 3vh;
    font-family: Arial, sans-serif;
    font-weight: 100;
    background-color: #ffffff;
    color:black;
    margin-bottom:5vh;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    border-radius: 0 0 10px 10px;


}



.link-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* Drei Spalten */
     /* Abstand zwischen den Elementen */
    
}
.link-item {
    font-family: Arial, sans-serif;
    font-style: normal;
    
    padding: 10px;
    height:4vh;
    
    text-align: center;
    
}
.link-item a {
    text-decoration: none;
    color:#324b4d;
    

}
.link-item a:hover {
    text-decoration: underline;
}



/* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

/* Hero Section */

.hero-section {
    text-align: center;
    padding: 5vh 4vw 6vh;
    background: #ffffff;
}

.hero-content {
    max-width: 800px;
    margin: 0 auto;
}

.hero-title {
    font-size: 2.8rem;
    color: #003399;
    margin-bottom: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
}

.hero-subtitle {
    font-size: 1.2rem;
    color: #324b4d;
    margin-bottom: 2.5rem;
    line-height: 1.8;
    font-weight: 300;
}

.hero-buttons {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    flex-wrap: wrap;
}

.btn-primary, .btn-secondary {
    padding: 1rem 2rem;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    font-size: 1rem;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.btn-primary {
    background: linear-gradient(135deg, #003399 0%, #002277 100%);
    color: white;
}

.btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(52, 132, 111, 0.3);
}

.btn-secondary {
    background: white;
    color: #003399;
    border: 2px solid #003399;
}

.btn-secondary:hover {
    background: #003399;
    color: white;
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(52, 132, 111, 0.3);
}


/* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

/* Map Section - Wirkungsbereich */

.map-section {
    padding: 4vh 2vw;
    text-align: center;
}

.map-title {
    font-size: 2.5rem;
    color: #003399;
    margin-bottom: 1vh;
    font-weight: 700;
}

.map-subtitle {
    font-size: 1.1rem;
    color: #324b4d;
    margin-bottom: 3vh;
    font-weight: 300;
}

.map-container {
    max-width: 500px;
    margin: 0 auto;
}

.deutschland-karte {
    width: 100%;
    height: auto;
    filter: drop-shadow(0 4px 15px rgba(0, 0, 0, 0.1));
}

@media (max-width: 768px) {
    .map-title {
        font-size: 1.8rem;
    }

    .map-subtitle {
        font-size: 1rem;
        padding: 0 1rem;
    }

    .map-container {
        max-width: 300px;
    }
}

/* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

/* Timeline Section - Versorgungsprozess */

.timeline-section {
    padding: 4vh 2vw;
    margin-top: 4vh;
    text-align: center;
}

.timeline-title {
    font-size: 2.5rem;
    color: #003399;
    margin-bottom: 1vh;
    font-weight: 700;
}

.timeline-subtitle {
    font-size: 1.1rem;
    color: #324b4d;
    margin-bottom: 4vh;
    font-weight: 300;
}

.timeline-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3vw;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2vw;
}

.timeline-card {
    background: linear-gradient(145deg, #f8faf9 0%, #ffffff 100%);
    border-radius: 12px;
    padding: 2.5rem 2rem;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
    position: relative;
    border-top: 4px solid #003399;

    /* Scroll Animation */
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease, box-shadow 0.3s ease, background 0.3s ease;
}

.timeline-card.animate-in {
    opacity: 1;
    transform: translateY(0);
}

.timeline-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 8px 25px rgba(52, 132, 111, 0.2);
    background: linear-gradient(145deg, #f0f5f3 0%, #fafbfb 100%);
}

.timeline-number {
    width: 40px;
    height: 40px;
    background: rgba(52, 132, 111, 0.1);
    color: #003399;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0 auto 0.8rem;
    border: 2px solid #003399;
}

.timeline-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #003399 0%, #002277 100%);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.2rem;
    margin: 0 auto 1.5rem;
    box-shadow: 0 4px 15px rgba(52, 132, 111, 0.4);
}

.timeline-card-title {
    font-size: 1.5rem;
    color: #003399;
    margin-bottom: 1.5rem;
    font-weight: 700;
}

.timeline-card-list {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: left;
}

.timeline-card-list li {
    padding: 0.7rem 0;
    padding-left: 2rem;
    position: relative;
    color: #324b4d;
    font-size: 1rem;
    line-height: 1.6;
}

.timeline-card-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: #003399;
    font-weight: bold;
    font-size: 1.2rem;
}

/* Connector line between cards - optional visual enhancement */
.timeline-card::after {
    content: "→";
    position: absolute;
    right: -2vw;
    top: 50%;
    transform: translateY(-50%);
    font-size: 2rem;
    color: #003399;
    opacity: 0.3;
}

.timeline-card:last-child::after {
    content: "";
}


/* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */



/* Hamburger Button */
.nav-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    z-index: 1001;
}

.nav-toggle span {
    display: block;
    width: 25px;
    height: 3px;
    background: #003399;
    border-radius: 3px;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.nav-toggle.active span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}

.nav-toggle.active span:nth-child(2) {
    opacity: 0;
}

.nav-toggle.active span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

@media (max-width: 768px) {
    .Headercontainer {
        width: 92%;
        height: auto;
        margin: 6px auto 0;
        top: 6px;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: space-between;
        text-align: left;
        padding: 0.6rem 0.8rem;
        gap: 0;
        position: sticky;
    }

    header {
        flex: 1;
        width: auto;
        margin-left: 0;
        margin-top: 0;
        min-width: 0;
    }

    header h1#Headline {
        font-size: 1rem;
        margin: 0;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    header h3#SecondHeadline {
        font-size: 0.7rem;
        margin: 0;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    /* Logo aus Header ausblenden — wird per JS in die Nav verschoben */
    .header-logo {
        display: none;
    }

    /* Logo in der geöffneten Nav */
    .nav-logo {
        display: block !important;
        width: 160px;
        height: auto;
        margin: 1.5rem auto 0.5rem;
    }

    .nav-toggle {
        display: flex;
        flex-shrink: 0;
        margin-left: 0.5rem;
    }

    /* Nav: volle Breite, Slide-Down via max-height */
    #navbar {
        display: block;
        position: fixed;
        left: 0;
        right: 0;
        top: 0; /* wird per JS gesetzt */
        z-index: 998;
        background: #ffffff;
        box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
        border-top: 2px solid #003399;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.35s ease;
        padding: 0;
        margin: 0;
        width: 100%;
    }

    #navbar.open {
        max-height: 600px;
        padding-bottom: 1rem;
    }

    #navbar ul {
        flex-direction: column;
        gap: 0;
        padding: 0.3rem 1.2rem;
    }

    #navbar ul li a {
        font-size: 1rem;
        display: block;
        padding: 0.8rem 1rem;
        border-radius: 6px;
        border-bottom: 1px solid #f0f0f0;
        color: #003399;
    }

    #navbar ul li:last-child > a {
        border-bottom: none;
    }

    #navbar ul li a:hover {
        background-color: rgba(0, 51, 153, 0.06);
    }

    /* Dropdown-Sub-Items: inline Tree */
    #navbar ul .dropdown {
        position: static !important;
        display: block !important;
        box-shadow: none !important;
        background: transparent;
        min-width: unset;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease;
        margin-left: 1rem;
        border-left: 2px solid rgba(0, 51, 153, 0.15);
        z-index: auto !important;
    }

    #navbar ul .dropdown.mobile-open {
        max-height: 300px;
    }

    #navbar ul .dropdown li a {
        font-size: 0.9rem;
        padding: 0.55rem 0.8rem;
        border-bottom: none;
        opacity: 0.85;
        border-radius: 4px;
    }

    /* Pfeil-Indikator bei Eltern-Items */
    #navbar ul li.dropdown-trigger > a.menu-item::after {
        content: ' ›';
        display: inline-block;
        transition: transform 0.25s ease;
        font-weight: 400;
    }

    #navbar ul li.dropdown-trigger > a[aria-expanded="true"]::after {
        transform: rotate(90deg);
    }

    #main {
        width: 92%;
        margin: 0 auto;
        padding: 1rem;
    }

    #FirstInfo, #SecondInfo {
        flex-direction: column; /* Vertikale Anordnung von Bild und Text */
        gap: 10px; /* Weniger Abstand zwischen den Elementen */
    }

    #FirstImgContainer, #SecondImgContainer {
        max-width: 100%; /* Bild nimmt die volle Breite ein */
    }

    #FirstMainImage, #SecondMainImage {
        max-width: 100%;
        height: auto;
    }


    

    footer {
        width: 92%;
        margin: 0 auto;
        height: auto;
        text-align: center;
        padding-bottom: 1rem;
    }

    .link-grid {
        grid-template-columns: 1fr;
    }

    .link-item {
        height: auto;
        padding: 0.6rem 1rem;
        border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    }

    .link-item:last-child {
        border-bottom: none;
    }

    /* Hero Section responsive */
    .hero-title {
        font-size: 1rem;
    }

    .hero-subtitle {
        font-size: 0.7rem;
        padding: 0 1rem;
    }

    .hero-buttons {
        flex-direction: column;
        gap: 1rem;
    }

    .btn-primary, .btn-secondary {
        width: 100%;
        justify-content: center;
        padding: 0.75rem 1.2rem;
        font-size: 0.9rem;
    }

    /* Contact Form responsive */
    .contact-title {
        font-size: 1.8rem;
    }

    .contact-subtitle {
        font-size: 1rem;
    }

    .form-row {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .contact-form-section {
        padding: 2vh 1rem;
    }

    .contact-info-layout {
        flex-direction: column;
    }

    .contact-map-preview {
        flex: 0 0 auto;
        width: 160px;
    }

    /* Timeline responsive anpassen */
    .timeline-title {
        font-size: 1.8rem;
    }

    .timeline-subtitle {
        font-size: 1rem;
        padding: 0 1rem;
    }

    .timeline-container {
        grid-template-columns: 1fr;
        gap: 2rem;
        padding: 0 1rem;
    }

    .timeline-card {
        padding: 2rem 1.5rem;
    }

    .timeline-card::after {
        content: "↓";
        right: 50%;
        top: auto;
        bottom: -2rem;
        transform: translateX(50%);
        font-size: 1.5rem;
    }

    .timeline-card:last-child::after {
        content: "";
    }
}

/* /////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////// */

/* Accessibility & Focus Styles */

/* Skip Navigation Link - only visible when focused */
.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background-color: #003399;
    color: white;
    padding: 8px 16px;
    text-decoration: none;
    font-weight: bold;
    border-radius: 0 0 4px 0;
    z-index: 10000;
    transition: top 0.3s;
}

.skip-link:focus {
    top: 0;
    outline: 3px solid #ffffff;
    outline-offset: 2px;
}

/* Focus styles for all interactive elements */
a:focus,
button:focus,
input:focus,
textarea:focus,
select:focus {
    outline: 3px solid #003399;
    outline-offset: 2px;
    box-shadow: 0 0 0 3px rgba(52, 132, 111, 0.2);
}

/* Specific focus for navigation links */
#navbar ul li a:focus {
    background-color: rgba(52, 132, 111, 0.1);
    outline: 3px solid #003399;
    outline-offset: 2px;
    border-radius: 4px;
}

/* Dropdown menu items focus */
#navbar .dropdown li a:focus {
    background-color: #003399;
    color: white;
    outline: 2px solid #ffffff;
    outline-offset: -2px;
}

/* Footer links focus */
.link-item a:focus {
    outline: 3px solid #324b4d;
    outline-offset: 2px;
    background-color: rgba(50, 75, 77, 0.1);
    border-radius: 4px;
}

/* Ensure focus is visible even with custom styles */
*:focus-visible {
    outline: 3px solid #003399;
    outline-offset: 2px;
}

/* Remove focus outline for mouse users (but keep for keyboard) */
*:focus:not(:focus-visible) {
    outline: none;
}

/* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

/* Phone Popup */

.phone-popup-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10000;
    justify-content: center;
    align-items: center;
}

.phone-popup-overlay.active {
    display: flex;
}

.phone-popup {
    background: white;
    padding: 3rem;
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
    position: relative;
    max-width: 400px;
    animation: popupFadeIn 0.3s ease;
}

@keyframes popupFadeIn {
    from {
        opacity: 0;
        transform: scale(0.9);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.phone-popup-close {
    position: absolute;
    top: 10px;
    right: 15px;
    background: none;
    border: none;
    font-size: 2rem;
    color: #666;
    cursor: pointer;
    transition: color 0.3s;
}

.phone-popup-close:hover {
    color: #003399;
}

.phone-popup-icon {
    font-size: 3rem;
    color: #003399;
    margin-bottom: 1rem;
}

.phone-popup h3 {
    color: #003399;
    margin-bottom: 1rem;
    font-size: 1.5rem;
}

.phone-number {
    font-size: 2rem;
    font-weight: 700;
    color: #003399;
    margin: 0;
}

/* //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */

/* Klaro Cookie Banner - Anpassung ans Website-Design über CSS Custom Properties */

.klaro {
    --dark1: #ffffff;
    --dark2: rgba(0, 51, 153, 0.1);
    --dark3: #7c7c7c;
    --light1: #324b4d;
    --light2: rgba(0, 51, 153, 0.1);
    --light3: #7c7c7c;
    --white1: #ffffff;
    --white2: #e0e0e0;
    --white3: #ffffff;
    --green1: #003399;
    --green2: #4d7acc;
    --green3: #003399;
    --blue1: #003399;
    --blue2: #003399;
    --button-text-color: #fff;
    --font-family: Arial, sans-serif;
    --font-size: 14px;
    --border-radius: 12px;
    --border-style: solid;
    --border-width: 1px;
}

/* Banner & Modal Schatten */
.klaro .cookie-notice:not(.cookie-modal-notice) {
    box-shadow: 0 4px 25px rgba(0, 0, 0, 0.15);
    border: 1px solid rgba(0, 51, 153, 0.1);
}

.klaro .cookie-modal .cm-modal.cm-klaro {
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
}

.klaro .cookie-modal-notice {
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
}

/* Modal-Header Titel in Blau */
.klaro .cookie-modal .cm-modal .cm-header h1 {
    color: #003399;
}

/* Schließen-Icon */
.klaro .cookie-modal .cm-modal .hide svg {
    stroke: #324b4d;
}

/* Links in Blau */
.klaro .cookie-modal a,
.klaro .cookie-notice a {
    color: #003399;
}

/* Buttons */
.klaro .cookie-modal .cm-btn,
.klaro .cookie-notice .cm-btn {
    padding: 0.6em 1.2em;
    font-weight: 600;
    font-size: 0.95em;
    transition: all 0.3s ease;
}

.klaro .cookie-modal .cm-btn.cm-btn-success,
.klaro .cookie-notice .cm-btn.cm-btn-success {
    background: linear-gradient(135deg, #003399 0%, #002277 100%);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.klaro .cookie-modal .cm-btn.cm-btn-success:hover,
.klaro .cookie-notice .cm-btn.cm-btn-success:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(0, 51, 153, 0.3);
}

.klaro .cookie-modal .cm-btn.cm-btn-close,
.klaro .cookie-notice .cm-btn.cm-btn-close {
    color: #324b4d;
}

/* Cookie Consent - Decline Button nicht ausgegraut */
.klaro .cookie-modal .cm-btn.cm-btn-decline,
.klaro .cookie-notice .cm-btn.cm-btn-decline {
    opacity: 1 !important;
    background: linear-gradient(135deg, #003399 0%, #002277 100%) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    cursor: pointer !important;
}

/* Powered-by Link */
.klaro .cookie-modal .cm-modal .cm-footer .cm-powered-by a {
    color: #7c7c7c;
}

/* ============================================================
   Produktlisting
   ============================================================ */

.product-listing-section {
    padding: 60px 40px;
    max-width: 1100px;
    margin: 0 auto;
}

.product-listing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 32px;
}

.product-card {
    background: white;
    border-radius: 14px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    border: 2px solid transparent;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.product-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 32px rgba(0, 51, 153, 0.15);
    border-color: #003399;
}

.product-card-image-wrap {
    background: #f4f6fb;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    min-height: 200px;
}

.product-card-image {
    max-width: 100%;
    max-height: 180px;
    object-fit: contain;
}

.product-card-info {
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}

.product-card-manufacturer {
    font-size: 0.8rem;
    color: #888;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.product-card-title {
    font-size: 1.1rem;
    color: #003399;
    margin: 0;
    line-height: 1.35;
}

.product-card-desc {
    font-size: 0.85rem;
    color: #555;
    margin: 0;
    line-height: 1.5;
}

.product-card-artnr {
    font-size: 0.78rem;
    color: #aaa;
}

.product-card-link {
    margin-top: auto;
    padding-top: 12px;
    font-size: 0.9rem;
    color: #003399;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* ============================================================
   Produktdetail
   ============================================================ */

.product-detail-breadcrumb-bar {
    background: #f4f6fb;
    padding: 14px 40px;
    border-bottom: 1px solid rgba(0, 51, 153, 0.1);
}

.breadcrumb--dark {
    color: #444;
}

.breadcrumb--dark a {
    color: #003399;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.breadcrumb--dark span {
    color: #444;
}

.product-detail-section {
    padding: 50px 40px;
    max-width: 1100px;
    margin: 0 auto;
}

.product-detail-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: start;
}

.product-image-gallery {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.product-main-image-wrap {
    background: #f4f6fb;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px;
    min-height: 320px;
}

.product-main-image {
    max-width: 100%;
    max-height: 300px;
    object-fit: contain;
}

.product-thumbnails {
    display: flex;
    gap: 12px;
}

.product-thumb {
    width: 72px;
    height: 72px;
    object-fit: contain;
    background: #f4f6fb;
    border-radius: 8px;
    border: 2px solid transparent;
    cursor: pointer;
    padding: 6px;
    transition: border-color 0.2s;
}

.product-thumb:hover,
.product-thumb.active {
    border-color: #003399;
}

.product-image-credit {
    font-size: 0.75rem;
    color: #aaa;
    margin: 0;
}

.product-image-credit a {
    color: #aaa;
}

.product-manufacturer {
    font-size: 0.85rem;
    color: #888;
    margin: 0 0 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.product-detail-title {
    font-size: 1.8rem;
    color: #003399;
    margin: 0 0 16px;
    line-height: 1.25;
}

.product-article-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 20px;
    font-size: 0.82rem;
    color: #666;
    background: #f4f6fb;
    padding: 10px 14px;
    border-radius: 8px;
}

.product-short-desc {
    font-size: 0.95rem;
    color: #444;
    line-height: 1.65;
    margin: 0 0 20px;
}

.product-highlight-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 28px;
}

.product-cta-group {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

/* Beschreibung */
.product-description-section {
    background: #f8f9ff;
    padding: 60px 40px;
}

.product-description-inner {
    max-width: 800px;
    margin: 0 auto;
}

.product-description-inner h2 {
    color: #003399;
    font-size: 1.5rem;
    margin-bottom: 24px;
}

.product-description-inner p {
    color: #444;
    line-height: 1.75;
    margin-bottom: 16px;
}

/* Technische Daten */
.product-specs-section {
    padding: 60px 40px;
    max-width: 1100px;
    margin: 0 auto;
}

.product-specs-inner h2 {
    color: #003399;
    font-size: 1.5rem;
    margin-bottom: 28px;
}

.product-specs-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2px;
    background: rgba(0, 51, 153, 0.08);
    border-radius: 12px;
    overflow: hidden;
}

.spec-item {
    background: white;
    padding: 14px 20px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.spec-label {
    font-size: 0.78rem;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 700;
}

.spec-value {
    font-size: 0.95rem;
    color: #222;
}

/* CTA-Bereich unten */
.product-contact-section {
    background: linear-gradient(135deg, #003399 0%, #0055cc 100%);
    padding: 70px 40px;
    text-align: center;
    color: white;
}

.product-contact-inner {
    max-width: 600px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.product-contact-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    color: white;
}

.product-contact-inner h2 {
    color: white;
    font-size: 1.5rem;
    margin: 0;
}

.product-contact-inner p {
    color: rgba(255, 255, 255, 0.88);
    font-size: 0.95rem;
    line-height: 1.65;
    margin: 0;
}

.product-contact-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    margin-top: 8px;
}

/* Farbwähler */
.color-selector {
    margin-bottom: 20px;
}

.color-selector-label {
    font-size: 0.85rem;
    color: #666;
    margin: 0 0 10px;
    font-weight: 600;
}

.color-swatch-group {
    display: flex;
    gap: 10px;
}

.color-swatch {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 3px solid transparent;
    cursor: pointer;
    transition: border-color 0.15s, transform 0.15s;
    outline: none;
}

.color-swatch:hover {
    transform: scale(1.1);
}

.color-swatch.active {
    border-color: #003399;
    box-shadow: 0 0 0 2px white, 0 0 0 4px #003399;
}

/* App-Hinweis-Box */
.product-app-note {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    background: rgba(255, 160, 0, 0.1);
    border-left: 3px solid #f5a623;
    border-radius: 6px;
    padding: 12px 14px;
    margin-bottom: 20px;
    font-size: 0.88rem;
    color: #555;
    line-height: 1.5;
}

.product-app-note i {
    color: #f5a623;
    margin-top: 2px;
    flex-shrink: 0;
}

@media (max-width: 800px) {
    .product-detail-layout {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .product-detail-section {
        padding: 32px 20px;
    }

    .product-specs-grid {
        grid-template-columns: 1fr;
    }

    .product-description-section,
    .product-specs-section,
    .product-contact-section {
        padding: 40px 20px;
    }

    .product-detail-breadcrumb-bar {
        padding: 12px 20px;
    }

    .product-listing-section {
        padding: 40px 20px;
    }
}

/* ============================================================
   Produkte-Seite
   ============================================================ */

.products-hero-section {
    background: linear-gradient(135deg, #003399 0%, #0055cc 100%);
    color: white;
    padding: 80px 40px;
    text-align: center;
}

.products-hero-section h1 {
    font-size: 2.5rem;
    margin-bottom: 16px;
    color: white;
}

.products-hero-section p {
    font-size: 1.1rem;
    max-width: 620px;
    margin: 0 auto;
    opacity: 0.9;
}

.products-categories-section {
    padding: 60px 40px;
    max-width: 1200px;
    margin: 0 auto;
}

.products-section-title {
    text-align: center;
    color: #003399;
    font-size: 1.8rem;
    margin-bottom: 40px;
}

.products-categories-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}

.product-category-card {
    background: white;
    border-radius: 14px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    padding: 40px 28px 32px;
    text-align: center;
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    border: 2px solid transparent;
}

.product-category-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 32px rgba(0, 51, 153, 0.15);
    border-color: #003399;
    text-decoration: none;
}

.product-category-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: linear-gradient(135deg, #003399, #0055cc);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 2rem;
    flex-shrink: 0;
}

.product-category-card h2 {
    font-size: 1.15rem;
    color: #003399;
    margin: 0;
    line-height: 1.3;
}

.product-category-card p {
    font-size: 0.9rem;
    color: #555;
    margin: 0;
    line-height: 1.5;
}

.product-card-tag {
    display: inline-block;
    background: rgba(0, 51, 153, 0.08);
    color: #003399;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 20px;
    margin-top: 4px;
}

/* Noch-in-Arbeit-Bereich */
.products-sub-section {
    padding: 20px 40px 80px;
}

.wip-notice {
    max-width: 580px;
    margin: 0 auto;
    text-align: center;
    background: #f8f9ff;
    border: 2px dashed rgba(0, 51, 153, 0.25);
    border-radius: 16px;
    padding: 60px 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.wip-icon {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: rgba(0, 51, 153, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    color: #003399;
}

.wip-notice h2 {
    color: #003399;
    font-size: 1.4rem;
    margin: 0;
}

.wip-notice p {
    color: #555;
    font-size: 0.95rem;
    margin: 0;
    line-height: 1.6;
}

/* 2-Spalten-Variante für Unterseiten */
.products-categories-grid--2col {
    grid-template-columns: repeat(2, 1fr);
    max-width: 800px;
    margin: 0 auto;
}

/* WIP-Badge auf Karten */
.product-category-card--wip {
    cursor: default;
    pointer-events: auto;
}

.wip-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255, 160, 0, 0.12);
    color: #b35c00;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 20px;
    margin-top: 4px;
}

/* Breadcrumb */
.breadcrumb {
    display: flex;
    align-items: center;
    gap: 6px;
    justify-content: center;
    margin-bottom: 16px;
    font-size: 0.9rem;
    opacity: 0.85;
}

.breadcrumb a {
    color: white;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.breadcrumb span {
    color: white;
}

@media (max-width: 900px) {
    .products-categories-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .products-hero-section {
        padding: 50px 20px;
    }

    .products-hero-section h1 {
        font-size: 1.8rem;
    }

    .products-categories-section {
        padding: 40px 20px;
    }

    .products-categories-grid {
        grid-template-columns: 1fr;
    }

    .products-categories-grid--2col {
        grid-template-columns: 1fr;
    }

    .products-sub-section {
        padding: 20px 20px 60px;
    }

    .wip-notice {
        padding: 40px 24px;
    }
}

