/* =========================================================
   UIBI Performance Framework – Landingpage CSS v3.9.0
   Master Design System · 100% Token-basiert · Mobile-first
   Architecture Freeze Release · Keine hardcodierten Farben
   ========================================================= */


/* ╔══════════════════════════════════════════════════════╗
   ║  1. GLOBAL DESIGN TOKENS                            ║
   ╚══════════════════════════════════════════════════════╝ */

:root {
    /* ── Brand ──────────────────────────────────────────── */
    --uibi-primary:       #e84e1b;
    --uibi-primary-dark:  #c03d12;
    --uibi-dark:          #1a2332;
    --uibi-dark-2:        #243043;
    --uibi-text:          #1f2937;
    --uibi-text-light:    #6b7280;
    --uibi-bg:            #f8f9fa;
    --uibi-white:         #ffffff;
    --uibi-success:       #16a34a;
    --uibi-error:         #dc2626;
    --uibi-warning:       #f59e0b;

    /* ── Surfaces ────────────────────────────────────────── */
    --uibi-surface-0:      #ffffff;
    --uibi-surface-1:      #f8f9fa;
    --uibi-surface-soft:   #f3f4f6;
    --uibi-surface-accent: #fff5f2;

    /* ── Borders ─────────────────────────────────────────── */
    --uibi-border:         #e5e7eb;
    --uibi-border-subtle:  #f3f4f6;
    --uibi-focus-ring:     rgba(232,78,27,0.22);

    /* ── State: Error ────────────────────────────────────── */
    --uibi-error-bg:       #fef2f2;
    --uibi-error-border:   #fca5a5;
    --uibi-error-text:     #dc2626;

    /* ── State: Success ──────────────────────────────────── */
    --uibi-success-bg:     #f0fdf4;
    --uibi-success-border: #86efac;
    --uibi-success-text:   #16a34a;

    /* ── Glass / Overlay ─────────────────────────────────── */
    --uibi-glass-bg:           rgba(255,255,255,0.06);
    --uibi-glass-bg-hover:     rgba(255,255,255,0.09);
    --uibi-glass-border:       rgba(255,255,255,0.08);
    --uibi-glass-blur:         blur(8px);
    --uibi-glass-blur-subtle:  blur(4px);
    --uibi-overlay-white-10:   rgba(255,255,255,0.10);
    --uibi-overlay-white-20:   rgba(255,255,255,0.20);
    --uibi-overlay-dark-78:    rgba(26,35,50,0.78);
    --uibi-overlay-dark-97:    rgba(26,35,50,0.97);

    /* ── Shadows ─────────────────────────────────────────── */
    --uibi-shadow-xs:   0 1px 4px rgba(0,0,0,0.06);
    --uibi-shadow:      0 4px 16px rgba(0,0,0,0.08);
    --uibi-shadow-lg:   0 8px 32px rgba(0,0,0,0.12);
    --uibi-shadow-xl:   0 16px 48px rgba(0,0,0,0.16);
    --uibi-shadow-soft: 0 2px 12px rgba(0,0,0,0.07);
    --uibi-shadow-hero: 12px 0 48px rgba(0,0,0,0.18);
    --uibi-shadow-cta:  0 6px 20px var(--uibi-cta-shadow);

    /* ── Disabled State ─────────────────────────────────── */
    --uibi-disabled-bg:      #f3f4f6;
    --uibi-disabled-border:  #d1d5db;
    --uibi-disabled-text:    #9ca3af;
    --uibi-disabled-opacity: 0.5;

    /* ── Typography Scale ───────────────────────────────── */
    --uibi-font:          -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    --uibi-text-xs:       12px;
    --uibi-text-sm:       13px;
    --uibi-text-base:     15px;
    --uibi-text-md:       16px;
    --uibi-text-lg:       18px;
    --uibi-text-xl:       20px;
    --uibi-text-2xl:      24px;
    --uibi-text-3xl:      clamp(22px, 3.5vw, 32px);
    --uibi-text-4xl:      clamp(26px, 5vw, 48px);

    /* ── Weights ─────────────────────────────────────────── */
    --uibi-weight-normal:   400;
    --uibi-weight-medium:   500;
    --uibi-weight-semibold: 600;
    --uibi-weight-bold:     700;
    --uibi-weight-black:    800;

    /* ── Line-heights ────────────────────────────────────── */
    --uibi-lh-tight:   1.15;
    --uibi-lh-snug:    1.3;
    --uibi-lh-base:    1.6;
    --uibi-lh-relaxed: 1.75;

    /* ── Radii ───────────────────────────────────────────── */
    --uibi-radius-sm:  4px;
    --uibi-radius:     8px;
    --uibi-radius-md:  12px;
    --uibi-radius-lg:  20px;
    --uibi-radius-xl:  20px;
    --uibi-radius-pill:999px;

    /* ── Spacing ─────────────────────────────────────────── */
    --uibi-space-1:  4px;
    --uibi-space-2:  8px;
    --uibi-space-3:  12px;
    --uibi-space-4:  16px;
    --uibi-space-5:  20px;
    --uibi-space-6:  24px;
    --uibi-space-8:  32px;
    --uibi-space-10: 40px;
    --uibi-space-12: 48px;
    --uibi-space-16: 64px;
    --uibi-space-20: 80px;

    /* ── Section Padding – CANONICAL TOKENS (120 / 80 / 60) ─ */
    --uibi-section-padding-desktop: 120px;
    --uibi-section-padding-tablet:  80px;
    --uibi-section-padding-mobile:  60px;
    --uibi-section-py:    var(--uibi-section-padding-desktop);
    --uibi-section-py-sm: var(--uibi-section-padding-tablet);

    /* ── Layout ──────────────────────────────────────────── */
    --uibi-container:    1100px;
    --uibi-container-sm: 720px;

    /* ── Motion ──────────────────────────────────────────── */
    --uibi-transition:      0.2s ease;
    --uibi-transition-slow: 0.35s ease;

    /* ══════════════════════════════════════════════════════
       LP-DESIGN-TOKENS  (pro LP via style="" auf <body>
       überschreibbar – alle Fallbacks hier definiert)
       ══════════════════════════════════════════════════════ */

    /* Hero */
    --uibi-hero-bg:           #1a2332;
    --uibi-hero-text:         #ffffff;
    --uibi-hero-muted:        rgba(255,255,255,0.75);
    --uibi-hero-accent:       #e84e1b;
    --uibi-hero-overlay:      var(--uibi-overlay-dark-78);
    --uibi-hero-badge-bg:     var(--uibi-overlay-white-10);
    --uibi-hero-badge-border: rgba(255,255,255,0.22);
    --uibi-hero-trust-border: rgba(255,255,255,0.15);

    /* Ghost-Button auf dunklem Hero */
    --uibi-hero-ghost-border:       rgba(255,255,255,0.35);
    --uibi-hero-ghost-border-hover: rgba(255,255,255,0.60);
    --uibi-hero-ghost-bg-hover:     var(--uibi-overlay-white-10);

    /* ── Trust Block (v3.9.0) ────────────────────────────────── */
    --uibi-trust-item-text:  rgba(255,255,255,0.82);
    --uibi-trust-icon-bg:    var(--uibi-primary);

    /* ── Footer-Opacities */
    --uibi-footer-text-color: rgba(255,255,255,0.55);
    --uibi-footer-link-color: rgba(255,255,255,0.65);

    /* CTA-Button */
    --uibi-cta-bg:       #e84e1b;
    --uibi-cta-text:     #ffffff;
    --uibi-cta-bg-hover: #c03d12;
    --uibi-cta-shadow:   rgba(232,78,27,0.30);
    --uibi-cta-focus:    rgba(232,78,27,0.12);

    /* Sections */
    --uibi-section-bg:   #f8f9fa;
    --uibi-section-text: #1f2937;

    /* Partner-Logos max-height */
    --uibi-partner-logo-h: 44px;
}


/* ══════════════════════════════════════════════════════════
   SERVICE PRESETS – Default-Token-Profile
   Aktivierung: data-service="gas|bad|klima|notdienst" auf <body>
   Keine PHP/JS-Logik – reine CSS-Cascade-Defaults.
   Die 4 LP-Meta-Felder (hero_text_color, accent, cta_bg, cta_text)
   überschreiben via inline style="" weiterhin alles.
   ══════════════════════════════════════════════════════════ */

[data-service="gas"] {
    --uibi-hero-bg:      #1a2332;
    --uibi-cta-bg:       #e84e1b;
    --uibi-cta-bg-hover: #c03d12;
    --uibi-cta-shadow:   rgba(232,78,27,0.30);
    --uibi-cta-focus:    rgba(232,78,27,0.12);
    --uibi-hero-accent:  #e84e1b;
}

[data-service="bad"] {
    --uibi-hero-bg:           #f0f7ff;
    --uibi-hero-text:         #1a2332;
    --uibi-hero-muted:        rgba(26,35,50,0.60);
    --uibi-hero-badge-bg:     rgba(26,35,50,0.07);
    --uibi-hero-badge-border: rgba(26,35,50,0.15);
    --uibi-hero-trust-border: rgba(26,35,50,0.12);
    --uibi-hero-ghost-border:       rgba(26,35,50,0.30);
    --uibi-hero-ghost-border-hover: rgba(26,35,50,0.55);
    --uibi-hero-ghost-bg-hover:     rgba(26,35,50,0.05);
    --uibi-cta-bg:       #1a6fbc;
    --uibi-cta-bg-hover: #145c9e;
    --uibi-cta-shadow:   rgba(26,111,188,0.30);
    --uibi-cta-focus:    rgba(26,111,188,0.12);
    --uibi-hero-accent:  #1a6fbc;
    /* v3.8.2 FIX: Header-Kontrast für hellen Hero-Hintergrund */
    --uibi-header-text-color:   #1a2332;
    --uibi-header-logo-variant: dark;
}

[data-service="klima"] {
    --uibi-hero-bg:      #0d3a4a;
    --uibi-hero-accent:  #1ab8c4;
    --uibi-cta-bg:       #1ab8c4;
    --uibi-cta-bg-hover: #159aa5;
    --uibi-cta-shadow:   rgba(26,184,196,0.30);
    --uibi-cta-focus:    rgba(26,184,196,0.12);
}

