/**
 * Mobile Responsive CSS
 * Werkzeugbau Schwarz (UNIVERSAL NATURAL FLOW FIX)
 */
@media (max-width: 991px) {

    /* =========================
       GRUNDLAYOUT
    ========================== */

    body {
        min-width: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        margin-bottom: 0 !important;
        font-size: 14px !important;
        height: auto !important;
        overflow-x: hidden !important; /* Verhindert seitliches Wackeln */
    }

    .container {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .content-wrapper, 
    main, 
    #main-content {
        padding-bottom: 0 !important;
        margin-bottom: 0 !important;
        min-height: 0 !important;
    }

    /* =========================
       🔵 HEADER / BLAUER BALKEN FIX
    ========================== */

    .header-wrapper {
        position: relative !important;
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
        background-color: #004462 !important;
    }

    .header-wrapper .header {
        height: auto !important;
        min-height: 76px !important; /* Garantiert genug Höhe für Logo & Burger im geschlossenen Zustand */
        padding: 26px 16px 12px !important; 
        margin: 0 !important;
        position: relative !important;
        display: block !important;
        background-color: #004462 !important;
    }

    .header-wrapper .header::after {
        content: "" !important;
        display: table !important;
        clear: both !important;
    }

    .header-wrapper .header-tel {
        position: absolute !important;
        top: 4px !important;
        right: 16px !important;
        display: inline-block !important;
        width: auto !important;
        font-size: 11px !important;
        line-height: 1 !important;
        padding: 2px 8px !important;
        margin: 0 !important;
    }

    /* =========================
       LOGO (Fest links verankert)
    ========================== */

    .header-wrapper .header .logo {
        position: absolute !important;
        top: 26px !important;
        left: 16px !important;
        width: auto !important;
        height: 40px !important;
        margin: 0 !important;
        float: none !important;
    }

    .header-wrapper .header .logo img {
        max-height: 40px !important;
        width: auto !important;
    }

    /* =========================
       🍔 BURGER NAV FIX (Nativer Fluss)
    ========================== */

    .navbar-wrapper {
        position: relative !important; /* Bleibt im Fluss, um die Seite dynamisch zu dehnen */
        width: 100% !important;
        float: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .navbar-wrapper nav.navbar {
        margin: 0 !important;
        min-height: 0 !important;
        background: transparent !important;
        border: none !important; /* Killt potenzielle Standard-Borders von Bootstrap */
    }

    .navbar-header {
        float: none !important;
        height: 40px !important;
        clear: both !important;
    }

    /* Schiebt den Burger-Button isoliert nach ganz rechts auf Logo-Höhe */
    .navbar-toggle {
        float: right !important;
        height: 40px !important;
        width: 50px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 0 !important;
        padding: 0 !important;
        background-color: transparent !important;
        border: 1px solid rgba(255,255,255,0.5) !important;
        border-radius: 4px !important;
    }

    .navbar-toggle .icon-bar {
        display: block !important;
        width: 22px !important;
        height: 2px !important;
        background-color: #fff !important;
        border-radius: 1px !important;
        margin: 2px 0 !important;
    }

    /* =========================
       DROPDOWN MENU – Kante-zu-Kante & Schiebt alles automatisch
    ========================== */

    .navbar-collapse {
        display: none !important;
        height: 0 !important;
        overflow: hidden !important;
        border: none !important;
    }

    /* Wenn offen, agiert das Menü als fetter Block, der das Banner auf JEDER Seite runterschiebt */
    .navbar-collapse.in {
        display: block !important;
        height: auto !important;
        overflow: visible !important;
        
        position: relative !important; /* Erzwingt das natürliche Schieben des Contents */
        clear: both !important;
        
        width: calc(100% + 32px) !important; /* Geht perfekt von ganz links nach ganz rechts */
        margin-left: -16px !important; 
        margin-right: -16px !important;
        margin-top: 16px !important; /* Exakter, sauberer Anschluss ohne weißen Strich */
        margin-bottom: -12px !important; /* Schließt perfekt bündig mit der Unterkante ab */
        
        background-color: #004462 !important;
        border: none !important;
        box-shadow: none !important;
        z-index: 9999 !important;
    }

    .navbar-nav {
    width: 100% !important;
    display: block !important;
    float: none !important;
	}

	.navbar-nav > li {
		width: 100% !important;
		display: block !important;
		float: none !important;
		clear: both !important;
	}

    .navbar-nav > li > a {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important; /* Verhindert, dass Padding die 100% sprengt */
    padding: 12px 20px !important;
    border-bottom: 1px solid rgba(255,255,255,0.12) !important;
}

    .navbar-nav .open .dropdown-menu {
        position: static !important;
        float: none !important;
        width: 100% !important;
        background-color: rgba(0,0,0,0.2) !important;
        border: none !important;
        box-shadow: none !important;
        margin: 0 !important;
    }

    .navbar-nav .open .dropdown-menu > li > a {
        color: #fff !important;
        padding: 10px 30px !important;
    }

    div#navbar span.pre-nav {
        display: none !important;
    }

    /* =========================
       👤 MITARBEITER / TEAM ZENTRIERUNG (Ralf Schwarz Fix)
       AUSNAHME: .img-right-fix wird nicht zentriert
    ========================== */

    .content-wrapper img:not(.img-right-fix) {
        margin-left: auto !important;
        margin-right: auto !important;
        display: block !important;
        float: none !important;
    }

    .content-wrapper h3,
    .content-wrapper p,
    .content-wrapper text-center {
        text-align: center !important;
        clear: both !important;
    }
	
	/* =========================
       KONTAKT-BLOCK LINKSBÜNDIG
    ========================== */

    .kontakt-info,
    .kontakt-info h1,
    .kontakt-info p {
        text-align: left !important;
    }

    .kontakt-info h1 {
        margin-bottom: 25px !important;
    }

    .kontakt-info p:first-of-type {
        margin-top: 25px !important;
    }

    .kontakt-info p:last-of-type {
        margin-bottom: 25px !important;
    }

    .col-xs-7 h1 {
        margin-bottom: 20px !important;
    }

    /* =========================
       IMPRESSUM LINKSBÜNDIG
    ========================== */

    .col-xs-8 p:nth-of-type(-n+6) {
        text-align: left !important;
    }
	
	.col-xs-4 img {
        margin-bottom: 20px !important;
    }
	
    /* =========================
       HERO / BANNER
    ========================== */

    .top-img-wrapper.home {
        height: 180px !important;
        background-size: cover !important;
        background-position: center !important;
        padding: 0 !important;
    }

    .top-img-wrapper.home .top-img {
        display: none !important;
    }

    .top-img-wrapper,
    .top-img-wrapper2 {
        height: 100px !important;
    }

    /* =========================
       TYPO
    ========================== */

    h1, h2 {
        font-size: 1.4em !important;
    }

    h3 {
        font-size: 1.2em !important;
    }

    /* =========================
       GRID
    ========================== */

    .col-xs-5,
    .col-xs-7,
    .col-xs-9,
    .col-xs-4,
    .col-xs-8,
    .content-wrapper .col-xs-3 {
        width: 100% !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
        margin-left: 0 !important;
    }

    /* =========================
       SONSTIGES & FOOTER COMPACT FIX
    ========================== */

    .promo-wrapper .promo-box .promo-box-title {
        font-size: 1.4em !important;
    }

    #viewer3d-container {
        height: 280px !important;
        margin-bottom: 0 !important;
    }

    .footer-wrapper {
        padding-top: 20px !important;
        padding-bottom: 10px !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        min-height: 0 !important;
    }

    .footer-wrapper .footer {
        padding-top: 0 !important;
        padding-bottom: 5px !important;
        margin-bottom: 0 !important;
        min-height: 0 !important;
        font-size: 0.9em !important;
    }

    .footer-wrapper .footer .footer-address,
    .footer-wrapper .footer .footer-links {
        padding-top: 5px !important;
        padding-bottom: 0 !important;
        margin-bottom: 0 !important;
    }

    .footer-wrapper a, 
    .footer-wrapper p {
        margin-bottom: 0 !important;
        padding-bottom: 0 !important;
    }

    #captchaBox {
        width: 100% !important;
    }

    .promo-wrapper.home {
        padding-top: 20px !important;
    }

    .promo-wrapper.home .promo-heading {
        margin-top: 0 !important;
        padding-top: 10px !important;
    }

    .slider-prev,
    .slider-next {
        display: block !important;
    }
	
	.gallery .col-lg-4 {
		width: 100% !important;
		float: none !important;
		padding-left: 10px !important;
		padding-right: 10px !important;
	}
}


