html, body { overflow-x: hidden; max-width: 100%; }
.main-content { overflow-x: hidden; }
footer        { overflow-x: hidden; }


/* ══════════════════════════════════════════════
   max-width: 991px  —  tablet portrait & below
══════════════════════════════════════════════ */
@media (max-width: 991px) {

    .hero::before { animation: none; transform: none; }

    .topbar    { display: none; }
    .nav-links { display: none; }
    .nav-phone { display: none; }
    .hamburger { display: flex; }

    .section-padding { padding: 3.5rem 0; }
    .sections        { margin-bottom: 2.5rem; }

    .hero { padding-top: 6rem; min-height: 70vh; }

    .page-hero { padding-top: 7rem; padding-bottom: 3rem; }

    .srv-panel { padding-left: 0; }

    .cta-banner { flex-direction: column; align-items: flex-start; padding: 2rem 1.5rem; }
    .cta-banner-btn { width: 100%; justify-content: center; }
    .cta-banner .btn { width: 100%; justify-content: center; }
    .cta-banner-contact { flex-direction: column; gap: 0.625rem; }

    .divisions-grid { grid-template-columns: repeat(2, 1fr); }
    .divisions-grid .division-card:nth-child(2n+1) { border-left: none; }
    .divisions-grid .division-card:nth-child(n+3) { border-top: 1px solid rgba(26,26,26,0.1); }
}


/* ══════════════════════════════════════════════
   max-width: 768px  —  mobile
══════════════════════════════════════════════ */
@media (max-width: 768px) {

    nav { padding: 1rem 0; }

    .section-padding { padding: 2.5rem 0; }
    .sections        { margin-bottom: 1.5rem; }

    .content h1 { font-size: 2rem; }
    .content h2 { font-size: 1.625rem; }
    .hero .content h1 { font-size: clamp(1.75rem, 7vw, 2.25rem); }

    .btns-group { flex-direction: column; align-items: flex-start; }
    .btns-group .btn { width: 100%; justify-content: center; }

    .hero { padding-top: 5rem; padding-bottom: 3rem; min-height: 55vh; }
    .hero .content { padding-top: 1.5rem; }
    .hero .content > p { margin-bottom: 1.5rem !important; }

    .stats-group { gap: 0.75rem 0; margin-top: 1.75rem; }
    .stats-group > div { border-left: none !important; padding-left: 0 !important; }

    .page-hero { padding-top: 6rem; padding-bottom: 2.5rem; }
    .page-hero h1 { font-size: clamp(1.75rem, 7vw, 2.5rem); }
    .page-hero-breadcrumb a,
    .page-hero-breadcrumb span { font-size: 0.8125rem !important; }

    .service-card--media { min-height: 15rem; }
    .service-card-body   { padding: 0; }
    .services-slider-wrap { width: 100%; overflow: hidden; padding-bottom: 3.5rem; }

    .sf-image::before,
    .sd-intro-image::before { display: none; }


    .process-card { padding: 1.75rem 1.25rem; }

    .cta-banner.order-first { margin-bottom: 2rem; }

    .projects-header-action,
    .projekte-header-action { justify-content: flex-start; margin-top: 1rem; }
    .projects-filter { justify-content: flex-start; }

    .contact-form { padding: 1.5rem; }
    .contact-cards-header { margin-bottom: 2rem; }
    .contact-subtitle { margin-bottom: 2rem; }

    .map-wrapper { height: 15rem; }
    .map-embed   { height: 15rem; }
    .map-overlay-card {
        position: static;
        transform: none;
        max-width: 100%;
        justify-content: flex-start;
        padding: 0;
        width: 100%;
    }
    .map-card { max-width: 100%; width: 100%; padding: 1.5rem; }

    .footer-links { justify-content: center; text-align: center; padding-left: 0; flex-wrap: wrap; gap: 0.75rem; }
    .footer-bottom p,
    .footer-legal,
    .footer-credits { text-align: center; }

    .sd-pkg-card:last-child { border-right: 1px solid var(--color-border); }

    .mobile-menu-inner { padding: 0 1.25rem 1.5rem; }
    .mm-label { font-size: 1.875rem; }
    .mobile-menu-nav { padding: 1rem 0 1.25rem; }
    .mobile-menu-bottom { padding-top: 1.25rem; gap: 1.25rem; }
    .mobile-menu-contact { flex-direction: column; }
    .page-hero-breadcrumb { margin-bottom: 0.625rem; }

    .floating-cta {
        width: 3.5rem;
        height: 3.5rem;
        right: 1rem;
        bottom: 1rem;
        justify-content: center;
        padding: 0;
        border-radius: 50%;
    }
    .floating-cta-icon { width: 100%; height: 100%; background: transparent; }
    .floating-cta-icon svg { width: 1.25rem; height: 1.25rem; }
    .floating-cta-text { display: none; }

    .gdpr-section { padding-top: 3rem; padding-bottom: 4rem; }

    .divisions-grid { grid-template-columns: 1fr; }
    .divisions-grid .division-card { border-left: none; }
    .divisions-grid .division-card:not(:first-child) { border-top: 1px solid rgba(26,26,26,0.1); }
}


/* ══════════════════════════════════════════════
   max-width: 576px  —  small phones
══════════════════════════════════════════════ */
@media (max-width: 576px) {

    .section-padding { padding: 2rem 0; }
    .sections        { margin-bottom: 1.25rem; }

    .content h1 { font-size: 1.75rem; }
    .hero .content h1 { font-size: clamp(1.375rem, 6vw, 1.75rem); }
    .page-hero h1 { font-size: clamp(1.375rem, 6vw, 1.875rem); }

    .hero { padding-top: 4.5rem; min-height: 50vh; }

    .mm-label { font-size: 1.5rem; }
}