[data-service="notdienst"] {
    --uibi-hero-bg:      #111827;
    --uibi-hero-accent:  #f05222;
    --uibi-cta-bg:       #f05222;
    --uibi-cta-bg-hover: #d04018;
    --uibi-cta-shadow:   rgba(240,82,34,0.35);
    --uibi-cta-focus:    rgba(240,82,34,0.14);
}


/* ╔══════════════════════════════════════════════════════╗
   ║  2. RESET & BASE                                    ║
   ╚══════════════════════════════════════════════════════╝ */

.uibi-lp *, .uibi-lp *::before, .uibi-lp *::after {
    box-sizing: border-box; margin: 0; padding: 0;
}
.uibi-lp {
    font-family: var(--uibi-font);
    font-size: var(--uibi-text-md);
    color: var(--uibi-text);
    line-height: var(--uibi-lh-base);
    -webkit-font-smoothing: antialiased;
    background: var(--uibi-white);
}
.uibi-lp img  { max-width: 100%; height: auto; display: block; }
.uibi-lp a    { color: var(--uibi-primary); text-decoration: none; }
.uibi-lp a:hover { text-decoration: underline; }

.uibi-container {
    max-width: var(--uibi-container);
    margin: 0 auto;
    padding: 0 var(--uibi-space-5);
}
.uibi-container--sm {
    max-width: var(--uibi-container-sm);
    margin: 0 auto;
    padding: 0 var(--uibi-space-5);
}


/* ╔══════════════════════════════════════════════════════╗
   ║  3. TYPOGRAFIE-HIERARCHIE                           ║
   ╚══════════════════════════════════════════════════════╝ */

.uibi-block__headline, .uibi-section__headline {
    font-size: var(--uibi-text-3xl);
    font-weight: var(--uibi-weight-bold);
    color: var(--uibi-dark);
    margin-bottom: var(--uibi-space-8);
    text-align: center;
    line-height: var(--uibi-lh-snug);
    letter-spacing: -0.015em;
}
.uibi-section__subline {
    font-size: var(--uibi-text-lg);
    color: var(--uibi-text-light);
    line-height: var(--uibi-lh-relaxed);
    text-align: center;
    max-width: 600px;
    margin: 0 auto var(--uibi-space-10);
}
.uibi-hero__headline {
    font-size: var(--uibi-text-4xl);
    font-weight: var(--uibi-weight-black);
    line-height: var(--uibi-lh-tight);
    color: var(--uibi-hero-text);
    letter-spacing: -0.025em;
    margin-bottom: var(--uibi-space-4);
}
.uibi-hero__subline {
    font-size: clamp(var(--uibi-text-md), 2.2vw, var(--uibi-text-xl));
    color: var(--uibi-hero-muted);
    line-height: var(--uibi-lh-base);
    margin-bottom: var(--uibi-space-6);
    max-width: 600px;
}


/* ╔══════════════════════════════════════════════════════╗
   ║  4. HEADER                                          ║
   ╚══════════════════════════════════════════════════════╝ */

.uibi-lp-header {
    background: var(--uibi-white);
    border-bottom: 2px solid var(--uibi-primary);
    position: sticky; top: 0; z-index: 200;
    box-shadow: var(--uibi-shadow-xs);
}
.uibi-lp-header__inner {
    display: flex; align-items: center; justify-content: space-between;
    max-width: var(--uibi-container); margin: 0 auto;
    padding: var(--uibi-space-3) var(--uibi-space-5);
    gap: var(--uibi-space-4); min-height: 60px;
}
.uibi-lp-header__logos  { display: flex; align-items: center; gap: var(--uibi-space-3); flex-shrink: 0; }
.uibi-lp-header__logo-img   { display: block; height: auto; object-fit: contain; }
.uibi-lp-header__logo-main  { max-height: 40px; max-width: 140px; }
.uibi-lp-header__logo-badge { display: none; }
.uibi-lp-header__logo-text  {
    font-weight: var(--uibi-weight-bold); font-size: var(--uibi-text-xl);
    color: var(--uibi-dark); white-space: nowrap;
}
.uibi-lp-header__trust { display: flex; align-items: center; gap: var(--uibi-space-3); flex-shrink: 0; }
.uibi-phone-link {
    color: var(--uibi-dark); font-size: var(--uibi-text-md);
    font-weight: var(--uibi-weight-bold);
    display: flex; align-items: center; gap: var(--uibi-space-2);
    white-space: nowrap; transition: color var(--uibi-transition);
}
.uibi-phone-link:hover { color: var(--uibi-primary); text-decoration: none; }
.uibi-lp-header__trust-badge {
    background: var(--uibi-dark); color: var(--uibi-white);
    padding: 4px var(--uibi-space-3); border-radius: var(--uibi-radius-pill);
    font-size: var(--uibi-text-xs); font-weight: var(--uibi-weight-semibold);
    white-space: nowrap; letter-spacing: 0.03em;
}


/* ╔══════════════════════════════════════════════════════╗
   ║  5. BUTTONS                                         ║
   ╚══════════════════════════════════════════════════════╝ */

.uibi-btn {
    display: inline-flex; align-items: center; justify-content: center;
    gap: var(--uibi-space-2); font-family: var(--uibi-font);
    font-weight: var(--uibi-weight-bold); font-size: var(--uibi-text-md);
    line-height: 1.2; padding: 14px 28px; border-radius: var(--uibi-radius);
    border: 2px solid transparent; cursor: pointer;
    transition: all var(--uibi-transition); text-decoration: none !important;
    -webkit-font-smoothing: antialiased; letter-spacing: 0.01em;
}
.uibi-btn--primary {
    background: var(--uibi-cta-bg);
    color: var(--uibi-cta-text) !important;
    border-color: var(--uibi-cta-bg);
    box-shadow: 0 4px 14px var(--uibi-cta-shadow);
}
.uibi-btn--primary:hover {
    background: var(--uibi-cta-bg-hover, var(--uibi-cta-bg));
    border-color: var(--uibi-cta-bg-hover, var(--uibi-cta-bg));
    filter: brightness(0.88);
    transform: translateY(-2px);
    box-shadow: 0 8px 24px var(--uibi-cta-shadow);
    text-decoration: none !important;
}
.uibi-btn--primary:hover:where([style*="--uibi-cta-bg-hover"]) { filter: none; }
.uibi-btn--primary:focus-visible {
    outline: 3px solid var(--uibi-focus-ring);
    outline-offset: 2px;
}
.uibi-btn--primary:disabled,
.uibi-btn--primary[aria-disabled="true"] {
    background: var(--uibi-disabled-bg);
    border-color: var(--uibi-disabled-border);
    color: var(--uibi-disabled-text) !important;
    opacity: var(--uibi-disabled-opacity);
    cursor: not-allowed; transform: none; box-shadow: none; filter: none;
}
.uibi-btn--secondary {
    background: var(--uibi-dark); color: var(--uibi-white) !important;
    border-color: var(--uibi-dark);
}
.uibi-btn--secondary:hover {
    background: var(--uibi-dark-2); border-color: var(--uibi-dark-2);
    text-decoration: none !important;
}
.uibi-btn--ghost {
    background: transparent; color: var(--uibi-text-light) !important;
    border-color: var(--uibi-border);
}
.uibi-btn--ghost:hover { border-color: var(--uibi-text); color: var(--uibi-text) !important; }
.uibi-btn--hero-ghost {
    background: transparent; color: var(--uibi-hero-text) !important;
    border-color: var(--uibi-hero-ghost-border);
}
.uibi-btn--hero-ghost:hover {
    background: var(--uibi-hero-ghost-bg-hover);
    border-color: var(--uibi-hero-ghost-border-hover);
}
.uibi-btn--lg   { font-size: var(--uibi-text-lg); padding: 18px 36px; }
.uibi-btn--full { width: 100%; }
.uibi-btn__text    { display: inline; }
.uibi-btn__spinner { display: inline-block; letter-spacing: 4px; animation: uibi-pulse 1s infinite; }
@keyframes uibi-pulse { 0%,100%{opacity:1} 50%{opacity:0.3} }


/* ╔══════════════════════════════════════════════════════╗
   ║  6. SECTION-WRAPPER & SPACING                       ║
   ╚══════════════════════════════════════════════════════╝ */

.uibi-block { padding: var(--uibi-section-padding-desktop) 0; }
.uibi-block--alt { background: var(--uibi-section-bg); color: var(--uibi-section-text); }
.uibi-block--bordered { border-top: 1px solid var(--uibi-border); }


/* ╔══════════════════════════════════════════════════════╗
   ║  7. HERO – alle Layouts                             ║
   ╚══════════════════════════════════════════════════════╝ */

.uibi-hero {
    position: relative; overflow: hidden;
    background: var(--uibi-hero-bg);
}

/* Badge */
.uibi-hero__badge {
    display: inline-flex; align-items: center; gap: var(--uibi-space-2);
    background: var(--uibi-hero-badge-bg); color: var(--uibi-hero-text);
    border: 1px solid var(--uibi-hero-badge-border); border-radius: var(--uibi-radius-pill);
    padding: 6px var(--uibi-space-4); font-size: var(--uibi-text-sm);
    font-weight: var(--uibi-weight-semibold); margin-bottom: var(--uibi-space-5);
    letter-spacing: 0.02em;
}
.uibi-hero__badge .dashicons { font-size: 16px; color: var(--uibi-hero-accent); }

/* Preisanker */
.uibi-hero__price-anchor {
    display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--uibi-space-2);
    background: var(--uibi-hero-badge-bg); border: 1px solid var(--uibi-hero-badge-border);
    border-radius: var(--uibi-radius); padding: var(--uibi-space-3) var(--uibi-space-5);
    margin-bottom: var(--uibi-space-6); max-width: 480px;
}
.uibi-hero__price-label      { color: var(--uibi-hero-muted); font-size: var(--uibi-text-sm); font-weight: var(--uibi-weight-semibold); }
.uibi-hero__price-range      { color: var(--uibi-hero-text); font-size: var(--uibi-text-2xl); font-weight: var(--uibi-weight-black); }
.uibi-hero__price-disclaimer { width: 100%; color: var(--uibi-hero-muted); font-size: var(--uibi-text-xs); font-style: italic; opacity: 0.8; }

/* CTA */
.uibi-hero__cta-group  { display: flex; flex-direction: column; gap: var(--uibi-space-3); margin-bottom: var(--uibi-space-8); }
.uibi-hero__cta-hint   { color: var(--uibi-hero-muted); font-size: var(--uibi-text-sm); }

