/* ==========================================================
   Decens GmbH – Custom Styles
   Mobile-first, nur min-width Media Queries
   ========================================================== */

/* ── Basis / Fonts ── */
body {
    font-family: 'Poppins', 'Segoe UI', Arial, sans-serif !important;
}

html { scroll-behavior: smooth; }

/* ── Logo ── */
.logo img { height: 60px; width: auto; max-width: 220px; }
.nav-logo img { height: 50px; width: auto; }

/* ── Header: FA Icons in contact-info .icon ── */
.main-header .header-upper .contact-info .icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    font-size: 1.1rem;
    color: #fff !important;
    flex-shrink: 0;
}
.main-header .header-upper .contact-info .icon i { color: #fff; }

/* Mobile nav toggler */
.mobile-nav-toggler {
    font-size: 1.6rem;
    color: #fff;
    cursor: pointer;
    display: none;
}
@media (max-width: 1139px) { .mobile-nav-toggler { display: block; } }

/* ── Header top text – hide on tiny screens ── */
@media (max-width: 599px) { .header-top .left-column .text { display: none; } }

/* ── Banner h1: text-transform capitalize aus style.css überschreiben ── */
.banner-section .content-box h1 {
    text-transform: none !important;
    font-family: 'Poppins', 'Segoe UI', Arial, sans-serif !important;
    color: #fff !important;
}
.banner-section .content-box .inner .text {
    color: rgba(255,255,255,0.92) !important;
    text-shadow: 0 1px 4px rgba(0,0,0,0.5);
}

/* ── Slider Nav Buttons: Flaticon-Icon durch FA ersetzen ── */
.banner-slider-control span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-family: 'Font Awesome 6 Free', 'Font Awesome 6 Free Fallback', sans-serif !important;
    font-size: 1.3rem;
    font-weight: 900;
    color: #fff !important;
}
.banner-slider-control span i {
    font-family: inherit !important;
    color: #fff !important;
    font-size: 1.3rem;
    display: block;
    line-height: 1;
}
/* Sicherheitshalber: alle Elemente im Slider-Button white */
.banner-slider-button-prev, .banner-slider-button-next { color: #fff !important; }
.banner-slider-button-prev span, .banner-slider-button-next span { color: #fff !important; }

/* ── Banner / Hero – fixe Höhe auf allen Slides ── */
.banner-section {
    position: relative;
}
.banner-section .swiper-container,
.banner-section .swiper-wrapper {
    height: 600px;
}
.banner-section .swiper-slide {
    background-size: cover;
    background-position: center;
    height: 600px !important;   /* feste Höhe, nicht min-height – alle Slides gleich */
    overflow: hidden;
    position: relative;
}
@media (min-width: 768px) {
    .banner-section .swiper-container,
    .banner-section .swiper-wrapper { height: 700px; }
    .banner-section .swiper-slide  { height: 700px !important; }
}
@media (min-width: 1200px) {
    .banner-section .swiper-container,
    .banner-section .swiper-wrapper { height: 780px; }
    .banner-section .swiper-slide  { height: 780px !important; }
}

.banner-section .content-outer { background: rgba(10,22,48,0.62); }

/* Spaltenbreiten explizit – sonst nimmt .inner volle Breite und Form bricht in Zeile 2 */
@media (min-width: 1140px) {
    .banner-section .content-box .inner {
        flex: 1 1 auto;
        max-width: 640px;
    }
    .banner-section .content-box .estimate-form {
        flex: 0 0 430px;
        width: 430px;
    }
}

.banner-section .content-box .inner h1 {
    font-size: 2rem;
    line-height: 1.2;
    font-weight: 800;
    text-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
@media (min-width: 768px) { .banner-section .content-box .inner h1 { font-size: 2.8rem; } }
@media (min-width: 1200px) { .banner-section .content-box .inner h1 { font-size: 3.4rem; } }

/* ── Feature/USP Icon Boxes ── */
.feature-block-three .icon-box .icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: #f0f4f8;
    margin-bottom: 16px;
    transition: background 0.3s;
}
.feature-block-three .icon-box .icon i {
    font-size: 2rem;
    color: #1A3A6B;
    transition: color 0.3s;
}
.feature-block-three .icon-box:hover .icon,
.feature-block-three .icon-box .overlay .icon {
    background: rgba(255,255,255,0.2);
}
.feature-block-three .icon-box .overlay .icon i,
.feature-block-three .icon-box:hover .icon i { color: #fff; }

.feature-block-three .read-more-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 600;
    font-size: 0.875rem;
}
.feature-block-three .read-more-btn i { font-size: 1rem; }

/* ── Stats Row (Über uns) ── */
.stats-row {
    display: flex;
    flex-wrap: wrap;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    overflow: hidden;
    margin: 24px 0 28px;
}
.stats-row .stat-item {
    flex: 1 1 50%;
    padding: 18px 12px;
    text-align: center;
    border-right: 1px solid #e8e8e8;
    border-bottom: 1px solid #e8e8e8;
}
.stats-row .stat-item:nth-child(even) { border-right: none; }
.stats-row .stat-item:nth-last-child(-n+2) { border-bottom: none; }
@media (min-width: 768px) {
    .stats-row .stat-item { flex: 1 1 25%; border-bottom: none; }
    .stats-row .stat-item:nth-child(even) { border-right: 1px solid #e8e8e8; }
    .stats-row .stat-item:last-child { border-right: none; }
}
.stats-row .stat-number { font-size: 2rem; font-weight: 700; color: #C8841A; line-height: 1.1; }
.stats-row .stat-label { font-size: 0.82rem; color: #666; margin-top: 4px; }

/* ── About Images ── */
.about-section-two .image-block .image img {
    width: 100%;
    height: 260px;
    object-fit: cover;
    border-radius: 6px;
    display: block;
}
@media (min-width: 992px) { .about-section-two .image-block .image img { height: 340px; } }

/* ── Service Carousel Images ── */
.service-block-two .image { overflow: hidden; }
.service-block-two .image img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
    transition: transform 0.4s;
}
.service-block-two .inner-box:hover .image img { transform: scale(1.05); }

/* ── Service overlay link icon ── */
.service-block-two .overlay .link-btn a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: #C8841A;
    color: #fff;
    font-size: 1.1rem;
    text-decoration: none;
    transition: background 0.3s;
}
.service-block-two .overlay .link-btn a:hover { background: #1A3A6B; }

/* ── CTA Logo ── */
.cta-section .wrapper-box .logo img {
    max-height: 55px;
    width: auto;
    margin-bottom: 20px;
}

/* ── Portfolio / Gallery Images ── */
.gallery-block .image { overflow: hidden; }
.gallery-block .image img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
    transition: transform 0.4s;
}
.gallery-block .inner-box:hover .image img { transform: scale(1.05); }

/* ── Process Images ── */
.features-section-two .image img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    border-radius: 6px;
    display: block;
}
@media (min-width: 992px) { .features-section-two .image img { height: 380px; } }

/* ── Emergency CTA ── */
.cta-section-three {
    background-size: cover;
    background-position: center;
    background-color: #0D1F3C;
    position: relative;
}
.cta-section-three::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(10,22,48,0.75);
}
.cta-section-three .auto-container { position: relative; z-index: 1; }
.cta-section-three h3 { text-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.cta-section-three h3 i { color: #C8841A !important; margin-right: 8px; }
.cta-section-three h3 a { color: #C8841A; text-decoration: none; }
.cta-section-three h3 a:hover { color: #fff; }
.cta-section-three h3 strong { color: #fff; }

/* ── Two-column Section (Testimonials + Form) ── */
.two-column-section {
    background-size: cover;
    background-position: center;
    background-color: #0D1F3C;
    position: relative;
}
.two-column-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(10,22,48,0.82);
}
.two-column-section .auto-container { position: relative; z-index: 1; }

/* Testimonial stars */
.rating .fas.fa-star { color: #C8841A; font-size: 0.9rem; }

/* ── Partner logos text style ── */
.clients-logo-section .slide-item .partner-text {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    color: #444;
    text-align: center;
    padding: 10px 20px;
    border: 1px solid #ddd;
    border-radius: 4px;
    white-space: nowrap;
    transition: all 0.3s;
    cursor: default;
}
.clients-logo-section .slide-item .partner-text:hover {
    color: #1A3A6B;
    border-color: #1A3A6B;
}
.clients-logo-section .slide-item .image { text-align: center; padding: 5px 0; }

/* ── Footer: Logo weiß via Filter ── */
.about-widget .logo img {
    filter: brightness(0) invert(1);
    max-width: 180px;
    height: auto;
}

/* Footer contact icons */
.contact-widget .contact-info li .icon {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    width: 28px;
    flex-shrink: 0;
    padding-top: 3px;
}
.contact-widget .contact-info li .icon i {
    font-size: 1rem;
    color: #C8841A;
}

/* Footer link colors */
.contact-widget .contact-info li .text a { color: rgba(255,255,255,0.8); }
.contact-widget .contact-info li .text a:hover { color: #C8841A !important; }
.footer-bottom a { color: rgba(255,255,255,0.6); }
.footer-bottom a:hover { color: #C8841A !important; }

/* ── Scroll to top ── */
.scroll-to-top {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}
.scroll-to-top i { color: #fff; }

/* ── Mobile nav close btn ── */
.mobile-menu .close-btn .icon i { font-size: 1.2rem; color: #fff; }

/* ── General: no overflow ── */
.page-wrapper { overflow-x: hidden; }

/* ── btn-style-one: Flaticon ::after → Font Awesome ersetzen ── */
.btn-style-one:after {
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    content: "\f061" !important; /* fa-arrow-right */
}

/* btn-style-four hat eigenes ::after mit Font Awesome 5 Pro – auf FA6 umstellen */
.btn-style-one.style-four:after {
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    content: "\f144" !important; /* fa-circle-play */
}

/* ── Slider Nav: Farbe sicherstellen ── */
.banner-section .banner-slider-button-prev,
.banner-section .banner-slider-button-next {
    color: #fff !important;
}

/* ── Owl carousel nav arrows visible ── */
.owl-theme .owl-nav [class*='owl-'] {
    font-size: 1.2rem;
    padding: 8px 14px;
    border-radius: 4px;
}

/* ── Responsive container fix ── */
@media (max-width: 767px) { .auto-container { padding: 0 15px; } }

/* ── Section spacing – max 35px top+bottom ── */
section,
.features-section-three,
.about-section-two,
.services-section-two,
.portfolio-section,
.features-section-two,
.cta-section,
.cta-section-two,
.cta-section-three,
.two-column-section,
.clients-logo-section,
.vision-section {
    padding-top: 35px !important;
    padding-bottom: 35px !important;
}
.sec-title { margin-bottom: 22px !important; }
.single-block { margin-bottom: 24px !important; }
.single-block:last-child { margin-bottom: 0 !important; }

/* ── Logo (Mobile / Tablet: bleibt im header-upper) ── */
.logo img { height: 52px !important; }
.main-header .header-upper {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
}
.main-header .header-upper .inner-container {
    align-items: center;
    min-height: unset;
}
.header-contact-quick { display: none; }

/* ── Main-Header: kein weißer Hintergrund zwischen den Zeilen ── */
.main-header { background: #0D1F3C !important; }

/* ── Nav-Bar: volle Viewport-Breite dunkel ── */
/* Wichtig: background auf dem äußeren .main-menu Div setzen,
   nicht auf .inner-container (der hat max-width via .auto-container) */
.main-menu { background: #0D1F3C !important; }
.main-menu .inner-container,
.main-menu .nav-outer { background: transparent !important; }
.main-menu .navigation > li > a { color: rgba(255,255,255,0.88) !important; }
.main-menu .navigation > li > a:hover,
.main-menu .navigation > li.current > a { color: #C8841A !important; }
.main-menu .navigation > li > ul { background: #fff !important; }
.main-menu .navigation > li > ul > li > a { color: #333 !important; }

/* Nav-Logo + Nav-Kontakt: Mobile = versteckt */
.nav-logo-bar { display: none; }
.main-menu .contact-info { display: none !important; }

/* ── Desktop: Alles in eine Nav-Zeile — Logo | Links | Telefon + CTA ── */
@media (min-width: 992px) {
    /* Weißen header-upper Block entfernen – Logo ist jetzt im Nav */
    .header-upper { display: none !important; }

    /* Nav-Logo links */
    .nav-logo-bar {
        display: flex;
        align-items: center;
        flex-shrink: 0;
        padding: 8px 0;
        margin-right: 32px;
    }
    .nav-logo-img {
        height: 36px;
        width: auto;
        filter: brightness(0) invert(1);
        transition: opacity 0.2s;
    }
    .nav-logo-img:hover { opacity: 0.75; }

    /* Inner-Container: Flex-Row Logo | Nav | Kontakt */
    .main-menu .inner-container.nav-bar-inner {
        display: flex !important;
        align-items: center !important;
        padding: 0 !important;
    }
    /* Nav-Outer nimmt restlichen Platz, Links rechtsbündig */
    .main-menu .nav-outer {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: flex-end;
    }
    /* Navigation links nicht mehr float-left – der nav-outer flex übernimmt */
    .main-menu .navigation { float: none !important; display: flex !important; }

    /* Telefon + CTA rechts in der Nav */
    .main-menu .contact-info.nav-contact-bar {
        display: flex !important;
        align-items: center !important;
        gap: 14px !important;
        flex-shrink: 0 !important;
        margin-left: 20px !important;
        padding: 0 !important;
        background: transparent !important;
    }
    .nav-phone {
        color: rgba(255,255,255,0.88);
        font-size: 0.85rem;
        font-weight: 600;
        text-decoration: none;
        white-space: nowrap;
        display: flex;
        align-items: center;
        gap: 5px;
    }
    .nav-phone i { color: #C8841A; }
    .nav-phone:hover { color: #C8841A; }
    .nav-cta-btn { font-size: 0.8rem !important; padding: 8px 16px !important; white-space: nowrap; }
    .nav-cta-btn span { font-size: 0.8rem; }

    /* Half-Overlap: Hero gleitet halb unter die Nav */
    .main-menu { position: relative; z-index: 50; }
    .banner-section {
        margin-top: -38px !important;
        position: relative;
        z-index: 10;
    }
    /* content-outer: kein extra Padding – content-box steuert den Abstand */
    .banner-section .content-outer { padding-top: 90px !important; }
}

/* ── WOW.js – versteckt Elemente bis sie animieren ── */
.wow { visibility: hidden; }

/* ── Worker: Startzustand und finaler Zustand nach Animation ── */
.vision-section .worker-img {
    opacity: 0;
    display: block;
    max-height: 460px;
    width: auto;
}
.vision-section .worker-img.visible { opacity: 1; }
@media (min-width: 992px) { .vision-section .worker-img { max-height: 520px; } }

/* ── Partner logo images ── */
.clients-logo-section .slide-item .image img {
    max-height: 70px;
    width: auto;
    max-width: 180px;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.7;
    transition: filter 0.3s, opacity 0.3s;
    display: block;
    margin: 0 auto;
}
.clients-logo-section .slide-item .image img:hover {
    filter: grayscale(0%);
    opacity: 1;
}
.clients-logo-section .slide-item .image {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 80px;
    padding: 8px 16px;
}

/* ── Referenzen Owl Carousel ── */
.referenzen-carousel .slide-item { position: relative; overflow: hidden; border-radius: 4px; }
.referenzen-carousel .slide-item img {
    width: 100%;
    height: 260px;
    object-fit: cover;
    display: block;
    transition: transform 0.4s;
}
.referenzen-carousel .slide-item:hover img { transform: scale(1.05); }
.referenzen-carousel .slide-item .caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(transparent, rgba(10,22,48,0.85));
    color: #fff;
    padding: 24px 16px 14px;
    font-size: 0.9rem;
    font-weight: 600;
}
.referenzen-carousel.owl-theme .owl-nav { margin-top: 20px; }
.referenzen-carousel.owl-theme .owl-nav [class*='owl-'] {
    background: #1A3A6B;
    color: #fff;
    border-radius: 4px;
    font-size: 1rem;
    padding: 8px 16px;
}
.referenzen-carousel.owl-theme .owl-nav [class*='owl-']:hover { background: #C8841A; }
.referenzen-carousel.owl-theme .owl-dots .owl-dot span { background: #1A3A6B; }

/* ── Visionen / Worker Section ── */
.vision-section {
    padding: 80px 0;
    background: #f8f9fa;
    overflow: hidden;
}
.vision-section .worker-col {
    display: flex;
    align-items: flex-end;
    justify-content: center;
}
.vision-section .worker-img {
    max-height: 460px;
    width: auto;
    display: block;
    transform: translateX(-100px);
    opacity: 0;
    transition: none;
}
.vision-section .worker-img.animate__slideInLeft {
    transform: translateX(0);
    opacity: 1;
}
@media (min-width: 992px) {
    .vision-section .worker-img { max-height: 520px; }
}
.vision-section .content-col { padding: 30px 0 30px 20px; }
@media (min-width: 992px) { .vision-section .content-col { padding: 0 0 0 40px; } }
.vision-section .vision-list {
    list-style: none;
    padding: 0;
    margin: 24px 0 32px;
}
.vision-list li {
    padding: 8px 0 8px 32px;
    position: relative;
    font-size: 0.95rem;
    color: #333;
    border-bottom: 1px solid #e8e8e8;
}
.vision-list li:last-child { border-bottom: none; }
.vision-list li:before {
    content: '\f058';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    color: #C8841A;
    position: absolute;
    left: 0;
    top: 8px;
    font-size: 1rem;
}