/* =========================
   TEXT-BILD-BLOCK - PERFEKT AUSGERICHTET
   ========================== */

.text-image-block {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;  /* Vertikal zentrieren */
    gap: 30px !important;
    width: 100% !important;
    margin-top: 40px !important;
    padding-top: 30px !important;
    border-top: 1px solid #e5e5e5 !important;
    margin-bottom: 20px !important;
}

.text-image-block .text-column {
    flex: 1 1 60% !important;
    min-width: 250px !important;
}

.text-image-block .image-column {
    flex: 0 0 200px !important;
    width: 200px !important;
    max-width: 200px !important;
    min-width: 200px !important;
    display: flex !important;
    align-items: center !important;  /* Bild im Container zentrieren */
}

.text-image-block .image-column img {
    width: 200px !important;
    max-width: 200px !important;
    min-width: 200px !important;
    height: auto !important;
    max-height: 300px !important;
    object-fit: contain !important;  /* Bild nicht abschneiden */
    border: 1px solid #ddd !important;
    border-radius: 4px !important;
    display: block !important;
    float: none !important;
    margin: 0 !important;
}

.text-image-block p {
    line-height: 1.6 !important;
    font-size: 15px !important;
    color: #333 !important;
    text-align: left !important;
    margin: 0 0 10px 0 !important;
}

.text-image-block p:last-child {
    margin-bottom: 0 !important;
}

/* Mobile: Bild unter Text, zentriert */
@media (max-width: 767px) {
    .text-image-block {
        flex-direction: column !important;  /* Untereinander */
        align-items: center !important;
    }
    
    .text-image-block .text-column {
        flex: 1 1 100% !important;
        width: 100% !important;
    }
    
    .text-image-block .image-column {
        flex: 0 0 auto !important;
        width: 100% !important;
        max-width: 300px !important;
        min-width: unset !important;
        justify-content: center !important;
    }
    
    .text-image-block .image-column img {
        width: 100% !important;
        max-width: 300px !important;
        min-width: unset !important;
        max-height: 300px !important;
    }
}