/* Trust-Bar */
.uibi-hero__trust-bar {
    display: flex; flex-wrap: wrap; gap: var(--uibi-space-4);
    border-top: 1px solid var(--uibi-hero-trust-border); padding-top: var(--uibi-space-5);
}
.uibi-hero__trust-item {
    display: flex; align-items: center; gap: var(--uibi-space-2);
    color: var(--uibi-hero-muted); font-size: var(--uibi-text-sm); font-weight: var(--uibi-weight-semibold);
}
.uibi-hero__trust-item .dashicons { font-size: 17px; color: var(--uibi-hero-accent); }

/* Fullwidth */
.uibi-hero--fullwidth { padding: var(--uibi-space-16) 0 var(--uibi-space-12); }
.uibi-hero--fullwidth .uibi-hero__content { max-width: 720px; }

/* Split */
.uibi-hero--split { padding: 0; }
.uibi-hero__split-grid {
    display: grid; grid-template-columns: 1fr 1fr;
    align-items: center; min-height: 580px; gap: 0;
}
.uibi-hero__split-text  { padding: var(--uibi-space-16) var(--uibi-space-12) var(--uibi-space-16) var(--uibi-space-5); }
.uibi-hero__split-image { position: relative; height: 100%; min-height: 500px; display: flex; align-items: stretch; }

/* ─── Media-Frame: immer var(--uibi-radius-lg) + overflow hidden ─── */
.uibi-hero__image-frame {
    width: 100%; position: relative; overflow: hidden;
    border-radius: 0 var(--uibi-radius-lg) var(--uibi-radius-lg) 0;
    margin: var(--uibi-space-5) 0;
    box-shadow: var(--uibi-shadow-hero);
}
.uibi-hero__image-frame img,
.uibi-hero__image-frame video,
.uibi-hero__image-frame iframe {
    width: 100%; height: 100%; object-fit: cover;
    object-position: center top; display: block;
}

/* Embedded Media Widget */
.uibi-media-frame {
    border-radius: var(--uibi-radius-lg);
    overflow: hidden;
    box-shadow: var(--uibi-shadow-xl);
}
.uibi-media-frame--ratio-16-9 { aspect-ratio: 16/9; }
.uibi-media-frame--ratio-16-9 img,
.uibi-media-frame--ratio-16-9 video,
.uibi-media-frame--ratio-16-9 iframe { height: 100%; width: 100%; display: block; }

/* Video */
.uibi-hero--video { padding: var(--uibi-space-20) 0 var(--uibi-space-16); min-height: 580px; }
.uibi-hero__video-bg     { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.uibi-hero__video-poster {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; z-index: 1;
}
.uibi-hero__video-overlay {
    position: absolute; inset: 0; z-index: 2;
    background: var(--uibi-hero-overlay);
}
.uibi-hero__video-frame,
.uibi-hero__video-mp4 {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; z-index: 1; pointer-events: none;
}
.uibi-hero__content--video { position: relative; z-index: 10; max-width: 720px; }


/* ╔══════════════════════════════════════════════════════╗
   ║  8. TRUST-LEISTE                                    ║
   ╚══════════════════════════════════════════════════════╝ */

.uibi-trust-inline {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
    gap: var(--uibi-space-5) var(--uibi-space-8);
    padding: var(--uibi-space-6) 0;
    border-top: 1px solid var(--uibi-border);
    border-bottom: 1px solid var(--uibi-border);
}
.uibi-trust-inline__item {
    display: flex; align-items: center; gap: var(--uibi-space-2);
    font-size: var(--uibi-text-sm); font-weight: var(--uibi-weight-semibold);
    color: var(--uibi-text); white-space: nowrap;
}
.uibi-trust-inline__item .dashicons { font-size: 18px; color: var(--uibi-primary); }


/* ╔══════════════════════════════════════════════════════╗
   ║  9. PARTNER & ZERTIFIKATE                           ║
   ║  Logos: gleich groß · keine Schatten · kein Hover   ║
   ╚══════════════════════════════════════════════════════╝ */

.uibi-block--partner { background: var(--uibi-white); padding: var(--uibi-space-12) 0; }
.uibi-partner__label {
    text-align: center; font-size: var(--uibi-text-xs);
    font-weight: var(--uibi-weight-semibold); letter-spacing: 0.08em;
    text-transform: uppercase; color: var(--uibi-text-light); margin-bottom: var(--uibi-space-6);
}
.uibi-partner__logos {
    display: flex; flex-wrap: wrap; align-items: center;
    justify-content: center; gap: var(--uibi-space-8) var(--uibi-space-10);
}
.uibi-partner__logo {
    display: flex; align-items: center; justify-content: center;
    opacity: 0.65; filter: grayscale(30%);
}
.uibi-partner__logo img {
    max-height: var(--uibi-partner-logo-h);
    width: auto; max-width: 140px; object-fit: contain; display: block;
}


/* ╔══════════════════════════════════════════════════════╗
   ║  10. FILTER-ENGINE                                  ║
   ╚══════════════════════════════════════════════════════╝ */

.uibi-block--filter { background: var(--uibi-bg); }
.uibi-filter__wrapper { max-width: 680px; margin: 0 auto; }
.uibi-filter__header  { margin-bottom: var(--uibi-space-8); text-align: center; }
.uibi-filter__headline {
    font-size: var(--uibi-text-3xl); font-weight: var(--uibi-weight-bold);
    color: var(--uibi-dark); margin-bottom: var(--uibi-space-4); line-height: var(--uibi-lh-snug);
}
.uibi-filter__progress-bar  { height: 5px; background: var(--uibi-border); border-radius: var(--uibi-radius-pill); overflow: hidden; margin-bottom: var(--uibi-space-2); }
.uibi-filter__progress-fill { height: 100%; background: var(--uibi-cta-bg); border-radius: var(--uibi-radius-pill); transition: width 0.4s ease; width: 0%; }
.uibi-filter__step-counter  { font-size: var(--uibi-text-sm); color: var(--uibi-text-light); }
.uibi-filter__step           { display: none; }
.uibi-filter__step.is-active { display: block; animation: uibi-fade-in 0.25s ease; }
@keyframes uibi-fade-in { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }

.uibi-filter__question {
    font-size: clamp(var(--uibi-text-lg), 2.5vw, var(--uibi-text-2xl));
    font-weight: var(--uibi-weight-bold); color: var(--uibi-dark);
    margin-bottom: var(--uibi-space-5); line-height: var(--uibi-lh-snug);
}
.uibi-filter__options  { display: flex; flex-direction: column; gap: var(--uibi-space-3); }
.uibi-filter__option   { display: flex; align-items: center; padding: 0; cursor: pointer; }
.uibi-filter__option input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; }
.uibi-filter__option-content {
    display: flex; align-items: center; gap: var(--uibi-space-4); width: 100%;
    padding: var(--uibi-space-5); background: var(--uibi-surface-0);
    border: 2px solid var(--uibi-border); border-radius: var(--uibi-radius);
    transition: all var(--uibi-transition); cursor: pointer;
    font-weight: var(--uibi-weight-medium); font-size: var(--uibi-text-md);
}
.uibi-filter__option-content:hover,
.uibi-filter__option input:checked + .uibi-filter__option-content {
    border-color: var(--uibi-cta-bg); background: var(--uibi-surface-accent);
}
.uibi-filter__option-check {
    width: 22px; height: 22px; border: 2px solid var(--uibi-border);
    border-radius: 50%; flex-shrink: 0; transition: all var(--uibi-transition); position: relative;
}
.uibi-filter__option input:checked + .uibi-filter__option-content .uibi-filter__option-check {
    border-color: var(--uibi-cta-bg); background: var(--uibi-cta-bg);
}
.uibi-filter__option input:checked + .uibi-filter__option-content .uibi-filter__option-check::after {
    content: ''; position: absolute; top: 4px; left: 4px;
    width: 10px; height: 10px; border-radius: 50%; background: var(--uibi-white);
}
.uibi-filter__option-label { font-size: var(--uibi-text-md); line-height: 1.4; flex: 1; }
.uibi-filter__select {
    width: 100%; padding: 14px var(--uibi-space-4); border: 2px solid var(--uibi-border);
    border-radius: var(--uibi-radius); font-size: var(--uibi-text-md);
    font-family: var(--uibi-font); background: var(--uibi-surface-0); color: var(--uibi-text);
    margin-bottom: var(--uibi-space-4); appearance: none; cursor: pointer;
}
.uibi-filter__nav {
    display: flex; align-items: center; justify-content: space-between;
    margin-top: var(--uibi-space-5); padding-top: var(--uibi-space-4); border-top: 1px solid var(--uibi-border);
}
.uibi-filter__back-btn {
    background: transparent; color: var(--uibi-text-light) !important;
    border: 2px solid var(--uibi-border); padding: 10px var(--uibi-space-5);
    font-size: var(--uibi-text-sm); font-weight: var(--uibi-weight-semibold);
    border-radius: var(--uibi-radius); cursor: pointer; transition: all var(--uibi-transition); font-family: var(--uibi-font);
}
.uibi-filter__back-btn:hover { border-color: var(--uibi-text); color: var(--uibi-text) !important; }
.uibi-filter__nav-hint         { font-size: var(--uibi-text-sm); color: var(--uibi-text-light); font-weight: var(--uibi-weight-medium); }
.uibi-filter__disqualify-icon,
.uibi-filter__qualified-icon   { font-size: 44px; margin-bottom: var(--uibi-space-4); text-align: center; }
.uibi-filter__qualified-icon   { color: var(--uibi-success); }
.uibi-filter__disqualify-title { font-size: var(--uibi-text-xl); font-weight: var(--uibi-weight-bold); margin-bottom: var(--uibi-space-3); }
.uibi-filter__disqualify-text  { color: var(--uibi-text-light); margin-bottom: var(--uibi-space-5); line-height: var(--uibi-lh-relaxed); }


/* ╔══════════════════════════════════════════════════════╗
   ║  11. FAIRNESS                                       ║
   ╚══════════════════════════════════════════════════════╝ */

