/*
    Theme Name: Webnativ
    Theme URI: http://webnativ.com
    Description: Webnativ WordPress Theme
    Version: 1.4.3 modified
    Author: Todd Motto (@toddmotto)
    Author URI: http://toddmotto.com
    Tags: Blank, HTML5, CSS3

    License: MIT
    License URI: http://opensource.org/licenses/mit-license.php
    Update URI: false
*/
/*
    Theme-Stile liegen in css/template-basics.css (frueher per LESS erzeugt).
    Diese Datei wird seit dem Neuaufbau nach template-basics.css geladen und enthaelt
    nur das aus WPBakery portierte CSS (Task 6, Inhalte als Core-Bloecke).
*/

/* Portiert aus WPBakery */

/*
 * 1. Layout der konvertierten Zeilen/Spalten – bildet js_composer.min.css 5.4.5 nach:
 *    Zeile .vc_row = core/group.vc-row, Spalten-Raster 15px Innenabstand / -15px Rand,
 *    Elementabstand .wpb_content_element = 35px, letzter Textabsatz ohne Abstand.
 */
.vc-row::after {
    content: "";
    display: table;
    clear: both;
}
/*
 * Elemente einer Zeile/Spalte. Klassische Themes rendern core/group mit
 * .wp-block-group__inner-container – beide Varianten abdecken.
 */
.vc-row > :not(.wp-block-group__inner-container),
.vc-row > .wp-block-group__inner-container > *,
.vc-row .wp-block-column > * {
    margin-top: 0;
    margin-bottom: 35px;
}
.vc-row > .wp-block-columns,
.vc-row > .wp-block-group__inner-container > .wp-block-columns,
.vc-row .wp-block-column > .wp-block-columns {
    margin-bottom: 0;
}
.vc-row > .wp-block-group__inner-container {
    margin: 0;
    /* wie das Clearfix an .vc_column-inner: Abstaende der Elemente bleiben in der Zeile */
    display: flow-root;
}
/* Inhalt direkt in der Spalte (kein WPBakery-Element) hat keinen Elementabstand */
.vc-row > .wp-block-group__inner-container > .vc-loose-content,
.vc-row .wp-block-column > .vc-loose-content {
    margin-bottom: 0;
}
.vc-row .wp-block-columns {
    gap: 0;
    margin-left: -15px;
    margin-right: -15px;
}
.vc-row .wp-block-column {
    box-sizing: border-box;
    /* WPBakery-Spalten brechen Woerter nicht um (core: break-word) – sonst schrumpfen Tabellenzellen */
    word-break: normal;
    overflow-wrap: normal;
    padding-left: 15px;
    padding-right: 15px;
}
/* .wpb_text_column :last-child (gilt nicht fuer vc_raw_html und losen Spalteninhalt).
   Nur innerhalb konvertierter Zeilen (:where(.vc-row), ohne Spezifitaet), damit kuenftige
   Gruppen aus dem Editor unberuehrt bleiben. Spezifitaet bewusst (0,2,0) wie im Original,
   damit Theme-Regeln weiter gewinnen. */
:where(.vc-row) .wp-block-group:not(:where(.vc-row, .vc-raw-html, .vc-loose-content)) :last-child {
    margin-bottom: 0;
}

/* .vc_row-has-fill (Rahmen/Hintergrund) und die Zeile danach: 35px Innenabstand oben */
.vc-row.row-has-fill > .wp-block-group__inner-container,
.vc-row.row-has-fill + .vc-row > .wp-block-group__inner-container {
    padding-top: 35px;
}

/* Volle Breite (data-vc-full-width): Zeile bis an den Fensterrand, Inhalt in Containerbreite.
   WPBakery rechnete per JS mit der Fensterbreite ohne Scrollleiste. 100vw schliesst eine
   klassische Scrollleiste ein (17px zu breit, Inhalt 8,5px verschoben) – deshalb Container-
   Einheiten: main.main-content (volle Fensterbreite, enthaelt nur den Seiteninhalt) wird
   Groessen-Container, 100cqw ist dann exakt die nutzbare Breite, ohne Skript und ohne Flackern.
   Bewusst NICHT .outer-wrap: aeltere Engines (frueher Spezifikationsstand) wenden bei
   container-type Layout-Containment an, dann waeren fixe Elemente darin (.header-wrapper,
   .kontaktbadge, Meanmenu, Lightbox) an den Container statt ans Fenster gebunden. In main liegt
   kein fixes Element. Die vw-Zeilen sind Rueckfall ohne Container-Einheiten (.outer-wrap clippt). */
.main-content {
    container-type: inline-size;
}
.vc-row.alignfull {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: calc(50vw - 50%);
    padding-right: calc(50vw - 50%);
    margin-left: calc(50% - 50cqw);
    margin-right: calc(50% - 50cqw);
    padding-left: calc(50cqw - 50%);
    padding-right: calc(50cqw - 50%);
    max-width: none;
}
/* stretch_row_content: Inhalt ebenfalls volle Breite */
.vc-row.alignfull.row-stretch-content {
    padding-left: 15px;
    padding-right: 15px;
}
/* stretch_row_content_no_spaces (.vc_row-no-padding) */
.vc-row.alignfull.row-no-spaces {
    padding-left: 0;
    padding-right: 0;
}
.vc-row.row-no-spaces .wp-block-columns {
    margin-left: 0;
    margin-right: 0;
}
.vc-row.row-no-spaces .wp-block-column {
    padding-left: 0;
    padding-right: 0;
}

