/*
 * 21X — Mobile-Responsiveness-Ebene (R22, 2026-09)
 * ============================================================================
 * Ergebnis eines gemessenen Audits ueber 13 Seiten bei 390px und 768px
 * (Playwright, Touch-Emulation). Wie consistency.css: korrigiert nur Befunde,
 * keine neue Gestaltung. Laedt nach consistency.css; wo diese Ebene mit
 * !important Groessen setzt, sind die Selektoren hier bewusst spezifischer.
 *
 * Befunde: Filterleisten mit fester Breite (386px in 358px Spalte), Lottie mit
 * ±54px Negativmargen, H1 53px auf 358px Breite, Fliesstext bis 9.8px, Tap-Ziele
 * bis 11px hoch, ein- statt zweispaltige Grids (Home 11.300px hoch), URLs ohne
 * Umbruch, Burger mit 90px Automargen neben der Such-Pill.
 * ============================================================================ */

/* ---------- 1  Umbruch: lange URLs/E-Mails (Privacy, Imprint) ---------- */
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-widget-text-editor li,
.elementor-widget-text-editor a {
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* ---------- 2  Filterleisten: nie breiter als die Spalte ---------- */
.e-filter,
.elementor-widget-taxonomy-filter .e-filter {
    width: 100% !important;
    max-width: 100% !important;
    flex-wrap: wrap !important;
    overflow-x: visible !important;
    gap: 8px !important;
}
/* Die feste Breite (378px in einer 350px-Spalte) liegt auf dem Widget-Container,
   nicht auf der Filterleiste selbst. */
.elementor-widget-taxonomy-filter > .elementor-widget-container,
.elementor-element-16d99a8 > .elementor-widget-container,
.elementor-element-2321c46 > .elementor-widget-container {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
/* Lange URLs auch in Beitrags-/Policy-Inhalten umbrechen (nicht nur Text-Editor). */
.elementor-widget-theme-post-content, .elementor-widget-theme-post-content p, .elementor-widget-theme-post-content a,
.entry-content, .entry-content p, .entry-content a { overflow-wrap: anywhere; word-break: break-word; }

/* ============================ Tablet + Phone ============================ */
@media (max-width: 1024px) {

    /* 2b Ueberschriften: ein einzelnes langes Wort (E-Mail, Fachbegriff) lief bei
          38px ueber die Spalte, machte das Dokument 4px breiter — und Chromes
          Mobil-Layout-Viewport zog Header und Ticker (fixed) mit auf 772px. */
    .elementor-heading-title, h1, h2, h3 { overflow-wrap: anywhere; hyphens: auto; }

    /* 3  Header: Elementor zentriert den Burger mit ~90px Automargen — neben
          der Such-Pill ergibt das ein Loch in der Mitte. */
    .elementor-element-3e73a56 .elementor-menu-toggle { margin: 0 !important; }

    /* 4  Typo-Skala: 68/55/35px sind fuer 358–728px Breite zu gross. */
    body .elementor .elementor-widget-heading h1.elementor-heading-title,
    body .elementor h1.elementor-heading-title { font-size: 48px !important; line-height: 1.12 !important; }
    body .elementor .elementor-widget-heading h2.elementor-heading-title,
    body .elementor h2.elementor-heading-title { font-size: 38px !important; line-height: 1.15 !important; }
    body .elementor .elementor-widget-heading h3.elementor-heading-title,
    body .elementor h3.elementor-heading-title { font-size: 26px !important; line-height: 1.2 !important; }
    body.page-id-46 .elementor-element-a1b2c41 .elementor-heading-title { font-size: 30px !important; }

    /* 5  Sektionen: einheitlicher Seitenabstand (eine Sektion stand auf 0/0). */
    .e-con.e-parent:not(.elementor-location-header .e-con):not(.elementor-location-footer .e-con) {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    /* 6  Products & Services: Lottie-Widget mit margin 0 -54px lief beidseitig
          aus dem Viewport. */
    .elementor-element-6185e3b > .elementor-widget-container {
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* 7  Footer: 11.2px Links mit 21px Tap-Hoehe → 13.5px / ≥40px. */
    .elementor-location-footer .elementor-nav-menu .elementor-item,
    .elementor-location-footer .elementor-item {
        font-size: 13.5px !important;
        min-height: 40px !important;
        display: flex !important;
        align-items: center !important;
        padding: 6px 0 !important;
    }
    .elementor-location-footer .elementor-element-255514e .elementor-heading-title,
    .elementor-location-footer .elementor-element-37d3232 p,
    .elementor-location-footer .elementor-field-label,
    .elementor-location-footer p { font-size: 13px !important; line-height: 1.5 !important; }

    /* 8  Kleintext im Inhalt: Datumszeilen, Versions-Toggle, Einwilligungstext. */
    .elementor-element-12fd0b1 .elementor-heading-title,
    .elementor-element-461605c .elementor-heading-title { font-size: 12.5px !important; }
    .doc-version-history__toggle {
        font-size: 13px !important;
        display: inline-flex !important;
        align-items: center !important;
        min-height: 44px !important;
        padding: 0 4px !important;
        line-height: 1.2 !important;
    }
    .elementor-element-2b81dcd5,
    .elementor-element-2b81dcd5 a,
    .elementor-field-subgroup .elementor-field-option,
    .elementor-field-type-acceptance label { font-size: 13px !important; line-height: 1.5 !important; }
    .elementor-element-45527ec2 .elementor-item { font-size: 13.5px !important; min-height: 40px !important; display: flex !important; align-items: center !important; }
    .elementor-element-2b81dcd5 .elementor-field-type-acceptance a,
    .elementor-element-2b81dcd5 .elementor-field-option a,
    .elementor-element-2b81dcd5 .elementor-field-option label,
    .elementor-element-2b81dcd5 .elementor-field-option span { font-size: 13px !important; line-height: 1.5 !important; }

    /* 9  Filter-Pills (auch Tablet = Touch): 11.2px / 29–31px → 13px / ≥40px. */
    .e-filter-item,
    body .elementor-element-52a7ff4 .e-filter-item {
        font-size: 13px !important;
        min-height: 40px !important;
        padding: 8px 14px !important;
    }
    .tox-dg__chip { min-height: 40px !important; }

    /* 12 Kleintext in Karten und Listen (11.2px / 9.8px) auf lesbare Groessen. */
    .elementor-element-ba9038d .elementor-heading-title,
    .elementor-element-ba9038d span { font-size: 12px !important; line-height: 1.4 !important; }        /* Partner-Kategorie */
    .elementor-element-a36be6e .elementor-heading-title,
    .elementor-element-ccbcaf0 .elementor-heading-title,
    .elementor-element-ccbcaf0 span { font-size: 12.5px !important; }                                    /* Team: Position, Tag */
    .elementor-element-078e394 .elementor-heading-title,
    .elementor-element-bd94da6 .elementor-heading-title,
    .elementor-element-e368286 .elementor-heading-title,
    .elementor-element-mv_miss04 .elementor-heading-title,
    .elementor-element-1e7fb95 p, .elementor-element-469ce0c p,
    .elementor-element-4acab30 p, .elementor-element-645d747 p,
    .elementor-element-d32b94c .elementor-heading-title,
    .elementor-element-d32b94c p { font-size: 14px !important; line-height: 1.5 !important; }          /* Kartentexte */
    .elementor-element-00b2691 .elementor-heading-title { font-size: 12.5px !important; }                /* Media-Datum */
    .elementor-element-9f5b1b2 .elementor-heading-title { font-size: 13px !important; }                  /* "Read →" */
    .job-posting .job-posting-meta { font-size: 12.5px !important; }                                     /* Stellen-Meta */
    .elementor-element-5cfeefb .e-n-tab-title-text { font-size: 13px !important; }                         /* Services-Tabs */
    .elementor-element-2677c0f .elementor-heading-title,
    .elementor-element-2677c0f p,
    .elementor-element-b3f5495 p, .elementor-element-d001b59 p,
    .elementor-element-mv_vis04 .elementor-heading-title { font-size: 14px !important; line-height: 1.5 !important; }
    .elementor-element-8bb08cd .elementor-field-label { font-size: 13px !important; }                      /* Onboarding-Formular */
    .elementor-element-8bb08cd .elementor-field-type-html p,
    .elementor-element-8bb08cd .elementor-field-type-html i { font-size: 12.5px !important; }
}

/* ================================ Phone ================================ */
@media (max-width: 767px) {

    /* 4b Typo-Skala Phone */
    body .elementor .elementor-widget-heading h1.elementor-heading-title,
    body .elementor h1.elementor-heading-title { font-size: 36px !important; }
    body .elementor .elementor-widget-heading h2.elementor-heading-title,
    body .elementor h2.elementor-heading-title { font-size: 28px !important; }
    body .elementor .elementor-widget-heading h3.elementor-heading-title,
    body .elementor h3.elementor-heading-title { font-size: 22.5px !important; }
    body .elementor .elementor-widget-heading h4.elementor-heading-title,
    body .elementor h4.elementor-heading-title { font-size: 20px !important; }
    body.page-id-46 .elementor-element-a1b2c41 .elementor-heading-title { font-size: 26px !important; }

    /* 9b Hero-Headline: der harte Zeilenumbruch nach "of" ist fuer Desktop
          gesetzt und erzeugt auf Phones eine Zeile mit nur "of". */
    body.page-id-44 .elementor-element-3d85ee2 .elementor-heading-title br { display: none !important; }

    /* 10 Ticker-Beschriftung 10px → 12px (Mono-Leiste bleibt kompakt). */
    .tox-ticker__label, .tox-ticker__all { font-size: 12px !important; }

    /* 11 Grids: Partner und Team zweispaltig — einspaltig machte Home 11.300px
          hoch und jede Partnerkarte zu einer Bildschirmfuellung. */
    .elementor-element-7e16254 .elementor-loop-container,
    .elementor-element-4dab998 .elementor-loop-container,
    /* Team: die Seiten-CSS (post-46) erzwingt hier "1fr !important" mit hoeherer
       Spezifitaet — deshalb der lange Selektor. */
    .elementor-46 .elementor-element.elementor-element-b0de3ce .elementor-element-4dab998 .elementor-loop-container {
        --grid-columns: 2 !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }
    .elementor-element-7e16254 .e-loop-item .partner-logo img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        aspect-ratio: 190 / 78;
        object-fit: contain !important;
    }
    .elementor-element-7e16254 .elementor-element-d6360d0 { padding: 12px !important; }
    .elementor-element-4dab998 .elementor-element-421ba7d { min-height: 0 !important; height: auto !important; aspect-ratio: 3 / 4; }
    /* Team-Namen: die Phone-H3-Regel (22.5px) ist spezifischer als ein reiner
       ID-Selektor — in der halben Spalte brauchen lange Namen 17px. */
    body .elementor .elementor-element-4dab998 .elementor-element-0f5926e h3.elementor-heading-title,
    body .elementor .elementor-element-4dab998 .elementor-element-0f5926e .elementor-heading-title { font-size: 17px !important; line-height: 1.25 !important; }
    .elementor-element-4dab998 .elementor-element-a36be6e .elementor-heading-title { font-size: 12.5px !important; }
}

/* ============================================================
   Mobile burger dropdown (2026-09-07): SmartMenus JS sets an inline width
   (~735px, the desktop menu width) + left on the dropdown <nav>, so on phones
   the panel overflows the viewport and the menu reads as shifted/left-aligned.
   Force it to the full viewport width so the (centered) items sit centered.
   ============================================================ */
@media (max-width: 1024px) {
    .elementor-element-3e73a56 .elementor-nav-menu--dropdown,
    .elementor-element-4b2854b .elementor-nav-menu--dropdown {
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}