.uibi-fairness__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--uibi-space-6); }
.uibi-fairness__item { display: flex; gap: var(--uibi-space-4); align-items: flex-start; }
.uibi-fairness__icon {
    flex-shrink: 0; width: 48px; height: 48px; background: var(--uibi-primary);
    border-radius: 50%; display: flex; align-items: center; justify-content: center;
}
.uibi-fairness__icon .dashicons { color: var(--uibi-white); font-size: 22px; }
.uibi-fairness__content h3 { font-size: var(--uibi-text-lg); font-weight: var(--uibi-weight-bold); margin-bottom: var(--uibi-space-2); line-height: var(--uibi-lh-snug); }
.uibi-fairness__content p  { color: var(--uibi-text-light); font-size: var(--uibi-text-base); line-height: var(--uibi-lh-relaxed); }


/* ╔══════════════════════════════════════════════════════╗
   ║  12. TRUST / WARUM UIBI                             ║
   ╚══════════════════════════════════════════════════════╝ */

.uibi-block--trust { background: var(--uibi-dark); }
.uibi-block--trust .uibi-block__headline,
.uibi-block--trust .uibi-section__headline { color: var(--uibi-white); }
/* uibi-why__* (legacy/alias) */
.uibi-why__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--uibi-space-6); }
.uibi-why__item {
    background: var(--uibi-glass-bg); border: 1px solid var(--uibi-glass-border);
    border-radius: var(--uibi-radius-md); padding: var(--uibi-space-6);
    transition: background var(--uibi-transition);
}
.uibi-why__item:hover { background: var(--uibi-glass-bg-hover); }
.uibi-why__item .dashicons { font-size: 30px; color: var(--uibi-primary); margin-bottom: var(--uibi-space-3); display: block; }
.uibi-why__item h3 { font-size: var(--uibi-text-lg); font-weight: var(--uibi-weight-bold); color: var(--uibi-white); margin-bottom: var(--uibi-space-2); }
.uibi-why__item p  { color: var(--uibi-trust-item-text); font-size: var(--uibi-text-sm); line-height: var(--uibi-lh-relaxed); }
/* uibi-trust__* (aktuelle Template-Klassen – identisches Styling) */
.uibi-trust__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--uibi-space-6); }
.uibi-trust__item {
    background: var(--uibi-glass-bg); border: 1px solid var(--uibi-glass-border);
    border-radius: var(--uibi-radius-md); padding: var(--uibi-space-6);
    transition: background var(--uibi-transition);
    display: flex; gap: var(--uibi-space-4); align-items: flex-start;
}
.uibi-trust__item:hover { background: var(--uibi-glass-bg-hover); }
.uibi-trust__icon {
    flex-shrink: 0; width: 48px; height: 48px;
    background: var(--uibi-primary); border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
}
.uibi-trust__icon .dashicons { font-size: 24px; color: var(--uibi-white); display: block; }
.uibi-trust__content h3 { font-size: var(--uibi-text-lg); font-weight: var(--uibi-weight-bold); color: var(--uibi-white); margin-bottom: var(--uibi-space-2); line-height: var(--uibi-lh-snug); }
.uibi-trust__content p  { color: var(--uibi-trust-item-text); font-size: var(--uibi-text-sm); line-height: var(--uibi-lh-relaxed); }


/* ╔══════════════════════════════════════════════════════╗
   ║  13. SOCIAL PROOF                                   ║
   ╚══════════════════════════════════════════════════════╝ */

.uibi-sp__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--uibi-space-5); }
.uibi-sp__item {
    background: var(--uibi-surface-0); border: 1px solid var(--uibi-border);
    border-radius: var(--uibi-radius-md); padding: var(--uibi-space-6);
    box-shadow: var(--uibi-shadow); transition: box-shadow var(--uibi-transition);
}
.uibi-sp__item:hover { box-shadow: var(--uibi-shadow-lg); }
.uibi-sp__stars   { color: var(--uibi-warning); font-size: var(--uibi-text-lg); margin-bottom: var(--uibi-space-3); }
.uibi-sp__text    { font-style: italic; color: var(--uibi-text); margin-bottom: var(--uibi-space-4); font-size: var(--uibi-text-base); line-height: var(--uibi-lh-relaxed); }
.uibi-sp__name    { font-weight: var(--uibi-weight-bold); font-size: var(--uibi-text-sm); color: var(--uibi-dark); }
.uibi-sp__project { color: var(--uibi-text-light); font-size: var(--uibi-text-xs); margin-top: 2px; }


/* ╔══════════════════════════════════════════════════════╗
   ║  14. KONTAKTFORMULAR                                ║
   ╚══════════════════════════════════════════════════════╝ */

.uibi-block--contact-form { background: var(--uibi-bg); }
.uibi-form__wrapper {
    max-width: 640px; margin: 0 auto; background: var(--uibi-surface-0);
    border-radius: var(--uibi-radius-md); padding: var(--uibi-space-10);
    box-shadow: var(--uibi-shadow-lg);
}
.uibi-form__headline { font-size: clamp(var(--uibi-text-xl),2.5vw,var(--uibi-text-3xl)); font-weight: var(--uibi-weight-bold); margin-bottom: var(--uibi-space-2); color: var(--uibi-dark); line-height: var(--uibi-lh-snug); }
.uibi-form__subline  { color: var(--uibi-text-light); margin-bottom: var(--uibi-space-8); font-size: var(--uibi-text-base); line-height: var(--uibi-lh-relaxed); }
.uibi-form__row--2col { display: grid; grid-template-columns: 1fr 1fr; gap: var(--uibi-space-4); }
.uibi-form__field    { margin-bottom: var(--uibi-space-4); }
.uibi-form__field label  { display: block; font-weight: var(--uibi-weight-semibold); font-size: var(--uibi-text-sm); margin-bottom: 5px; color: var(--uibi-text); }
.uibi-form__field-hint   { font-weight: var(--uibi-weight-normal); font-size: var(--uibi-text-xs); color: var(--uibi-text-light); display: block; margin-top: 2px; }
.uibi-form__required     { color: var(--uibi-primary); }
.uibi-form__field input[type="text"],
.uibi-form__field input[type="tel"],
.uibi-form__field input[type="email"],
.uibi-form__field input[type="number"],
.uibi-form__field select,
.uibi-form__field textarea {
    width: 100%; padding: 12px 14px; border: 1.5px solid var(--uibi-border);
    border-radius: var(--uibi-radius); font-size: var(--uibi-text-md); font-family: var(--uibi-font);
    color: var(--uibi-text); background: var(--uibi-surface-0);
    transition: border-color var(--uibi-transition), box-shadow var(--uibi-transition);
    appearance: none; line-height: var(--uibi-lh-base);
}
.uibi-form__field input:disabled,
.uibi-form__field select:disabled,
.uibi-form__field textarea:disabled {
    background: var(--uibi-disabled-bg);
    border-color: var(--uibi-disabled-border);
    color: var(--uibi-disabled-text);
    cursor: not-allowed; opacity: var(--uibi-disabled-opacity);
}
.uibi-form__field select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px;
}
.uibi-form__field input:focus,
.uibi-form__field select:focus,
.uibi-form__field textarea:focus {
    outline: none; border-color: var(--uibi-cta-bg);
    box-shadow: 0 0 0 3px var(--uibi-cta-focus);
}
.uibi-form__field input.is-invalid,
.uibi-form__field select.is-invalid { border-color: var(--uibi-error-border); }
.uibi-form__field textarea { resize: vertical; min-height: 80px; }
.uibi-form__anrede-group  { display: flex; gap: var(--uibi-space-3); flex-wrap: wrap; }
.uibi-form__submit-area   { margin-top: var(--uibi-space-2); }
.uibi-form__privacy { font-size: var(--uibi-text-xs); color: var(--uibi-text-light); margin-top: var(--uibi-space-3); text-align: center; line-height: 1.5; }

/* Error / Success – vollständig tokenisiert */
.uibi-form__error {
    background: var(--uibi-error-bg); border: 1px solid var(--uibi-error-border);
    border-radius: var(--uibi-radius); padding: var(--uibi-space-3) var(--uibi-space-4);
    font-size: var(--uibi-text-sm); color: var(--uibi-error-text); margin-bottom: var(--uibi-space-3);
}
.uibi-form__success { text-align: center; padding: var(--uibi-space-10) 0; }
.uibi-form__success-icon { font-size: 52px; color: var(--uibi-success); margin-bottom: var(--uibi-space-4); }
.uibi-form__success-msg {
    background: var(--uibi-success-bg); border: 1px solid var(--uibi-success-border);
    border-radius: var(--uibi-radius); padding: var(--uibi-space-4) var(--uibi-space-6);
    color: var(--uibi-success-text); font-size: var(--uibi-text-sm);
}

/* Rückruf */
.uibi-form__rueckruf-group  { display: flex; flex-wrap: wrap; gap: var(--uibi-space-2); }
.uibi-form__rueckruf-option { cursor: pointer; }
.uibi-form__rueckruf-option input { position: absolute; opacity: 0; }
.uibi-form__rueckruf-option span {
    display: block; padding: 8px var(--uibi-space-3); border: 1.5px solid var(--uibi-border);
    border-radius: var(--uibi-radius-pill); font-size: var(--uibi-text-sm);
    font-weight: var(--uibi-weight-medium); cursor: pointer; transition: all var(--uibi-transition);
}
.uibi-form__rueckruf-option input:checked + span {
    border-color: var(--uibi-cta-bg); color: var(--uibi-cta-bg);
    background: var(--uibi-surface-accent);
}

/* Upload */
.uibi-form__upload-area {
    border: 2px dashed var(--uibi-border); border-radius: var(--uibi-radius);
    padding: var(--uibi-space-6); text-align: center; position: relative;
    cursor: pointer; transition: border-color var(--uibi-transition);
}
.uibi-form__upload-area:hover { border-color: var(--uibi-cta-bg); }
.uibi-form__upload-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.uibi-form__upload-placeholder .dashicons { font-size: 32px; color: var(--uibi-text-light); margin-bottom: var(--uibi-space-2); }
.uibi-form__upload-placeholder small { display: block; color: var(--uibi-text-light); font-size: var(--uibi-text-xs); margin-top: var(--uibi-space-1); }
.uibi-form__upload-preview img { max-height: 120px; margin: 0 auto var(--uibi-space-2); border-radius: var(--uibi-radius); }
.uibi-form__upload-remove { position: absolute; top: var(--uibi-space-2); right: var(--uibi-space-2); background: var(--uibi-error); color: var(--uibi-white); border: none; border-radius: 50%; width: 24px; height: 24px; cursor: pointer; font-size: 14px; }
.uibi-form__upload-progress { display: flex; align-items: center; gap: var(--uibi-space-3); }
.uibi-form__upload-spinner { width: 20px; height: 20px; border: 2px solid var(--uibi-border); border-top-color: var(--uibi-primary); border-radius: 50%; animation: uibi-spin 0.8s linear infinite; }
@keyframes uibi-spin { to { transform: rotate(360deg); } }