/* Bilder (.wpb_single_image): natuerliche Groesse; der Lightbox-Container ist sonst Flex
   und zieht das Bild auf Spaltenbreite */
.vc-row .wp-block-image img {
    vertical-align: top;
}
.vc-row .wp-lightbox-container {
    display: block;
}
/* alignment="center" (.vc_align_center) */
.vc-row .wp-block-image .aligncenter,
.vc-row .wp-block-image.aligncenter {
    display: table;
    margin-left: auto;
    margin-right: auto;
}
.vc-row .wp-block-image.has-rounded-corners img {
    border-radius: 4px;
}

/* Bildraster (vc_gallery type="image_grid"): Vorschaubilder in Originalgroesse, 1px Abstand */
.vc-row .wp-block-gallery.is-image-grid {
    gap: 1px;
}
.vc-row .wp-block-gallery.is-image-grid > .wp-block-image {
    flex-grow: 0 !important;
    width: auto !important;
    margin: 0 !important;
}
/* Breite steht inline am Bild (Vorschaugroesse), Hoehe aus dem Seitenverhaeltnis */
.vc-row .wp-block-gallery.is-image-grid > .wp-block-image img {
    flex: none !important;
    max-width: 100%;
    object-fit: none !important;
}
.vc-row .wp-block-gallery.is-image-grid .wp-lightbox-container {
    display: block;
}

/* Trennlinie (.vc_separator, Farbe grey = #ebebeb) */
.vc-row .wp-block-separator {
    height: 1px;
    border: 0;
    margin-left: 0;
    margin-right: 0;
    opacity: 1;
    background: none !important;
    box-shadow: 0 1px 0 #ebebeb;
}
.vc-row .wp-block-separator.has-text-color {
    box-shadow: 0 1px 0 currentColor;
}

/* Mobil: Spalten mit 10px Abstand (template-basics: .vc_column_container) */
@media screen and (max-width: 767px) {
    .vc-row .wp-block-column {
        margin-bottom: 10px;
    }
    /* einspaltige Zeile: Abstand der (hier fehlenden) Spalte, als Innenabstand, damit er nicht kollabiert */
    .vc-row > .wp-block-group__inner-container:not(:has(> .wp-block-columns:only-child)) {
        padding-bottom: 10px;
    }
}

/*
 * Altes WPBakery-Markup ausserhalb der Seiteninhalte: Textbaustein [kennen] (vc_col-sm-4)
 * und fest verdrahtete Zeilen in template-kategorie/-produkt.php und single-produkt.php
 * (data-vc-full-width). Teilmenge aus js_composer.min.css 5.4.5. Die Template-Zeilen hat das
 * WPBakery-JS nie gestreckt (es fehlt das Geschwister-Element .vc_row-full-width) – sie behalten
 * nur die -15px-Raender von .vc_row, wie im Original.
 */
.vc_row {
    margin-left: -15px;
    margin-right: -15px;
}
.vc_row::before,
.vc_row::after {
    content: " ";
    display: table;
}
.vc_row::after {
    clear: both;
}
.vc_column_container {
    padding-left: 0;
    padding-right: 0;
    position: relative;
    min-height: 1px;
}
.vc_column-inner::before,
.vc_column-inner::after {
    content: " ";
    display: table;
}
.vc_column-inner::after {
    clear: both;
}
.vc_column_container > .vc_column-inner {
    box-sizing: border-box;
    padding-left: 15px;
    padding-right: 15px;
    width: 100%;
}
.wpb_content_element {
    margin-bottom: 35px;
}
.wpb_text_column :last-child {
    margin-bottom: 0;
}
@media (min-width: 768px) {
    .vc_col-sm-4 {
        float: left;
        width: 33.33333333%;
    }
    .vc_col-sm-12 {
        float: left;
        width: 100%;
    }
}

/* template-produkt.php: dort lief wpautop frueher ueber das WPBakery-Markup und hinterliess bei
   mehr als einer Zeile am Ende ein leeres <p> (1rem Abstand vor Katalogbild/Galerie in der mobilen
   Ansicht; bei nur einer Zeile nicht, z. B. Wischtuecher) – Abstand beibehalten */
.einzelprodukt .vc-row + .vc-row:last-child {
    margin-bottom: 1rem;
}

/* Theme-Regeln, die an WPBakery-Klassen hingen (template-basics.css: .wpb_text_column) */
.content .produktlist-item {
    background: #efefef;
    margin-bottom: 20px;
}

/*
 * 2. Seiten-CSS aus _wpb_shortcodes_custom_css (Seiten #2 Start und #4205 Testseite,
 *    identisch); Bild-URL relativ statt absolut.
 */
.vc_custom_1536912204410 {
    border-top-width: 2px !important;
    padding-top: 30px !important;
    padding-bottom: 30px !important;
    background-image: url(../../uploads/streifen.png?id=3813) !important;
    background-position: 0 0 !important;
    background-repeat: repeat !important;
    border-top-color: #f2f2f2 !important;
    border-top-style: solid !important;
}
.vc_custom_1535354514393 {
    margin-bottom: 0px !important;
}
.vc_custom_1545118579406 {
    padding-top: 40px !important;
}

/* Platzhalter fuer blockierte externe Inhalte, solange Borlabs Cookie fehlt (php-include/consent-fallback.php) */
.technika-blocked-content {
    background: #f2f2f2;
    border: 1px solid #ddd;
    padding: 30px 20px;
    text-align: center;
}
.technika-blocked-content p:last-child {
    margin-bottom: 0;
}
