/* ─────────────────────────────────────────────────────────────────────────
 * global-empty-wpbakery-row-collapse.css — GLOBAL defensive rule
 *
 * Symptom: pages (e.g. /de/ on the prod/staging content) carry leftover EMPTY
 * WPBakery rows in their post_content. The pagebuilder still renders each one as
 *
 *     <section>                       ← no class
 *       <div class="container">       ← theme gives this 64px top + 64px bottom
 *         <div class="row">
 *           <div class="col"></div>   ← nothing inside (whitespace only)
 *         </div>
 *       </div>
 *     </section>
 *
 * Because the `.container` keeps its 64px vertical padding even with no content,
 * every such stray row becomes an invisible 128px-tall band — reading to the user
 * as unexplained "space between elements". The /de/ home page on the staging
 * snapshot (b376u019-a) had 8 of these stacked between real sections.
 *
 * This is a CONTENT artifact (empty rows the editor left behind); the proper fix
 * is to strip them from post_content. This sheet is the DEFENSIVE belt-and-
 * suspenders so a stray empty row can never paint a phantom gap again, on any
 * page, regardless of the content state.
 *
 * Selector precision (verified against the live staging DOM, 2026-06-26):
 *   - `section:not([class])`            → only the bare `[vc_row]` wrappers; every
 *                                         real content section in this theme carries
 *                                         a class (product-cta-section, etc.).
 *   - `> .container:has(> .row > .col)`  → it IS a WPBakery row, not some other
 *                                         classless <section>.
 *   - `:not(:has(.col > *))`            → the col has NO element child → genuinely
 *                                         empty. (`:empty` can't be used: the col
 *                                         holds a "\n\t" whitespace text node, so
 *                                         it never matches `:empty`. Two SEPARATE
 *                                         same-level `:has()` are used — NOT nested,
 *                                         which CSS forbids.)
 * Matched exactly the 8 empty bands and 0 real (classed) sections.
 *
 * Zeroing the padding collapses the empty row to 0px height with no effect on any
 * row that has content. We deliberately do not `display:none` the section, so the
 * change is the smallest possible (just removes the phantom padding).
 * ───────────────────────────────────────────────────────────────────────── */
section:not([class]) > .container:has(> .row > .col):not(:has(.col > *)) {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