/* Multi-Upload */
.uibi-form__multi-upload { display: flex; flex-direction: column; gap: var(--uibi-space-3); }
.uibi-form__upload-list  { display: flex; flex-direction: column; gap: var(--uibi-space-2); }
.uibi-form__upload-item  { display: flex; align-items: center; gap: var(--uibi-space-3); background: var(--uibi-surface-1); border: 1px solid var(--uibi-border); border-radius: var(--uibi-radius); padding: var(--uibi-space-3); }
.uibi-form__upload-thumb { width: 48px; height: 48px; border-radius: var(--uibi-radius); overflow: hidden; background: var(--uibi-surface-soft); flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.uibi-form__upload-thumb img { width: 100%; height: 100%; object-fit: cover; }
.uibi-form__upload-thumb .dashicons { font-size: 22px; color: var(--uibi-text-light); }
.uibi-form__upload-thumb .uibi-form__upload-spinner { width: 18px; height: 18px; }
.uibi-form__upload-item-name   { flex: 1; font-size: var(--uibi-text-sm); color: var(--uibi-text); word-break: break-all; }
.uibi-form__upload-item-remove { flex-shrink: 0; width: 26px; height: 26px; border: none; cursor: pointer; background: var(--uibi-error); color: var(--uibi-white); border-radius: 50%; font-size: 15px; line-height: 26px; padding: 0; text-align: center; transition: opacity var(--uibi-transition); }
.uibi-form__upload-item-remove:hover { opacity: 0.8; }
.uibi-form__upload-add { border: 2px dashed var(--uibi-border); border-radius: var(--uibi-radius); transition: border-color var(--uibi-transition); }
.uibi-form__upload-add:hover { border-color: var(--uibi-cta-bg); }
.uibi-form__upload-btn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--uibi-space-2); padding: var(--uibi-space-5); cursor: pointer; text-align: center; position: relative; }
.uibi-form__upload-btn .dashicons { font-size: 28px; color: var(--uibi-text-light); }
.uibi-form__upload-btn span  { font-size: var(--uibi-text-sm); font-weight: var(--uibi-weight-semibold); color: var(--uibi-text); }
.uibi-form__upload-btn small { font-size: var(--uibi-text-xs); color: var(--uibi-text-light); }


/* ╔══════════════════════════════════════════════════════╗
   ║  15. FAQ                                            ║
   ╚══════════════════════════════════════════════════════╝ */

.uibi-block--faq { background: var(--uibi-white); }
.uibi-faq__list  { max-width: 720px; margin: 0 auto; display: flex; flex-direction: column; gap: var(--uibi-space-2); }
.uibi-faq__item  { border: 1px solid var(--uibi-border); border-radius: var(--uibi-radius); overflow: hidden; transition: border-color var(--uibi-transition); }
.uibi-faq__item:hover { border-color: var(--uibi-text-light); }
.uibi-faq__question {
    width: 100%; text-align: left; background: none; border: none; cursor: pointer;
    display: flex; justify-content: space-between; align-items: center;
    padding: var(--uibi-space-5); font-size: var(--uibi-text-md);
    font-weight: var(--uibi-weight-semibold); color: var(--uibi-dark);
    font-family: var(--uibi-font); gap: var(--uibi-space-3);
    transition: background var(--uibi-transition); line-height: var(--uibi-lh-snug);
}
.uibi-faq__question:hover { background: var(--uibi-surface-1); }
.uibi-faq__icon { flex-shrink: 0; color: var(--uibi-primary); font-size: 22px; font-weight: var(--uibi-weight-normal); transition: transform var(--uibi-transition-slow); }
.uibi-faq__question[aria-expanded="true"] .uibi-faq__icon { transform: rotate(45deg); }
.uibi-faq__answer { padding: 0 var(--uibi-space-5) var(--uibi-space-5); color: var(--uibi-text-light); line-height: var(--uibi-lh-relaxed); font-size: var(--uibi-text-base); }


/* ╔══════════════════════════════════════════════════════╗
   ║  16. FOOTER                                         ║
   ╚══════════════════════════════════════════════════════╝ */

.uibi-lp-footer { background: var(--uibi-dark); padding: var(--uibi-space-5) 0; }
.uibi-lp-footer__inner {
    display: flex; align-items: center; justify-content: space-between;
    max-width: var(--uibi-container); margin: 0 auto;
    padding: 0 var(--uibi-space-5); font-size: var(--uibi-text-sm);
    color: var(--uibi-footer-text-color); flex-wrap: wrap; gap: var(--uibi-space-2);
}
.uibi-lp-footer__inner a { color: var(--uibi-footer-link-color); transition: color var(--uibi-transition); }
.uibi-lp-footer__inner a:hover { color: var(--uibi-white); text-decoration: none; }
.uibi-lp-footer__logos { display: flex; align-items: center; gap: var(--uibi-space-4); opacity: 0.4; filter: brightness(0) invert(1); }
.uibi-lp-footer__logos img { max-height: 28px; width: auto; }


/* ╔══════════════════════════════════════════════════════╗
   ║  17. STICKY CTA (Mobile)                            ║
   ╚══════════════════════════════════════════════════════╝ */

.uibi-sticky-cta {
    display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 150;
    padding: var(--uibi-space-3) var(--uibi-space-4) var(--uibi-space-4);
    gap: var(--uibi-space-2);
    background: linear-gradient(to top, var(--uibi-overlay-dark-97) 60%, transparent);
    justify-content: center; align-items: center;
}
.uibi-sticky-cta .uibi-btn { flex: 1; max-width: 230px; font-size: var(--uibi-text-base); padding: 14px var(--uibi-space-5); }
.uibi-scroll-trigger { cursor: pointer; }


/* ╔══════════════════════════════════════════════════════╗
   ║  18. color-mix() – NUR mit @supports-Fallback       ║
   ╚══════════════════════════════════════════════════════╝ */

@supports not (color: color-mix(in srgb, black, white)) {
    .uibi-btn--primary:focus-visible {
        outline: 3px solid var(--uibi-focus-ring);
        outline-offset: 2px;
    }
}
@supports (color: color-mix(in srgb, black, white)) {
    .uibi-btn--primary:focus-visible {
        outline: 3px solid color-mix(in srgb, var(--uibi-cta-bg) 40%, transparent);
        outline-offset: 2px;
    }
}


/* ╔══════════════════════════════════════════════════════╗
   ║  19. RESPONSIVE                                     ║
   ╚══════════════════════════════════════════════════════╝ */

/* Tablet (769–1024px) */
@media (min-width: 769px) and (max-width: 1024px) {
    :root {
        --uibi-section-padding-desktop: var(--uibi-section-padding-tablet);
        --uibi-section-py: var(--uibi-section-padding-tablet);
    }
    .uibi-hero--fullwidth { padding: var(--uibi-section-padding-tablet) 0; }
    .uibi-hero__split-grid { min-height: 480px; }
    .uibi-hero__split-text { padding: var(--uibi-space-12) var(--uibi-space-10) var(--uibi-space-12) var(--uibi-space-5); }
    .uibi-why__grid { grid-template-columns: 1fr 1fr; }
    .uibi-trust__grid { grid-template-columns: 1fr 1fr; }
    .uibi-sp__grid  { grid-template-columns: 1fr 1fr; }
}

/* Desktop CTA inline */
@media (min-width: 769px) {
    .uibi-hero__cta-group { flex-direction: row; align-items: center; }
    .uibi-hero__cta-group .uibi-btn--lg { width: auto; }
}

/* Mobile (≤768px) */
@media (max-width: 768px) {
    :root {
        --uibi-section-padding-desktop: var(--uibi-section-padding-mobile);
        --uibi-section-py: var(--uibi-section-padding-mobile);
        --uibi-partner-logo-h: 36px;
    }
    .uibi-lp-header__logo-main   { max-height: 32px; max-width: 110px; }
    .uibi-lp-header__trust-badge { display: none; }
    .uibi-phone-link              { font-size: var(--uibi-text-base); }

    .uibi-hero--fullwidth { padding: var(--uibi-space-12) 0 var(--uibi-space-10); }
    .uibi-hero__split-grid { grid-template-columns: 1fr; min-height: auto; }
    .uibi-hero__split-text  { padding: var(--uibi-space-10) var(--uibi-space-5) var(--uibi-space-6); order: 1; }
    .uibi-hero__split-image { order: 2; min-height: 220px; }
    .uibi-hero__image-frame {
        border-radius: var(--uibi-radius-lg);
        margin: 0 0 var(--uibi-space-10);
        min-height: 220px;
        box-shadow: var(--uibi-shadow-lg);
    }
    .uibi-hero--video { padding: var(--uibi-space-12) 0 var(--uibi-space-10); }
    .uibi-hero__video-frame  { display: none; }
    .uibi-hero__video-poster { display: block; }

    .uibi-fairness__grid  { grid-template-columns: 1fr; }
    .uibi-why__grid       { grid-template-columns: 1fr; }
    .uibi-trust__grid     { grid-template-columns: 1fr; }
    .uibi-sp__grid        { grid-template-columns: 1fr; }
    .uibi-form__row--2col { grid-template-columns: 1fr; }
    .uibi-partner__logos  { gap: var(--uibi-space-6); }

    .uibi-filter__options        { gap: 14px; }
    .uibi-filter__option-content { padding: var(--uibi-space-5) var(--uibi-space-4); min-height: 64px; }
    .uibi-filter__question       { font-size: var(--uibi-text-lg); margin-bottom: var(--uibi-space-6); }

    .uibi-form__wrapper { padding: var(--uibi-space-6) var(--uibi-space-4); border-radius: 0; box-shadow: none; margin: 0 calc(-1 * var(--uibi-space-5)); }

    .uibi-sticky-cta { display: flex; }
    .uibi-lp-footer  { margin-bottom: 72px; }
    .uibi-btn--lg    { font-size: var(--uibi-text-lg); padding: 16px var(--uibi-space-6); min-height: 56px; }
}


/* ╔══════════════════════════════════════════════════════╗
   ║  v3.8.1 ADDITIVE ERWEITERUNGEN                     ║
   ╚══════════════════════════════════════════════════════╝ */

/* ── Neue Tokens ────────────────────────────────────────────── */
:root {
    /* Microheader */
    --uibi-header-text-color:    #ffffff;
    --uibi-header-logo-variant:  light;   /* "light" oder "dark" – gesteuert durch Preset */

    /* Trust Logos Block */
    --uibi-trust-logo-maxh-desktop: 60px;
    --uibi-trust-logo-maxh-tablet:  40px;
    --uibi-trust-logo-maxh-mobile:  32px;
    --uibi-trust-logo-gap:          var(--uibi-space-8);

    /* Form Gating */
    --uibi-gate-hint-bg:    rgba(26,35,50,0.06);
    --uibi-gate-hint-border: var(--uibi-border);
}

/* ── Service Presets: Header-Token-Erweiterung ──────────────── */
[data-service="gas"] {
    --uibi-header-text-color:   #ffffff;
    --uibi-header-logo-variant: light;
}
[data-service="bad"] {
    --uibi-header-text-color:   #1a2332;
    --uibi-header-logo-variant: dark;
}
[data-service="klima"] {
    --uibi-header-text-color:   #ffffff;
    --uibi-header-logo-variant: light;
}
[data-service="notdienst"] {
    --uibi-header-text-color:   #ffffff;
    --uibi-header-logo-variant: light;
}

/* ── NEU: Preset heizung ────────────────────────────────────── */
[data-service="heizung"] {
    --uibi-hero-bg:      #1e2d3d;
    --uibi-hero-accent:  #e84e1b;
    --uibi-cta-bg:       #e84e1b;
    --uibi-cta-bg-hover: #c03d12;
    --uibi-cta-shadow:   rgba(232,78,27,0.30);
    --uibi-cta-focus:    rgba(232,78,27,0.12);
    --uibi-header-text-color:   #ffffff;
    --uibi-header-logo-variant: light;
}

/* ── NEU: Preset neubau ─────────────────────────────────────── */
[data-service="neubau"] {
    --uibi-hero-bg:      #f5f7fa;
    --uibi-hero-text:    #1a2332;
    --uibi-hero-muted:   rgba(26,35,50,0.58);
    --uibi-hero-badge-bg:     rgba(26,35,50,0.06);
    --uibi-hero-badge-border: rgba(26,35,50,0.14);
    --uibi-hero-trust-border: rgba(26,35,50,0.12);
    --uibi-hero-ghost-border:       rgba(26,35,50,0.28);
    --uibi-hero-ghost-border-hover: rgba(26,35,50,0.52);
    --uibi-hero-ghost-bg-hover:     rgba(26,35,50,0.05);
    --uibi-cta-bg:       #2563eb;
    --uibi-cta-bg-hover: #1d4ed8;
    --uibi-cta-shadow:   rgba(37,99,235,0.30);
    --uibi-cta-focus:    rgba(37,99,235,0.12);
    --uibi-hero-accent:  #2563eb;
    --uibi-header-text-color:   #1a2332;
    --uibi-header-logo-variant: dark;
}


/* ╔══════════════════════════════════════════════════════╗
   ║  MICROHEADER – TRANSPARENT (v3.8.1)                 ║
   ╚══════════════════════════════════════════════════════╝ */

/* Header: transparent, absolute – Teil des Hero */
.uibi-lp-header--transparent {
    background: transparent !important;
    border-bottom: none !important;
    box-shadow: none !important;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
}

/* Text-Farbe via Token */
.uibi-lp-header--transparent .uibi-phone-link {
    color: var(--uibi-header-text-color);
}
.uibi-lp-header--transparent .uibi-phone-link:hover {
    color: var(--uibi-header-text-color);
    opacity: 0.8;
    text-decoration: none;
}
.uibi-lp-header--transparent .uibi-lp-header__logo-text {
    color: var(--uibi-header-text-color);
}
.uibi-lp-header--transparent .uibi-lp-header__trust-badge {
    background: var(--uibi-overlay-white-20);
    color: var(--uibi-header-text-color);
    border: 1px solid rgba(255,255,255,0.25);
}

/* Hero muss Platz für transparenten Header machen */
.uibi-hero--fullwidth {
    padding-top: calc(var(--uibi-space-16) + 64px);
}
.uibi-hero--video {
    padding-top: calc(var(--uibi-space-20) + 64px);
}
.uibi-hero--split .uibi-hero__split-text {
    padding-top: calc(var(--uibi-space-16) + 64px);
}


/* ── Logo Varianten: Dark / Light ──────────────────────────── */
/* CSS blendet die passende Logo-Variante via --uibi-header-logo-variant ein.
   Da CSS Custom Properties keine Bedingungslogik kennen, nutzen wir
   Preset-spezifische Sichtbarkeit via data-service Attribut.

   Standard (gas, klima, notdienst, heizung): dark BG → light Logo sichtbar
   Heller BG (bad, neubau): dark Logo sichtbar
*/

/* Standard: light Logo sichtbar, dark ausgeblendet */
.uibi-logo--dark  { display: none; }
.uibi-logo--light { display: block; }

/* Wenn Header-Logo-Variant "dark" → dark Logo sichtbar, light ausgeblendet */
[data-service="bad"] .uibi-logo--dark,
[data-service="neubau"] .uibi-logo--dark  { display: block; }
[data-service="bad"] .uibi-logo--light,
[data-service="neubau"] .uibi-logo--light { display: none; }


/* ╔══════════════════════════════════════════════════════╗
   ║  TRUST LOGOS BLOCK (v3.8.1)                         ║
   ╚══════════════════════════════════════════════════════╝ */

.uibi-block--trust-logos {
    background: var(--uibi-white);
    padding: var(--uibi-space-12) 0;
}
.uibi-trust-logos__label {
    text-align: center;
    font-size: var(--uibi-text-xs);
    font-weight: var(--uibi-weight-semibold);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--uibi-text-light);
    margin-bottom: var(--uibi-space-6);
}
.uibi-trust-logos__grid {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--uibi-space-8) var(--uibi-trust-logo-gap);
}
.uibi-trust-logos__item {
    display: flex;
    align-items: center;
    justify-content: center;
}
.uibi-trust-logos__link {
    display: flex;
    align-items: center;
    justify-content: center;
}
.uibi-trust-logos__img {
    max-height: var(--uibi-trust-logo-maxh-desktop);
    width: auto;
    max-width: 160px;
    object-fit: contain;
    display: block;
    /* Kein Shadow, kein Hover – per Spec */
}


/* ╔══════════════════════════════════════════════════════╗
   ║  FORM GATING (v3.8.1)                              ║
   ╚══════════════════════════════════════════════════════╝ */

/* Lock-Hinweis oberhalb des Formulars */
.uibi-form__gate-hint {
    max-width: 640px;
    margin: 0 auto var(--uibi-space-4);
    background: var(--uibi-gate-hint-bg);
    border: 1px solid var(--uibi-gate-hint-border);
    border-radius: var(--uibi-radius);
    padding: var(--uibi-space-3) var(--uibi-space-5);
    font-size: var(--uibi-text-sm);
    color: var(--uibi-text-light);
    font-weight: var(--uibi-weight-medium);
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--uibi-space-2);
    transition: opacity var(--uibi-transition-slow);
}
.uibi-form__gate-hint .dashicons {
    font-size: 18px;
    color: var(--uibi-text-light);
    flex-shrink: 0;
}
/* Hinweis ausblenden wenn Formular entsperrt */
.uibi-form__gate-hint.is-hidden {
    display: none;
}

/* Gesperrtes Formular */
.uibi-form--locked {
    opacity: var(--uibi-disabled-opacity);
    pointer-events: none;
    user-select: none;
    -webkit-user-select: none;
    cursor: not-allowed;
}
/* Entsperrtes Formular */
.uibi-form--locked.is-unlocked,
.uibi-form__wrapper:not(.uibi-form--locked) {
    opacity: 1;
    pointer-events: auto;
    user-select: auto;
    cursor: auto;
}

/* Honeypot – vollständig unsichtbar */
.uibi-hp-field {
    position: absolute !important;
    left: -9999px !important;
    top: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    tabindex: -1;
}


/* ╔══════════════════════════════════════════════════════╗
   ║  RESPONSIVE ERWEITERUNGEN v3.8.1                   ║
   ╚══════════════════════════════════════════════════════╝ */

@media (min-width: 769px) and (max-width: 1024px) {
    :root {
        --uibi-trust-logo-maxh-desktop: var(--uibi-trust-logo-maxh-tablet);
    }
    .uibi-hero--fullwidth {
        padding-top: calc(var(--uibi-section-padding-tablet) + 64px);
    }
    .uibi-hero--split .uibi-hero__split-text {
        padding-top: calc(var(--uibi-space-12) + 64px);
    }
}

@media (max-width: 768px) {
    :root {
        --uibi-trust-logo-maxh-desktop: var(--uibi-trust-logo-maxh-mobile);
        --uibi-trust-logo-gap: var(--uibi-space-6);
    }
    .uibi-trust-logos__grid { gap: var(--uibi-space-5); }
    .uibi-hero--fullwidth {
        padding-top: calc(var(--uibi-space-12) + 56px);
    }
    .uibi-hero--split .uibi-hero__split-text {
        padding-top: calc(var(--uibi-space-10) + 56px);
    }
    .uibi-form__gate-hint { margin-bottom: var(--uibi-space-3); }
}

/* Shake-Animation für Form Gate Hint (JS-triggered) */
@keyframes uibi-shake {
    0%,100% { transform: translateX(0); }
    20%     { transform: translateX(-6px); }
    40%     { transform: translateX(6px); }
    60%     { transform: translateX(-4px); }
    80%     { transform: translateX(4px); }
}

/* ── v3.8.3 FIX: Fullwidth Light Hero Layout ──────────────────
   uibi-hero--fullwidth_light setzt helle Defaults falls kein
   hero_bg_color / hero_text_color per LP-Meta gesetzt ist.
   Das inline style="" auf dem <section> hat Vorrang.
   ──────────────────────────────────────────────────────────── */
.uibi-hero--fullwidth_light {
    background: var(--uibi-hero-bg, #f5f7fa);
    color: var(--uibi-hero-text, #1a2332);
}
.uibi-hero--fullwidth_light .uibi-hero__badge {
    background: var(--uibi-hero-badge-bg, rgba(26,35,50,0.07));
    border-color: var(--uibi-hero-badge-border, rgba(26,35,50,0.15));
    color: var(--uibi-hero-text, #1a2332);
}
.uibi-hero--fullwidth_light .uibi-hero__headline,
.uibi-hero--fullwidth_light .uibi-hero__subline {
    color: var(--uibi-hero-text, #1a2332);
}
.uibi-hero--light {
    /* Alias-Klasse – identisch zu fullwidth_light */
}

/* v3.8.3 FIX: CSS uibi-logo-- Klassen nicht mehr benötigt (PHP-gesteuert)
   Beide Klassen neutral halten damit kein visueller Seiteneffekt entsteht */
.uibi-logo--dark,
.uibi-logo--light {
    display: block;
}


/* ╔══════════════════════════════════════════════════════╗
   ║  v3.9.1 — PER-BLOCK SCOPED COLOR OVERRIDES         ║
   ║  Tokens werden via inline style="" auf dem          ║
   ║  Block-<section>-Wrapper gesetzt.                   ║
   ║  Fallback-Kaskade: scoped → global → hardcoded.     ║
   ╚══════════════════════════════════════════════════════╝ */

/* ── Scoped Block Token Defaults ──────────────────────────── */
/* Jeder Block definiert seine Tokens mit globalem Fallback.   */
/* Wenn Override-Checkbox OFF: --blk-* nicht gesetzt           */
/* → greift var(--uibi-*) normal weiter.                       */

/* Filter Block */
.uibi-block--filter {
    background: var(--blk-bg, var(--uibi-surface-1));
}
.uibi-block--filter .uibi-filter__question {
    color: var(--blk-heading, var(--uibi-dark));
}
.uibi-block--filter .uibi-filter__option-content {
    background: var(--blk-card, var(--uibi-surface-0));
    border-color: var(--blk-border, var(--uibi-border));
    color: var(--blk-text, var(--uibi-text));
}
.uibi-block--filter .uibi-filter__option input:checked + .uibi-filter__option-content {
    border-color: var(--blk-accent, var(--uibi-cta-bg));
    background: var(--blk-card-accent, var(--uibi-surface-accent));
}
.uibi-block--filter .uibi-filter__option input:checked + .uibi-filter__option-content .uibi-filter__option-check {
    border-color: var(--blk-accent, var(--uibi-cta-bg));
    background: var(--blk-accent, var(--uibi-cta-bg));
}
.uibi-block--filter .uibi-section__headline,
.uibi-block--filter .uibi-block__headline {
    color: var(--blk-heading, var(--uibi-dark));
}
.uibi-block--filter .uibi-filter__nav-hint { color: var(--blk-muted, var(--uibi-text-light)); }
.uibi-block--filter .uibi-filter__back-btn { color: var(--blk-muted, var(--uibi-text-light)) !important; border-color: var(--blk-border, var(--uibi-border)); }
.uibi-block--filter .uibi-filter__disqualify-text { color: var(--blk-muted, var(--uibi-text-light)); }

/* Fairness Block */
.uibi-block--fairness {
    background: var(--blk-bg, var(--uibi-bg));
}
.uibi-block--fairness .uibi-section__headline,
.uibi-block--fairness .uibi-block__headline {
    color: var(--blk-heading, var(--uibi-dark));
}
.uibi-block--fairness .uibi-fairness__content h3 {
    color: var(--blk-heading, var(--uibi-dark));
}
.uibi-block--fairness .uibi-fairness__content p {
    color: var(--blk-text, var(--uibi-text-light));
}
.uibi-block--fairness .uibi-fairness__icon {
    background: var(--blk-accent, var(--uibi-primary));
}

/* Trust / Warum-UIBI Block */
/* HINWEIS: Template verwendet .uibi-trust__* Klassen (nicht uibi-why__*) */
.uibi-block--trust {
    background: var(--blk-bg, var(--uibi-dark));
}
.uibi-block--trust .uibi-block__headline,
.uibi-block--trust .uibi-section__headline {
    color: var(--blk-heading, var(--uibi-white));
}
/* Scoped overrides für uibi-trust__item (korrekte Template-Klasse) */
.uibi-block--trust .uibi-trust__item {
    background: var(--blk-card, var(--uibi-glass-bg));
    border: 1px solid var(--blk-border, var(--uibi-glass-border));
    border-radius: var(--uibi-radius-md);
    padding: var(--uibi-space-6);
    transition: background var(--uibi-transition);
}
.uibi-block--trust .uibi-trust__item:hover {
    background: var(--blk-card-hover, var(--uibi-glass-bg-hover));
}
.uibi-block--trust .uibi-trust__content h3 {
    color: var(--blk-heading, var(--uibi-white));
}
.uibi-block--trust .uibi-trust__content p {
    color: var(--blk-text, var(--uibi-trust-item-text));
}
.uibi-block--trust .uibi-trust__icon .dashicons {
    color: var(--blk-accent, var(--uibi-primary));
}
/* Auch uibi-why__* abdecken (falls Legacy-Daten vorhanden) */
.uibi-block--trust .uibi-why__item {
    background: var(--blk-card, var(--uibi-glass-bg));
    border: 1px solid var(--blk-border, var(--uibi-glass-border));
}
.uibi-block--trust .uibi-why__item:hover {
    background: var(--blk-card-hover, var(--uibi-glass-bg-hover));
}
.uibi-block--trust .uibi-why__item h3 {
    color: var(--blk-heading, var(--uibi-white));
}
.uibi-block--trust .uibi-why__item p {
    color: var(--blk-text, var(--uibi-trust-item-text));
}
.uibi-block--trust .uibi-why__item .dashicons {
    color: var(--blk-accent, var(--uibi-primary));
}

/* Contact Form Block */
.uibi-block--contact-form {
    background: var(--blk-bg, var(--uibi-bg));
}
.uibi-block--contact-form .uibi-form__headline {
    color: var(--blk-heading, var(--uibi-dark));
}
.uibi-block--contact-form .uibi-form__subline {
    color: var(--blk-muted, var(--uibi-text-light));
}
.uibi-block--contact-form .uibi-form__field label {
    color: var(--blk-text, var(--uibi-text));
}
.uibi-block--contact-form .uibi-form__field input[type="text"],
.uibi-block--contact-form .uibi-form__field input[type="tel"],
.uibi-block--contact-form .uibi-form__field input[type="email"],
.uibi-block--contact-form .uibi-form__field input[type="number"],
.uibi-block--contact-form .uibi-form__field select,
.uibi-block--contact-form .uibi-form__field textarea {
    background: var(--blk-card, var(--uibi-surface-0));
    border-color: var(--blk-border, var(--uibi-border));
    color: var(--blk-text, var(--uibi-text));
}
/* Form Submit Button scoped override */
.uibi-block--contact-form .uibi-btn--primary {
    background: var(--blk-btn-bg, var(--uibi-cta-bg));
    color: var(--blk-btn-text, var(--uibi-cta-text)) !important;
    border-color: var(--blk-btn-bg, var(--uibi-cta-bg));
    box-shadow: 0 4px 14px var(--blk-btn-shadow, var(--uibi-cta-shadow));
}
.uibi-block--contact-form .uibi-btn--primary:hover {
    background: var(--blk-btn-hover, var(--uibi-cta-bg-hover, var(--uibi-cta-bg)));
    border-color: var(--blk-btn-hover, var(--uibi-cta-bg-hover, var(--uibi-cta-bg)));
    transform: translateY(-2px);
    box-shadow: 0 8px 24px var(--blk-btn-shadow, var(--uibi-cta-shadow));
}

/* FAQ Block */
.uibi-block--faq {
    background: var(--blk-bg, var(--uibi-surface-1));
}
.uibi-block--faq .uibi-section__headline,
.uibi-block--faq .uibi-block__headline {
    color: var(--blk-heading, var(--uibi-dark));
}
.uibi-block--faq .uibi-faq__question {
    color: var(--blk-heading, var(--uibi-dark));
    background: var(--blk-card, var(--uibi-surface-0));
    border-color: var(--blk-border, var(--uibi-border));
}
.uibi-block--faq .uibi-faq__answer {
    color: var(--blk-text, var(--uibi-text));
    background: var(--blk-card, var(--uibi-surface-0));
    border-color: var(--blk-border, var(--uibi-border));
}


/* ╔══════════════════════════════════════════════════════════════╗
   ║  v3.9.2 — VOLLSTÄNDIGER CSS-KLASSEN-FIX & OVERRIDE-AUDIT   ║
   ║  Alle fehlenden Klassen ergänzt. Per-Block Override für     ║
   ║  alle Blöcke komplett abgedeckt.                            ║
   ╚══════════════════════════════════════════════════════════════╝ */

/* ── 1. SOCIAL PROOF — uibi-review__* (Template-Klassen) ─────────
   CSS hatte nur uibi-sp__* — Template nutzt uibi-review__*.
   Beide Familien jetzt vollständig definiert + Override-Support.
   ──────────────────────────────────────────────────────────────── */

.uibi-block--social-proof {
    background: var(--blk-bg, var(--uibi-surface-1));
}
.uibi-block--social-proof .uibi-block__headline {
    color: var(--blk-heading, var(--uibi-dark));
}

/* Grid & Cards */
.uibi-reviews__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--uibi-space-5);
}
.uibi-review__card {
    background: var(--blk-card, var(--uibi-surface-0));
    border: 1px solid var(--blk-border, var(--uibi-border));
    border-radius: var(--uibi-radius-md);
    padding: var(--uibi-space-6);
    box-shadow: var(--uibi-shadow);
    transition: box-shadow var(--uibi-transition);
    display: flex;
    flex-direction: column;
    gap: var(--uibi-space-3);
}
.uibi-review__card:hover {
    box-shadow: var(--uibi-shadow-lg);
}

/* Sterne */
.uibi-review__stars {
    display: flex;
    gap: 2px;
}
.uibi-star {
    color: var(--blk-accent, var(--uibi-warning));
    font-size: var(--uibi-text-lg);
    line-height: 1;
}
.uibi-star--empty {
    color: var(--uibi-border);
}

/* Text */
.uibi-review__text {
    font-style: italic;
    color: var(--blk-text, var(--uibi-text));
    font-size: var(--uibi-text-base);
    line-height: var(--uibi-lh-relaxed);
    flex: 1;
}

/* Meta (Name + Projekt) */
.uibi-review__meta {
    display: flex;
    flex-direction: column;
    gap: 2px;
    border-top: 1px solid var(--blk-border, var(--uibi-border));
    padding-top: var(--uibi-space-3);
    margin-top: auto;
}
.uibi-review__meta strong {
    font-size: var(--uibi-text-sm);
    font-weight: var(--uibi-weight-bold);
    color: var(--blk-heading, var(--uibi-dark));
}
.uibi-review__project {
    font-size: var(--uibi-text-xs);
    color: var(--blk-muted, var(--uibi-text-light));
}

/* Responsive */
@media (max-width: 768px) {
    .uibi-reviews__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
    .uibi-reviews__grid { grid-template-columns: 1fr; }
}

/* Scoped Override */
.uibi-block--social-proof .uibi-review__card {
    background: var(--blk-card, var(--uibi-surface-0));
    border-color: var(--blk-border, var(--uibi-border));
}
.uibi-block--social-proof .uibi-review__text {
    color: var(--blk-text, var(--uibi-text));
}
.uibi-block--social-proof .uibi-review__meta strong {
    color: var(--blk-heading, var(--uibi-dark));
}
.uibi-block--social-proof .uibi-review__project {
    color: var(--blk-muted, var(--uibi-text-light));
}
.uibi-block--social-proof .uibi-star {
    color: var(--blk-accent, var(--uibi-warning));
}


/* ── 2. FORM — fehlende Struktur-Klassen ──────────────────────────
   uibi-form__header / body / footer / row waren nicht im CSS.
   ──────────────────────────────────────────────────────────────── */

.uibi-form__header {
    margin-bottom: var(--uibi-space-6);
}
.uibi-form__body {
    /* Strukturcontainer — kein visuelles Styling nötig */
}
.uibi-form__footer {
    margin-top: var(--uibi-space-6);
    padding-top: var(--uibi-space-4);
    border-top: 1px solid var(--blk-border, var(--uibi-border));
}
.uibi-form__row {
    margin-bottom: var(--uibi-space-4);
}

/* Scoped Form Overrides (ergänzt bestehende v3.9.1 Regeln) */
.uibi-block--contact-form .uibi-form__footer {
    border-top-color: var(--blk-border, var(--uibi-border));
}
.uibi-block--contact-form .uibi-form__wrapper {
    background: var(--blk-card, var(--uibi-surface-0));
}
.uibi-block--contact-form .uibi-form__privacy,
.uibi-block--contact-form .uibi-form__required {
    color: var(--blk-muted, var(--uibi-text-light));
}
.uibi-block--contact-form .uibi-form__gate-hint {
    color: var(--blk-muted, var(--uibi-text-light));
}
.uibi-block--contact-form .uibi-form__success {
    background: var(--blk-card, var(--uibi-surface-0));
    color: var(--blk-text, var(--uibi-text));
}
.uibi-block--contact-form .uibi-form__success-icon {
    color: var(--blk-accent, var(--uibi-success));
}
/* Rückruf Radio-Optionen */
.uibi-block--contact-form .uibi-form__rueckruf-option {
    border-color: var(--blk-border, var(--uibi-border));
    color: var(--blk-text, var(--uibi-text));
}
.uibi-block--contact-form .uibi-form__rueckruf-option.is-selected {
    border-color: var(--blk-accent, var(--uibi-cta-bg));
    color: var(--blk-accent, var(--uibi-cta-bg));
}
/* Upload-Bereich */
.uibi-block--contact-form .uibi-form__upload-btn {
    background: var(--blk-card, var(--uibi-surface-1));
    border-color: var(--blk-border, var(--uibi-border));
    color: var(--blk-text, var(--uibi-text));
}
/* Error-State */
.uibi-block--contact-form .uibi-form__error {
    color: var(--uibi-error);
}


/* ── 3. FILTER — fehlende State-Klassen ───────────────────────────
   uibi-filter__steps / next-btn / qualified / disqualify
   waren nicht im CSS definiert.
   ──────────────────────────────────────────────────────────────── */

/* Container für alle Steps */
.uibi-filter__steps {
    position: relative;
}

/* Next-Button: identisch zu uibi-btn--primary aber explizit definiert */
.uibi-filter__next-btn {
    margin-top: var(--uibi-space-5);
}

/* Qualified-State Container */
.uibi-filter__qualified {
    text-align: center;
    padding: var(--uibi-space-8) var(--uibi-space-4);
    animation: uibi-fade-in 0.3s ease;
}

/* Disqualify-State Container */
.uibi-filter__disqualify {
    text-align: center;
    padding: var(--uibi-space-8) var(--uibi-space-4);
    animation: uibi-fade-in 0.3s ease;
}

/* Scoped Override für Filter-States */
.uibi-block--filter .uibi-filter__qualified {
    color: var(--blk-text, var(--uibi-text));
}
.uibi-block--filter .uibi-filter__disqualify {
    color: var(--blk-text, var(--uibi-text));
}
.uibi-block--filter .uibi-filter__disqualify-title,
.uibi-block--filter .uibi-filter__qualified-icon + h3 {
    color: var(--blk-heading, var(--uibi-dark));
}
/* Next-Button im Filter erbt Block-Akzentfarbe */
.uibi-block--filter .uibi-filter__next-btn.uibi-btn--primary {
    background: var(--blk-accent, var(--uibi-cta-bg));
    border-color: var(--blk-accent, var(--uibi-cta-bg));
    color: var(--blk-btn-text, var(--uibi-cta-text, #ffffff));
}
.uibi-block--filter .uibi-filter__headline {
    color: var(--blk-heading, var(--uibi-dark));
}
.uibi-block--filter .uibi-filter__wrapper {
    background: var(--blk-card, transparent);
}


/* ── 4. FAIRNESS — vollständige Scoped Overrides ──────────────────
   Ergänzt bestehende v3.9.1 Regeln, Icon-Kreis + Text vollständig.
   ──────────────────────────────────────────────────────────────── */

.uibi-block--fairness .uibi-fairness__item {
    /* Strukturell bereits via globalen Regeln OK */
    color: var(--blk-text, inherit);
}
.uibi-block--fairness .uibi-fairness__icon {
    background: var(--blk-accent, var(--uibi-primary));
}
.uibi-block--fairness .uibi-fairness__icon .dashicons {
    color: var(--blk-heading, var(--uibi-white));
}
.uibi-block--fairness .uibi-fairness__content h3 {
    color: var(--blk-heading, var(--uibi-dark));
}
.uibi-block--fairness .uibi-fairness__content p {
    color: var(--blk-text, var(--uibi-text-light));
}


/* ── 5. FAQ — vollständige Scoped Overrides ───────────────────────
   Ergänzt bestehende v3.9.1 Regeln um alle interaktiven States.
   ──────────────────────────────────────────────────────────────── */

.uibi-block--faq .uibi-faq__item {
    border-color: var(--blk-border, var(--uibi-border));
}
.uibi-block--faq .uibi-faq__item:hover {
    border-color: var(--blk-accent, var(--uibi-text-light));
}
.uibi-block--faq .uibi-faq__question {
    background: var(--blk-card, var(--uibi-surface-0));
    color: var(--blk-heading, var(--uibi-dark));
    border-bottom-color: var(--blk-border, var(--uibi-border));
}
.uibi-block--faq .uibi-faq__question:hover {
    background: var(--blk-card, var(--uibi-surface-1));
}
.uibi-block--faq .uibi-faq__icon {
    color: var(--blk-accent, var(--uibi-primary));
}
.uibi-block--faq .uibi-faq__answer {
    background: var(--blk-card, var(--uibi-surface-0));
    color: var(--blk-text, var(--uibi-text-light));
    border-bottom-color: var(--blk-border, var(--uibi-border));
}


/* ── 6. HERO — Scoped Override ────────────────────────────────────
   Hero nutzt bereits hero_bg_color/hero_text_color Meta (v3.9.0).
   Hier zusätzlich --blk-* Support für den Override-Tab.
   ──────────────────────────────────────────────────────────────── */

.uibi-block--hero {
    background: var(--blk-bg, var(--uibi-hero-bg, var(--uibi-dark)));
    color: var(--blk-text, var(--uibi-hero-text, var(--uibi-white)));
}
.uibi-block--hero .uibi-hero__headline {
    color: var(--blk-heading, var(--uibi-hero-text, var(--uibi-white)));
}
.uibi-block--hero .uibi-hero__subline {
    color: var(--blk-text, var(--uibi-hero-text, var(--uibi-white)));
}
.uibi-block--hero .uibi-hero__cta-hint {
    color: var(--blk-muted, var(--uibi-hero-accent, rgba(255,255,255,0.7)));
}
.uibi-block--hero .uibi-hero__price-range {
    color: var(--blk-accent, var(--uibi-hero-accent, var(--uibi-primary)));
}
.uibi-block--hero .uibi-hero__price-label,
.uibi-block--hero .uibi-hero__price-disclaimer {
    color: var(--blk-muted, rgba(255,255,255,0.65));
}
.uibi-block--hero .uibi-hero__trust-item {
    color: var(--blk-muted, rgba(255,255,255,0.75));
}
.uibi-block--hero .uibi-btn--primary {
    background: var(--blk-btn-bg, var(--uibi-cta-bg));
    color: var(--blk-btn-text, var(--uibi-cta-text, #ffffff)) !important;
    border-color: var(--blk-btn-bg, var(--uibi-cta-bg));
}
.uibi-block--hero .uibi-btn--primary:hover {
    background: var(--blk-btn-hover, var(--uibi-cta-bg-hover, var(--uibi-cta-bg)));
}


/* ── 7. TRUST LOGOS — Scoped Override ────────────────────────────
   Bisher kein Override-Support vorhanden.
   ──────────────────────────────────────────────────────────────── */

.uibi-block--trust-logos {
    background: var(--blk-bg, var(--uibi-surface-0));
}
.uibi-block--trust-logos .uibi-trust-logos__label {
    color: var(--blk-muted, var(--uibi-text-light));
}
.uibi-block--trust-logos .uibi-trust-logos__item {
    border-color: var(--blk-border, var(--uibi-border));
    background: var(--blk-card, var(--uibi-surface-0));
}

