/* ══════════════════════════════════════════════════════════════════════════
   AUTOMATISCH ERZEUGT — nicht von Hand aendern!

   Quelle:    wp-content/bautent-css-src/*.css  (siehe README dort)
   Generator: build_bautent_css.py im SEO-Agent-Projekt
   Tokens:    wp-content/mu-plugins/bautent-tokens.php

   Aenderungen gehoeren in das passende Partial, danach den Generator laufen lassen.
   Handaenderungen an dieser Datei gehen beim naechsten Build verloren.

   Erzeugt: 20.10.2026 19:43
   ══════════════════════════════════════════════════════════════════════════ */

/* ── child-10-astra-header.css — astra-child/style.css bis 18.10.2026: Header, Mobil-Header, Astra-Overrides, Grundtypografie ── */
/* ==========================================================================
   Bautent Brand Colors
   Primary:    #0063dd
   Secondary:  #00203E (Dark Navy)
   Accent:     #E8F0FE
   Text:       #333333
   ========================================================================== */

/* ==========================================================================
   DARK PREMIUM HEADER
   Navy background (#00203E), white navigation, sticky with shadow
   ========================================================================== */

/* --- Main Header: Dark Navy Background --- */
.main-header-bar,
.ast-primary-header-bar,
header.site-header .main-header-bar {
    background-color: var(--bt-color-navy) !important;
    border-bottom: none !important;
    transition: box-shadow 0.3s ease, background-color 0.3s ease;
}

/* --- Sticky Header --- */
.main-header-bar {
    position: sticky !important;
    top: 0;
    z-index: 999;
}

/* Shadow on scroll (added via JS) */
.main-header-bar.header-scrolled,
.ast-header-sticked {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25) !important;
    background-color: var(--bt-color-navy-deep) !important;
}

/* Kontrast-Fix 18.09.2026: Header-Hintergrund ist IMMER dunkel (transparent ueber Hero ODER
   navy-deep nach dem Scrollen - nie weiss). Astras "aktueller Menuepunkt"-Farbe (Markenblau)
   war dafuer nie gedacht und gab nur K=3 auf dem dunklen Grund. Aktive Punkte wie die
   anderen Menu-Links einfaerben (25 Seiten: Sanierung/Leistungen/Neubau/Kontakt/Bauprojekte). */
#ast-hf-menu-1 li.current-menu-item > a.menu-link,
#ast-hf-menu-1 li.current-menu-ancestor > a.menu-link,
#ast-hf-menu-1 li.current-menu-parent > a.menu-link,
#ast-hf-menu-1 li.current_page_item > a.menu-link,
#ast-hf-menu-1 li.current_page_parent > a.menu-link,
#ast-hf-menu-1 li.current_page_ancestor > a.menu-link {
    color: rgba(255, 255, 255, .9) !important;
}

/* --- Logo: Proper SVG sizing --- */
.site-header .custom-logo-link img.custom-logo,
.site-header .ast-site-identity img.custom-logo,
.main-header-bar .custom-logo-link img.custom-logo,
img.custom-logo.astra-logo-svg {
    height: 50px !important;
    width: auto !important;
    min-width: 160px !important;
    max-width: 240px !important;
    object-fit: contain;
}
/* Hide site title when logo is present */
.site-header .ast-site-title-wrap {
    display: none !important;
}

/* Site title white if no logo */
.site-header .site-title a,
.main-header-bar .site-title a,
.ast-site-identity .site-title a {
    color: var(--bt-color-white) !important;
}

/* --- Navigation: White Text, Premium Spacing --- */
.main-header-menu > .menu-item > a,
.main-header-bar .main-header-menu > .menu-item > a,
.ast-header-sections-navigation .menu-item > a {
    color: var(--bt-color-white) !important;
    font-weight: 500 !important;
    font-size: 0.92rem !important;
    letter-spacing: 0.04em;
    text-transform: none;
    padding: 0 18px !important;
    transition: color 0.2s ease !important;
    position: relative;
}

/* Hover: Blue accent */
.main-header-menu > .menu-item > a:hover,
.main-header-bar .main-header-menu > .menu-item > a:hover {
    color: var(--bt-color-primary) !important;
}

/* Active/Current page: Blue accent */
.main-header-menu > .menu-item.current-menu-item > a,
.main-header-menu > .menu-item.current-menu-ancestor > a,
.main-header-menu > .menu-item.current-menu-parent > a {
    color: var(--bt-color-primary) !important;
}

/* Underline effect on hover */
.main-header-menu > .menu-item > a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 2px;
    background: var(--bt-color-primary);
    transition: width 0.3s ease, left 0.3s ease;
}
.main-header-menu > .menu-item > a:hover::after,
.main-header-menu > .menu-item.current-menu-item > a::after,
.main-header-menu > .menu-item.current-menu-ancestor > a::after {
    width: calc(100% - 36px);
    left: 18px;
}
/* No underline for CTA button */
.main-header-menu > .menu-item.cta-button > a::after {
    display: none !important;
}

/* --- CTA Button: "Kostenlose Beratung" --- */
.main-header-menu .menu-item.cta-button > a,
.main-header-menu .menu-item.ast-menu-item-button > a {
    background: var(--bt-color-primary) !important;
    color: var(--bt-color-white) !important;
    border-radius: var(--bt-radius-md)!important;
    padding: 10px 24px !important;
    font-weight: 600 !important;
    font-size: 0.9rem !important;
    letter-spacing: 0.02em;
    transition: all 0.3s ease !important;
    white-space: nowrap;
    margin-left: 12px;
    border: none;
    box-shadow: 0 2px 8px rgba(0, 99, 221, 0.3);
}
.main-header-menu .menu-item.cta-button > a:hover,
.main-header-menu .menu-item.ast-menu-item-button > a:hover {
    background: var(--bt-color-primary-hover) !important;
    color: var(--bt-color-white) !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0, 99, 221, 0.45);
}

/* --- Dropdown / Submenu: Dark Style --- */
.main-header-menu .sub-menu,
.main-header-bar .main-header-menu .sub-menu {
    background: var(--bt-color-navy) !important;
    border-top: 2px solid var(--bt-color-primary);
    border-radius: 0 0 8px 8px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
    padding: 6px 0;
    min-width: 220px;
}

.main-header-menu .sub-menu li a,
.main-header-bar .main-header-menu .sub-menu li a {
    color: rgba(255, 255, 255, 0.85) !important;
    padding: 10px 22px !important;
    font-size: 0.88rem !important;
    font-weight: 400;
    letter-spacing: 0.02em;
    transition: all 0.2s ease;
    border-left: 3px solid transparent;
}

.main-header-menu .sub-menu li a:hover,
.main-header-bar .main-header-menu .sub-menu li a:hover {
    color: var(--bt-color-white) !important;
    background: rgba(0, 99, 221, 0.12) !important;
    border-left-color: var(--bt-color-primary);
}

.main-header-menu .sub-menu li.current-menu-item > a {
    color: var(--bt-color-primary) !important;
    background: rgba(0, 99, 221, 0.08) !important;
    border-left-color: var(--bt-color-primary);
}

/* Submenu separator line between items */
.main-header-menu .sub-menu li + li {
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

/* Dropdown arrow/caret for items with children */
.main-header-menu > .menu-item-has-children > a .sub-arrow,
.ast-header-sections-navigation .menu-item-has-children > a .sub-arrow {
    color: rgba(255, 255, 255, 0.6) !important;
}
.main-header-menu > .menu-item-has-children > a:hover .sub-arrow {
    color: var(--bt-color-primary) !important;
}

/*
 * Fix: Dropdown-Toggle als Sibling des <a> (per JS herausgenommen).
 * Der Toggle wird absolut rechts im <li> positioniert,
 * der <a>-Link bleibt ein normaler klickbarer Link.
 */
@media (min-width: 922px) {
    .main-header-menu > .menu-item-has-children {
        position: relative;
    }
    /* Toggle als Sibling des <a> — absolut positioniert rechts */
    .main-header-menu > .menu-item-has-children > .dropdown-menu-toggle {
        position: absolute;
        right: 0;
        top: 0;
        bottom: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        cursor: pointer;
        z-index: 2;
        color: rgba(255, 255, 255, 0.6);
        transition: color 0.2s;
    }
    .main-header-menu > .menu-item-has-children > .dropdown-menu-toggle:hover {
        color: var(--bt-color-primary);
    }
    /* Link: padding-right fuer Platz fuer den Toggle */
    .main-header-menu > .menu-item-has-children > a.menu-link {
        padding-right: 28px !important;
    }
}

/* Fix: Astra setzt hellen Hintergrund auf mobile menu-toggle bei current-menu-ancestor */
@media (max-width: 921px) {
    .ast-builder-menu-mobile .main-navigation .menu-item.current-menu-ancestor > .ast-menu-toggle,
    .ast-builder-menu-mobile .main-navigation .menu-item.current-menu-item > .ast-menu-toggle {
        background: transparent !important;
        color: rgba(255, 255, 255, 0.9) !important;
    }
}

/* --- Header Padding for Elegance --- */
.main-header-bar .ast-container,
.main-header-bar .ast-flex {
    padding-top: 6px;
    padding-bottom: 6px;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
}

/* --- WP Admin Bar Offset --- */
.admin-bar .main-header-bar {
    top: 32px;
}
@media (max-width: 782px) {
    .admin-bar .main-header-bar {
        top: 46px;
    }
}

/* ==========================================================================
   MOBILE HEADER (Dark Premium)
   ========================================================================== */
@media (max-width: 992px) {
    /* Mobile toggle / hamburger: White */
    .ast-mobile-menu-trigger-minimal,
    .ast-button-wrap .ast-mobile-menu-buttons-minimal,
    .menu-toggle,
    .ast-mobile-menu-buttons,
    .ast-header-break-point .ast-mobile-menu-buttons {
        color: var(--bt-color-white) !important;
    }
    .ast-mobile-menu-trigger-minimal .ast-mobile-svg,
    .menu-toggle .ast-mobile-svg,
    .ast-mobile-menu-buttons .ast-mobile-svg {
        fill: var(--bt-color-white) !important;
    }

    /* Mobile menu background */
    .ast-header-break-point .main-header-menu,
    .ast-mobile-popup-drawer .ast-mobile-popup-inner,
    .ast-mobile-header-wrap .ast-mobile-header-content {
        background: var(--bt-color-navy) !important;
    }

    /* Mobile menu items: White */
    .ast-header-break-point .main-header-menu .menu-item > a,
    .ast-mobile-popup-drawer .menu-item > a,
    .ast-header-break-point .main-navigation .menu-item > a {
        color: rgba(255, 255, 255, 0.9) !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
        padding: 14px 20px !important;
    }
    .ast-header-break-point .main-header-menu .menu-item > a:hover,
    .ast-mobile-popup-drawer .menu-item > a:hover {
        color: var(--bt-color-primary) !important;
        background: rgba(0, 99, 221, 0.08) !important;
    }

    /* Mobile submenu */
    .ast-header-break-point .main-header-menu .sub-menu,
    .ast-mobile-popup-drawer .sub-menu {
        background: rgba(0, 20, 40, 0.5) !important;
        border-top: none;
        box-shadow: none;
        border-radius: var(--bt-radius-xl);
    }
    .ast-header-break-point .main-header-menu .sub-menu li a,
    .ast-mobile-popup-drawer .sub-menu li a {
        padding-left: 36px !important;
        font-size: 0.86rem !important;
    }

    /* Mobile CTA Button */
    .ast-header-break-point .main-header-menu .menu-item.cta-button > a,
    .ast-mobile-popup-drawer .menu-item.cta-button > a {
        display: block !important;
        text-align: center;
        margin: 16px 20px !important;
        border-radius: var(--bt-radius-md)!important;
        padding: 14px 24px !important;
    }

    /* Mobile submenu toggle arrows */
    .ast-header-break-point .ast-mobile-menu-buttons .sub-arrow,
    .ast-mobile-popup-drawer .ast-menu-toggle {
        color: rgba(255, 255, 255, 0.6) !important;
        border-color: rgba(255, 255, 255, 0.1) !important;
    }

    /* Mobile close button */
    .ast-mobile-popup-drawer .menu-toggle-close {
        color: var(--bt-color-white) !important;
    }
}

/* ==========================================================================
   Hide Astra Default Footer (replaced by mu-plugin footer)
   ========================================================================== */
.ast-small-footer,
.site-footer .ast-footer-overlay,
.ast-small-footer-section,
footer.site-footer .ast-small-footer {
    display: none !important;
}
/* Keep the Astra footer container for proper spacing but hide default content */
.site-footer > .ast-container {
    display: none !important;
}

/* ==========================================================================
   BODY OFFSET for Sticky Header
   ========================================================================== */
body {
    padding-top: 0;
}
/* Astra sometimes adds margin-top for transparent/sticky headers */
.ast-above-header-bar + .site-content,
.main-header-bar + .site-content,
.ast-primary-header-bar + .site-content {
    margin-top: 0;
}


/* ==========================================================================
   FIX: White gap between header and body
   Remove all margins/padding between sticky header and content area
   ========================================================================== */
.site-content,
#content {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
/* Astra adds margin on #primary (4em separate / 60px plain) - override all */
#primary,
.ast-separate-container #primary,
.ast-plain-container #primary,
.ast-plain-container.ast-no-sidebar #primary {
    margin-top: 0 !important;
    padding-top: 0 !important;
    margin-bottom: 0 !important;
}
/* Astra primary content area - remove container padding/margins */
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post,
.ast-plain-container .ast-article-single,
.ast-plain-container .ast-article-post {
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
}
.ast-separate-container .ast-comment-list li.depth-1,
.ast-separate-container .comment-respond {
    padding-top: 0;
}
/* Remove Astra's container top padding on pages */
.ast-separate-container .site-main > .ast-container,
.ast-plain-container .site-main > .ast-container {
    padding-top: 0 !important;
}
/* First element after header should be flush */
.site-content > .ast-container:first-child {
    padding-top: 0 !important;
    margin-top: 0 !important;
}
/* Entry-content first child flush */
.entry-content > *:first-child {
    margin-top: 0;
}
/* Hero section negative margin to overlap any residual gap */
.has-hero-section .entry-content {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.has-hero-section .entry-content > .hero-section:first-child {
    margin-top: 0;
}
/* Pages with content H1 but no hero - moderate top padding after featured img or navy bridge */
.has-content-h1:not(.has-hero-section) .entry-content {
    padding-top: 2rem !important;
}
/* Astra's article wrapper */
.ast-article-single {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.ast-separate-container article {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
/* ==========================================================================
   GLOBAL TYPOGRAPHY & BASE STYLES
   ========================================================================== */
body {
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--bt-color-text);
    line-height: 1.7;
}
.entry-content h1, .entry-content h2, .entry-content h3,
.entry-content h4, .entry-content h5, .entry-content h6 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    line-height: 1.25;
    color: var(--bt-color-navy);
}
.entry-content h2 {
    font-size: clamp(1.8rem, 4vw, 2.5rem);
    margin-bottom: 1rem;
}
.entry-content h3 {
    font-size: clamp(1.2rem, 2.5vw, 1.5rem);
}

/* Links: Color only, no underline */
a,
.entry-content a,
.entry-content p a,
.ast-single-post .entry-content a,
.ast-comment-content a {
    text-decoration: none !important;
}

/* Full width page content */
.ast-container,
.site-content .ast-container {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.entry-content {
    max-width: 100%;
    margin: 0;
    padding: 0;
}
/* Remove default Astra page padding */
.ast-page-builder-template .site-content > .ast-container,
.page .entry-content {
    padding: 0 !important;
}
.page .entry-header {
    display: none;
}
/* Model gallery & stats grid: match hero-section side padding (8%) */
.bt-model-gallery,
.bt-stats-grid {
    padding-left: 8%;
    padding-right: 8%;
}

/* ── child-20-sektionen.css — astra-child/style.css bis 18.10.2026: Buttons, Hero, Startseiten-Sektionen, Karten, Lead-Magnet-Banner ── */
/* ==========================================================================
   BUTTONS - Primary & Secondary CTAs
   ========================================================================== */
.btn {
    display: inline-block;
    padding: 14px 32px;
    border-radius: var(--bt-radius-md);
    font-weight: 600;
    font-size: 1rem;
    letter-spacing: 0.02em;
    text-decoration: none;
    transition: all 0.3s ease;
    cursor: pointer;
    border: 2px solid transparent;
    text-align: center;
}
.btn-primary {
    background: var(--bt-color-primary);
    color: var(--bt-color-white) !important;
    box-shadow: 0 4px 15px rgba(0, 99, 221, 0.3);
}
.btn-primary:hover {
    background: var(--bt-color-primary-hover);
    color: var(--bt-color-white) !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 25px rgba(0, 99, 221, 0.45);
    text-decoration: none;
}
.btn-secondary {
    background: transparent;
    color: var(--bt-color-primary) !important;
    border: 2px solid var(--bt-color-primary);
}
.btn-secondary:hover {
    background: var(--bt-color-primary);
    color: var(--bt-color-white) !important;
    border-color: var(--bt-color-primary);
    text-decoration: none;
}
/* btn-secondary auf dunklem Hintergrund: weiß. .card ausgenommen (Kontrast-Fix 18.09.2026):
   verschachtelte weisse Karten (z.B. card-grid im .cta-section auf /hausplaner/) haben einen
   eigenen hellen Hintergrund - hier blieb sonst weisse Schrift auf weiss (K=1). */
.hero-section .btn-secondary:not(.card .btn-secondary),
.kontakt-cta .btn-secondary:not(.card .btn-secondary),
.cta-section .btn-secondary:not(.card .btn-secondary),
.final-cta .btn-secondary:not(.card .btn-secondary) {
    color: var(--bt-color-white) !important;
    border-color: rgba(255, 255, 255, 0.7);
}
.hero-section .btn-secondary:hover,
.kontakt-cta .btn-secondary:hover,
.cta-section .btn-secondary:hover,
.final-cta .btn-secondary:hover {
    background: rgba(255, 255, 255, 0.15);
    color: var(--bt-color-white) !important;
    border-color: var(--bt-color-white);
}

/* ==========================================================================
   HERO SECTION - Full Width with Image Background
   ========================================================================== */
.hero-section {
    position: relative;
    min-height: 85vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 120px 8% 80px;
    overflow: hidden;
    background: var(--bt-color-navy);
}
/* Auto-generated hero from featured image: compact height */
.hero-section.hero-auto {
    min-height: 55vh;
    padding: 100px 8% 60px;
}
/* Use inline image as background cover */
.hero-section .wp-block-image {
    position: absolute !important;
    top: 0; left: 0; right: 0; bottom: 0;
    margin: 0 !important;
    z-index: 0;
}
.hero-section .wp-block-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block;
}
.hero-section .wp-block-image figcaption {
    display: none;
}
/* Dark gradient overlay */
.hero-section::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: linear-gradient(135deg,
        rgba(0, 32, 62, 0.88) 0%,
        rgba(0, 32, 62, 0.65) 50%,
        rgba(0, 32, 62, 0.45) 100%);
    z-index: 1;
}
/* All content above overlay */
.hero-section > *:not(.wp-block-image) {
    position: relative;
    z-index: 2;
}
.hero-section h1 {
    font-size: clamp(2rem, 5vw, 3.2rem);
    color: var(--bt-color-white) !important;
    font-weight: 800;
    font-style: normal !important;
    line-height: 1.15;
    max-width: 850px;
    margin-bottom: 1.5rem;
    text-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
}
.hero-section p {
    color: rgba(255, 255, 255, 0.9);
    font-size: clamp(1rem, 1.8vw, 1.15rem);
    max-width: 650px;
    margin-bottom: 1.5rem;
    line-height: 1.7;
}
.hero-section .btn {
    margin-right: 16px;
    margin-bottom: 12px;
    font-size: 1.05rem;
    padding: 16px 36px;
}

/* ==========================================================================
   DUAL-SERVICE HERO (Homepage)
   ========================================================================== */
.hero-section.hero-dual-service {
    min-height: auto !important;
    padding: 100px 8% 60px !important;
    background: var(--bt-color-navy) url("/wp-content/uploads/2026/04/homepage-hero-bg-1.webp") center center / cover no-repeat !important;
}
/* LCP 05.10.2026: Hintergrund ist das LCP-Element (unter 82-%-Verlauf kaum sichtbar) – bis 1024 px
   die 1024er-Variante (46 KB statt 193 KB). Preload mit gleichem media-Query: bautent-lcp-preload.php */
@media (max-width: 1024px) {
    .hero-section.hero-dual-service {
        background-image: url("/wp-content/uploads/2026/04/homepage-hero-bg-1-1024x576.webp") !important;
    }
}
.hero-section.hero-dual-service::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: linear-gradient(165deg, rgba(0, 32, 62, 0.82) 0%, rgba(0, 26, 51, 0.70) 50%, rgba(0, 40, 80, 0.60) 100%) !important;
    z-index: 1;
}
.hero-section.hero-dual-service h1 {
    max-width: 900px;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1rem;
}
.hero-section.hero-dual-service .hero-intro {
    display: block;
    text-align: center;
    max-width: 720px;
    margin: 0 auto 2.5rem auto;
    color: rgba(255, 255, 255, 0.85);
    font-size: clamp(1rem, 1.8vw, 1.1rem);
    line-height: 1.7;
}
.hero-dual {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    max-width: 960px;
    margin: 0 auto;
}
.hero-dual .hero-card {
    display: block;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--bt-radius-xl);
    overflow: hidden;
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.hero-dual .hero-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
    border-color: rgba(0, 99, 221, 0.4);
}
.hero-dual .hero-card img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
}
.hero-dual .hero-card-content {
    padding: 24px 28px 28px;
}
.hero-dual .hero-card-content h2 {
    color: var(--bt-color-white);
    font-size: 1.5rem;
    font-weight: 800;
    margin: 0 0 0.6rem 0;
}
.hero-dual .hero-card-content .hero-card-text {
    display: block;
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: 1.2rem;
}
.hero-dual .hero-card-content .btn {
    display: inline-block;
    padding: 12px 28px;
    font-size: 0.95rem;
    margin: 0;
}
.hero-dual .hero-card-content .hero-tag {
    display: inline-block;
    background: rgba(0, 99, 221, 0.15);
    color: #6db3ff;
    font-size: 0.78rem;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: var(--bt-radius-3xl);
    margin-bottom: 12px;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}
@media (max-width: 768px) {
    .hero-section.hero-dual-service {
        padding: 90px 5% 40px;
    }
    .hero-dual {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .hero-dual .hero-card img {
        height: 180px;
    }
    .hero-section.hero-dual-service h1 {
        font-size: 1.8rem;
        text-align: left;
    }
    .hero-section.hero-dual-service > p {
        text-align: left;
    }
}

/* ==========================================================================
   SECTION BASE STYLES
   ========================================================================== */
.neubau-showcase,
.sanierung-services,
.warum-bautent,
.kostenrechner-cta,
.kundenstimmen,
.region-sektion,
.kontakt-cta {
    border-radius: 0 !important;
    padding: 80px 8%;
}

/* Section subtitle / tag */
.neubau-showcase > h2,
.sanierung-services > h2,
.warum-bautent > h2,
.kundenstimmen > h2,
.region-sektion > h2 {
    text-align: center;
    margin-bottom: 1.2rem;
    position: relative;
}
.neubau-showcase > h2::after,
.sanierung-services > h2::after,
.warum-bautent > h2::after,
.kundenstimmen > h2::after,
.region-sektion > h2::after {
    content: '';
    display: block;
    width: 60px;
    height: 3px;
    background: var(--bt-color-primary);
    margin: 16px auto 0;
    border-radius: 2px;
}
/* Center first paragraph after headings */
.neubau-showcase > p:first-of-type,
.sanierung-services > p:first-of-type,
.warum-bautent > p:first-of-type,
.kundenstimmen > p:first-of-type,
.region-sektion > p:first-of-type {
    text-align: center;
    max-width: 750px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 3rem;
    color: var(--bt-color-grey-666);
    font-size: 1.05rem;
}

/* ==========================================================================
   NEUBAU SHOWCASE - Light Background
   ========================================================================== */
.neubau-showcase {
    background: var(--bt-color-white);
}
.neubau-showcase > .wp-block-image {
    display: none; /* Hide inline image for this section */
}
.neubau-showcase > ul {
    display: grid;
    gap: 20px;
    list-style: none;
    padding: 0;
    margin: 3rem auto;
    max-width: 1100px;
}
.neubau-showcase > ul li {
    background: var(--bt-color-primary-soft);
    border-radius: var(--bt-radius-xl);
    font-size: 0.95rem;
    display: flex;
    align-items: flex-start;
}
.neubau-showcase > ul li::before {
    content: '✓';
    font-weight: 700;
}
.neubau-showcase > ul li strong {
    color: var(--bt-color-navy);
}
/* Center CTA button */
.neubau-showcase > .btn,
.neubau-showcase > p:last-child {
    display: block;
    width: fit-content;
    margin: 2rem auto 0;
    text-align: center;
}
/* Mehrere Buttons nebeneinander zentrieren */
.entry-content > section > p:last-child {
    text-align: center;
}

/* ==========================================================================
   SANIERUNG SERVICES - Dark Navy Background
   ========================================================================== */
.sanierung-services {
    background: linear-gradient(180deg, var(--bt-color-navy) 0%, var(--bt-color-navy-deep) 100%);
}
.sanierung-services > h2 {
    color: var(--bt-color-white) !important;
}
.sanierung-services > h2::after {
    background: var(--bt-color-primary);
}
.sanierung-services > p:first-of-type {
    color: rgba(255, 255, 255, 0.75);
}
.sanierung-services > .wp-block-image {
    display: none; /* Hide inline image - cards are visual enough */
}
.sanierung-services .card h3 {
    color: var(--bt-color-navy);
}
.sanierung-services > .btn {
    display: block;
    width: fit-content;
    margin: 2rem auto 0;
}

/* ==========================================================================
   CARD GRID - Shared Card Styles
   ========================================================================== */
.card-grid {
    display: grid;
    gap: 24px;
    margin: 2rem 0;
}
.card-grid-3 {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
.card-grid-2 {
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
}
.card {
    background: var(--bt-color-white);
    border-radius: var(--bt-radius-xl);
    padding: 32px 28px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
    transition: all 0.3s ease;
    border: 1px solid rgba(0, 0, 0, 0.04);
    position: relative;
    overflow: hidden;
}
.card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 0;
    background: var(--bt-color-primary);
    transition: height 0.3s ease;
    border-radius: 0 0 4px 0;
}
.card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
}
.card:hover::before {
    height: 100%;
}
.card h3 {
    font-size: 1.25rem;
    margin-bottom: 0.75rem;
    color: var(--bt-color-navy);
}
.card p {
    color: var(--bt-color-text-dim);
    font-size: 0.95rem;
    line-height: 1.65;
    margin-bottom: 0.5rem;
}
.card p strong {
    color: var(--bt-color-primary);
    font-size: 1.05rem;
}
.card a:not(.btn) {
    display: inline-flex;
    align-items: center;
    color: var(--bt-color-primary);
    font-weight: 600;
    text-decoration: none;
    font-size: 0.95rem;
    margin-top: 8px;
    transition: gap 0.2s ease;
    gap: 6px;
}
.card a:not(.btn)::after {
    content: '→';
    transition: transform 0.2s ease;
}
.card a:not(.btn):hover {
    gap: 10px;
}
.card a:not(.btn):hover::after {
    transform: translateX(3px);
}

/* ==========================================================================
   WARUM BAUTENT - USPs Section
   ========================================================================== */
.warum-bautent {
    background: var(--bt-color-white);
}
.warum-bautent > .wp-block-image {
    max-width: 1100px;
    margin: 0 auto 3rem;
    border-radius: var(--bt-radius-xl);
    overflow: hidden;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
}
.warum-bautent > .wp-block-image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--bt-radius-xl);
}
.warum-bautent > .wp-block-image figcaption {
    display: none;
}
.warum-bautent .card {
    background: var(--bt-color-white);
    border-left: 4px solid var(--bt-color-primary);
    border-radius: 0 16px 16px 0;
}
.warum-bautent .card::before {
    display: none; /* Override the blue bar since we have border-left */
}
.warum-bautent .card h3 {
    font-size: 1.15rem;
}
.warum-bautent > p:last-of-type {
    text-align: center;
    margin-top: 2rem;
    font-size: 1rem;
}
.warum-bautent > p:last-of-type a {
    color: var(--bt-color-primary);
    font-weight: 600;
}

/* ==========================================================================
   KOSTENRECHNER CTA - Blue Gradient Section
   ========================================================================== */
.kostenrechner-cta {
    background: linear-gradient(135deg, var(--bt-color-primary) 0%, var(--bt-color-primary-hover) 100%);
    text-align: center;
    padding: 80px 8%;
    position: relative;
    overflow: hidden;
}
.kostenrechner-cta::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 500px;
    height: 500px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: var(--bt-radius-circle);
}
.kostenrechner-cta::after {
    content: '';
    position: absolute;
    bottom: -30%;
    left: -10%;
    width: 350px;
    height: 350px;
    background: rgba(255, 255, 255, 0.04);
    border-radius: var(--bt-radius-circle);
}
.kostenrechner-cta > * {
    position: relative;
    z-index: 1;
}
.kostenrechner-cta h2 {
    color: var(--bt-color-white) !important;
    font-size: clamp(1.6rem, 3.5vw, 2.2rem);
    max-width: 700px;
    margin: 0 auto 1.5rem;
}
.kostenrechner-cta p {
    color: rgba(255, 255, 255, 0.9);
    max-width: 650px;
    margin: 0 auto 1rem;
    font-size: 1.05rem;
}
.kostenrechner-cta p a {
    color: var(--bt-color-white) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 600;
}
.kostenrechner-cta p a:hover {
    color: var(--bt-color-white) !important;
    text-decoration-thickness: 2px;
}
.kostenrechner-cta .btn-primary {
    background: var(--bt-color-white);
    color: var(--bt-color-primary) !important;
    font-size: 1.1rem;
    padding: 16px 40px;
    margin-top: 1.5rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}
.kostenrechner-cta .btn-primary:hover {
    background: var(--bt-color-border-soft);
    transform: translateY(-3px);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);
}

/* ==========================================================================
   KUNDENSTIMMEN - Testimonials
   ========================================================================== */
.kundenstimmen {
    background: var(--bt-color-white);
    text-align: center;
}
.kundenstimmen p {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    color: var(--bt-color-text-dim);
}
.kundenstimmen ul {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 24px;
    list-style: none;
    padding: 0;
    margin: 2.5rem auto;
    max-width: 1100px;
}
.kundenstimmen ul li {
    background: var(--bt-color-primary-soft);
    border-radius: var(--bt-radius-xl);
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--bt-color-navy);
    text-align: center;
}

/* ==========================================================================
   REGION SECTION
   ========================================================================== */
.region-sektion {
    background: var(--bt-color-white);
}
.region-sektion p {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
.region-sektion p strong {
    color: var(--bt-color-navy);
}

/* ==========================================================================
   KONTAKT CTA - Dark Navy Final CTA
   ========================================================================== */
.kontakt-cta,
.bt-vu-auto-section .kontakt-cta,
.bt-vu-section-white .kontakt-cta,
section.bt-vu-auto-section.bt-vu-section-white .kontakt-cta {
    border-radius: 0 !important;
    background: linear-gradient(135deg, var(--bt-color-navy) 0%, var(--bt-color-navy-alt) 100%) !important;
    text-align: center;
    padding: 48px 40px;
    border-radius: var(--bt-radius-xl);
    color: var(--bt-color-white) !important;
}
/* CTA Dark Sections — höchste Spezifität um bt-vu-section-white zu überschreiben */
section.bt-vu-auto-section.bt-vu-cta-dark,
.entry-content section.bt-vu-auto-section.bt-vu-section-white.bt-vu-cta-dark,
.bt-vu-auto-section.bt-vu-section-white.bt-vu-cta-dark {
    background: linear-gradient(135deg, var(--bt-color-navy) 0%, var(--bt-color-navy-alt) 100%) !important;
    border-radius: var(--bt-radius-xl)!important;
    text-align: center !important;
    color: var(--bt-color-white) !important;
}
.bt-vu-cta-dark h2 { color: var(--bt-color-white) !important; }
.bt-vu-cta-dark p { color: rgba(255,255,255,0.85) !important; }
.bt-vu-cta-dark a { color: var(--bt-color-white) !important; }
/* Fallback für Browser ohne :has() */
.kontakt-cta {
    background: linear-gradient(135deg, var(--bt-color-navy) 0%, var(--bt-color-navy-alt) 100%) !important;
    padding: 80px 8% !important;
    text-align: center !important;
    color: var(--bt-color-white) !important;
}
.kontakt-cta p { color: rgba(255,255,255,0.85) !important; }
.kontakt-cta h2 {
    color: var(--bt-color-white) !important;
    font-size: clamp(1.6rem, 3.5vw, 2.2rem);
    max-width: 700px;
    margin: 0 auto 1.5rem;
}
.kontakt-cta p {
    color: rgba(255, 255, 255, 0.85);
    max-width: 650px;
    margin: 0 auto 1rem;
    font-size: 1.05rem;
}
.kontakt-cta strong {
    color: var(--bt-color-primary);
    font-size: 1.3rem;
}
.kontakt-cta .btn-primary {
    margin-top: 1.5rem;
    font-size: 1.1rem;
    padding: 16px 40px;
}

/* ==========================================================================
   GENERIC CONTENT SECTIONS (Kontakt, Qualität, Hausplaner etc.)
   Default styling for all section types that aren't homepage-specific
   ========================================================================== */

/* Inner content constrain for generic sections */
.contact-methods,
.contact-form-section,
.services-overview,
.customer-concerns,
.service-area,
.final-cta,
.intro-section,
.construction-method,
.construction-process,
.energy-efficiency,
.bautent-quality,
.guarantees-security,
.materials-sustainability,
.cta-section,
.process-overview,
.checklist-section,
.step-consultation,
.step-design,
.step-selection,
.step-pricing,
.step-construction {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

/* Section headings */
.contact-methods h2,
.contact-form-section h2,
.services-overview h2,
.customer-concerns h2,
.service-area h2,
.final-cta h2,
.intro-section h2,
.construction-method h2,
.construction-process h2,
.energy-efficiency h2,
.bautent-quality h2,
.guarantees-security h2,
.materials-sustainability h2,
.cta-section h2,
.process-overview h2,
.checklist-section h2,
.step-consultation h2,
.step-design h2,
.step-selection h2,
.step-pricing h2,
.step-construction h2 {
    text-align: center;
    margin-bottom: 1.2rem;
    position: relative;
}

/* Blue underline accent on headings */
.contact-methods h2::after,
.services-overview h2::after,
.customer-concerns h2::after,
.intro-section h2::after,
.construction-method h2::after,
.construction-process h2::after,
.energy-efficiency h2::after,
.bautent-quality h2::after,
.guarantees-security h2::after,
.materials-sustainability h2::after,
.process-overview h2::after,
.checklist-section h2::after {
    content: '';
    display: block;
    width: 60px;
    height: 3px;
    background: var(--bt-color-primary);
    margin: 16px auto 0;
    border-radius: 2px;
}

/* Intro paragraph centered */
.contact-methods > p:first-of-type,
.services-overview > p:first-of-type,
.customer-concerns > p:first-of-type,
.intro-section > p:first-of-type,
.construction-method > p:first-of-type,
.process-overview > p:first-of-type,
.checklist-section > p:first-of-type {
    text-align: center;
    max-width: 750px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 2.5rem;
    color: var(--bt-color-grey-666);
    font-size: 1.05rem;
}

/* Contact info grid */
.contact-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    max-width: 1100px;
    margin: 2rem auto;
}
.contact-card {
    background: var(--bt-color-white);
    border-radius: var(--bt-radius-xl);
    padding: 32px 28px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
    border: 1px solid rgba(0, 0, 0, 0.04);
    transition: all 0.3s ease;
    border-top: 4px solid var(--bt-color-primary);
}
.contact-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
}
.contact-card h3 {
    color: var(--bt-color-navy);
    margin-bottom: 0.75rem;
}
.contact-card .phone-number strong a {
    font-size: 1.4rem;
    color: var(--bt-color-primary);
    text-decoration: none;
}

/* CTA sections (dark background) */
.final-cta,
.cta-section {
    background: linear-gradient(135deg, var(--bt-color-navy) 0%, var(--bt-color-navy-footer) 100%) !important;
    text-align: center;
    border-radius: var(--bt-radius-xl)!important;
}
.final-cta h2,
.cta-section h2 {
    color: var(--bt-color-white) !important;
    font-size: clamp(1.6rem, 3.5vw, 2.2rem);
    max-width: 700px;
    margin: 0 auto 1.5rem;
}
.final-cta p,
.cta-section p {
    color: rgba(255, 255, 255, 0.85);
    max-width: 650px;
    margin: 0 auto 1rem;
    font-size: 1.05rem;
}
.final-cta .cta-buttons,
.cta-section .cta-buttons {
    margin-top: 1.5rem;
}
.final-cta .phone-cta strong a,
.cta-section .phone-cta strong a {
    color: var(--bt-color-primary);
    font-size: 1.3rem;
    text-decoration: none;
}
/* Kontrast-Fix 18.09.2026: gewoehnliche Flieskstext-Links in .cta-section (z.B. "bewaehrten
   Bauweise", Telefonnummer ohne .phone-cta-Wrapper) erbten nicht die weisse Absatzfarbe -
   die globale a{color:#0063dd}-Regel griff direkt und gab nur K=3 auf dem Navy-Verlauf. */
.final-cta p a:not(.phone-cta a):not(.card a),
.cta-section p a:not(.phone-cta a):not(.card a) {
    color: var(--bt-color-white);
    text-decoration: underline;
}
.final-cta .btn-primary,
.cta-section .btn-primary {
    margin-top: 1rem;
    font-size: 1.1rem;
    padding: 16px 40px;
}

/* Cards inside dark CTA sections */
.cta-section .card,
.final-cta .card {
    border-radius: var(--bt-radius-xl)!important;
}
.cta-section .card p,
.final-cta .card p {
    color: var(--bt-color-text-dim);
}
.cta-section .card p strong,
.final-cta .card p strong {
    color: var(--bt-color-primary);
}

/* Service area section */
.service-area {
    background: var(--bt-color-surface) !important;
}
.service-area h3 {
    color: var(--bt-color-navy);
    margin-top: 1.5rem;
}
.service-cities ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 1rem 0;
}
.service-cities ul li {
    background: linear-gradient(135deg, var(--bt-color-primary-soft), var(--bt-color-primary-tint-strong));
    padding: 6px 16px;
    border-radius: var(--bt-radius-3xl);
    font-size: 0.92rem;
    font-weight: 500;
    color: var(--bt-color-navy);
}

/* FAQ sections (inside generic pages) */
.faq-section {
    max-width: 1100px;
    margin: 0 auto;
}
.faq-section h2 {
    text-align: center;
    margin-bottom: 1rem;
}
/* FAQ: "Häufig gestellte Fragen" Doppel-H2 verstecken (bt-vu-faq-section) */
.bt-vu-faq-section h2,
.bt-vu-auto-section .bt-vu-faq-section > h2 {
    display: none !important;
}
/* FAQ: Kategorie-Überschriften kompakter */
.page-id-5584 h2 {
    margin-top: 1.5rem !important;
    margin-bottom: 0.5rem !important;
}
.page-id-5584 .bt-vu-auto-section {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
.faq-item {
    background: var(--bt-color-white);
    border-radius: var(--bt-radius-xl);
    padding: 24px 28px;
    margin-bottom: 16px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
    border-left: 4px solid var(--bt-color-primary);
}
.faq-item h3 {
    color: var(--bt-color-navy);
    margin-bottom: 0.5rem;
    font-size: 1.1rem;
}
.faq-item p {
    color: var(--bt-color-text-dim);
    margin-bottom: 0.5rem;
}
/* Kontrast-Fix 18.09.2026: .bt-blog-cta (dunkler Verlauf, eigene weisse Schrift) wird manchmal
   in einen .faq-item eingebettet - die p-Regel oben schlug die vererbte weisse Farbe (K=1,36). */
.faq-item .bt-blog-cta p {
    color: #fff;
}

/* Contact form section */
.contact-form-section {
    background: var(--bt-color-white) !important;
    text-align: center;
}
.contact-form-section > p {
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}
.contact-form-section ul {
    list-style: none;
    padding: 0;
    max-width: 600px;
    margin: 1.5rem auto;
    text-align: left;
}
.contact-form-section ul li {
    padding: 8px 0 8px 28px;
    position: relative;
}
.contact-form-section ul li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--bt-color-primary);
    font-weight: 700;
}

/* Qualität page: step/process sections */
.construction-process,
.process-overview {
    background: var(--bt-color-white) !important;
}

/* Guarantees section styling */
.guarantees-security .card-grid,
.materials-sustainability .card-grid {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
}

/* BAUTENT quality section */
.bautent-quality {
    background: linear-gradient(135deg, var(--bt-color-navy) 0%, var(--bt-color-navy-deep) 100%) !important;
}
.bautent-quality h2 {
    color: var(--bt-color-white) !important;
}
.bautent-quality h2::after {
    background: var(--bt-color-primary);
}
.bautent-quality > p {
    color: rgba(255, 255, 255, 0.85) !important;
}

/* ==========================================================================
   NO-HERO PAGES with sections (Qualität, Sanierungsberatung etc.)
   ========================================================================== */
.no-hero-page .entry-content > section {
    padding: 40px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.04);
}
.no-hero-page .entry-content > section:last-child {
    border-bottom: none;
}
/* Card-grids inside no-hero pages */
.no-hero-page .entry-content .card-grid {
    margin-left: 0;
    margin-right: 0;
}

/* Comparison box (Qualität page etc.) */
.comparison-box,
.quality-control-box {
    background: linear-gradient(135deg, var(--bt-color-primary-soft), var(--bt-color-primary-tint-strong));
    border-radius: var(--bt-radius-xl);
    padding: 28px 32px;
    margin: 2rem 0;
    border-left: 4px solid var(--bt-color-primary);
}
.comparison-box h3,
.quality-control-box h3 {
    color: var(--bt-color-navy);
    margin-bottom: 1rem;
}
.comparison-box ul,
.quality-control-box ul {
    list-style: none;
    padding: 0;
}
.comparison-box ul li,
.quality-control-box ul li {
    padding: 8px 0 8px 28px;
    position: relative;
    border-bottom: 1px solid rgba(0, 99, 221, 0.1);
}
.comparison-box ul li:last-child,
.quality-control-box ul li:last-child {
    border-bottom: none;
}
.comparison-box ul li::before,
.quality-control-box ul li::before {
    content: '▸';
    position: absolute;
    left: 4px;
    color: var(--bt-color-primary);
    font-weight: 700;
}

/* ==========================================================================
   BLOG ARCHIVE - Fix desktop navigation
   ========================================================================== */
.blog .main-header-bar,
.archive .main-header-bar {
    position: sticky !important;
    top: 0;
    z-index: 999;
    background-color: var(--bt-color-navy) !important;
}
/* Ensure blog page gets proper page header */
.blog .ast-archive-description,
.archive .ast-archive-description {
    background: var(--bt-color-navy);
    padding: 100px 8% 40px;
    margin: 0;
}
.blog .ast-archive-description .page-title,
.archive .ast-archive-description .page-title {
    color: var(--bt-color-white) !important;
}
/* Blog Hero: break out of ast-container to full viewport width */
.blog .hero-section.blog-hero {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: 0;
}
/* Blog content area padding — only below the hero */
.blog .site-content .ast-container {
    max-width: 1200px !important;
    margin: 0 auto;
    padding: 2rem 24px !important;
}
.archive .site-content .ast-container {
    max-width: 1200px !important;
    margin: 0 auto;
    padding: 2rem 24px !important;
}
/* Hide Astra archive-description when blog hero is active */
.blog.has-hero-section .ast-archive-description {
    display: none !important;
}
/* Blog: Grid-Layout für Beiträge */
.blog #main > .ast-row,
.archive #main > .ast-row {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
}
.blog .ast-article-post,
.archive .ast-article-post {
    margin-bottom: 0 !important;
    padding-bottom: 0;
    border-bottom: none;
    display: flex;
    flex-direction: column;
}
.blog .ast-article-post .entry-content,
.archive .ast-article-post .entry-content {
    flex: 1;
    padding: 0 20px 20px;
}
.blog .ast-article-post .entry-header,
.archive .ast-article-post .entry-header {
    padding: 16px 20px 8px;
}
.blog .ast-article-post .entry-header .entry-title,
.archive .ast-article-post .entry-header .entry-title {
    font-size: 1.1rem !important;
    line-height: 1.4;
}
.blog .ast-article-post .entry-meta,
.archive .ast-article-post .entry-meta {
    padding: 0 20px 16px;
    font-size: 0.85rem;
}
/* Blog: Pagination nicht im Grid */
.blog .ast-pagination,
.archive .ast-pagination {
    grid-column: 1 / -1;
}
/* Blog: Mehr Abstand nach Hero */
.blog .hero-section.blog-hero {
    margin-bottom: 2rem;
}
/* Blog: Sidebar aus dem Grid nehmen */
.blog #secondary,
.archive #secondary {
    grid-column: 1 / -1;
}
/* Mobile: 1 Spalte */
@media (max-width: 768px) {
    .blog #main > .ast-row,
    .archive #main > .ast-row {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* ==========================================================================
   RESPONSIVE - Mobile Adjustments
   ========================================================================== */
@media (max-width: 768px) {
    .hero-section {
        min-height: 70vh;
        padding: 100px 6% 60px;
    }
    .hero-section h1 {
        font-size: 1.8rem;
    }
    .hero-section .btn {
        display: block;
        width: 100%;
        margin-right: 0;
        margin-bottom: 12px;
        text-align: center;
    }
    /* All sections: mobile padding */
    .neubau-showcase,
    .sanierung-services,
    .warum-bautent,
    .kostenrechner-cta,
    .kundenstimmen,
    .region-sektion,
    .kontakt-cta,
    .has-hero-section .entry-content > section {
        padding: 50px 5% !important;
    }
    .card-grid-3 {
        grid-template-columns: 1fr;
    }
    .card-grid-2 {
        grid-template-columns: 1fr;
    }
    .card {
        padding: 24px 20px;
    }
    .contact-card {
        padding: 24px 20px;
    }
    .contact-info-grid {
        grid-template-columns: 1fr;
    }
    .kundenstimmen ul {
        grid-template-columns: repeat(2, 1fr);
    }
    .faq-item {
        padding: 20px;
    }
    .service-cities ul {
        justify-content: center;
    }
}

/* Tablet: 2-column grids for iPad portrait (768px) */
@media (min-width: 768px) and (max-width: 1024px) {
    .card-grid-3 {
        grid-template-columns: repeat(2, 1fr);
    }
    .card-grid-2 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .kundenstimmen ul {
        grid-template-columns: 1fr;
    }
    /* Mobile H1 Fix: Verhindert Überlaufen bei 375px-Viewport */
    h1,
    .entry-title,
    .page-title,
    .hero-section h1,
    .hero-section.hero-dual-service h1 {
        font-size: clamp(1.6rem, 7vw, 2rem) !important;
        line-height: 1.2 !important;
        word-break: break-word;
        overflow-wrap: break-word;
        hyphens: auto;
    }
}

/* ==========================================================================
   LEAD-MAGNET CTA BANNERS (inline on homepage/stadtseiten)
   mu-plugin CSS doesn't load on auto-injected pages
   ========================================================================== */
.blm-cta-banner {
    display: flex;
    align-items: center;
    gap: 16px;
    background: linear-gradient(135deg, var(--bt-color-navy), #0a3a6b);
    padding: 20px 25px;
    border-radius: var(--bt-radius-xl);
    margin: 30px 0;
    color: white;
    border: 1px solid rgba(0, 99, 221, 0.2);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.blm-cta-banner:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 32, 62, 0.25);
}
.blm-cta-banner svg {
    stroke: white;
}
.blm-cta-icon {
    flex-shrink: 0;
}
.blm-cta-text {
    flex: 1;
}
.blm-cta-text strong {
    display: block;
    font-size: 17px;
    margin-bottom: 3px;
    color: var(--bt-color-white);
}
.blm-cta-text span {
    font-size: 14px;
    opacity: .85;
}
.blm-cta-link {
    flex-shrink: 0;
    padding: 12px 24px;
    background: var(--bt-color-primary);
    color: white !important;
    text-decoration: none;
    border-radius: var(--bt-radius-md);
    font-weight: 700;
    font-size: 15px;
    white-space: nowrap;
    transition: background .2s;
}
.blm-cta-link:hover {
    background: var(--bt-color-primary-hover);
    color: white !important;
}
@media (max-width: 600px) {
    .blm-cta-banner {
        flex-direction: column;
        text-align: center;
    }
}

/* ==========================================================================
   USP BADGES FIX - Text overflow in feature list
   ========================================================================== */
.neubau-showcase > ul {
    grid-template-columns: repeat(4, 1fr);
}
.neubau-showcase > ul li {
    flex-direction: column;
    text-align: center;
    gap: 8px;
    padding: 24px 16px;
}
.neubau-showcase > ul li::before {
    align-self: center;
    background: var(--bt-color-primary);
    color: var(--bt-color-white);
    width: 28px;
    height: 28px;
    border-radius: var(--bt-radius-circle);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    flex-shrink: 0;
}
.neubau-showcase > ul li strong {
    font-size: 0.9rem;
}
@media (max-width: 900px) {
    .neubau-showcase > ul {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ==========================================================================
   KUNDENSTIMMEN STATS - Numbers highlighted
   ========================================================================== */
.kundenstimmen ul li {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 28px 20px;
    min-height: 140px;
    border: 1px solid rgba(0, 99, 221, 0.1);
}
.kundenstimmen ul li strong {
    display: block;
    font-size: 2.4rem;
    color: var(--bt-color-primary);
    margin-bottom: 8px;
    line-height: 1;
}

/* ==========================================================================
   REGION SECTION - Cities as visual tags
   ========================================================================== */
.region-sektion p strong {
    display: inline;
    background: linear-gradient(135deg, var(--bt-color-primary-soft), var(--bt-color-primary-tint-strong));
    padding: 6px 14px;
    border-radius: var(--bt-radius-3xl);
    font-size: 0.92rem;
    line-height: 2.5;
    white-space: nowrap;
}

/* ── child-30-inhalt.css — astra-child/style.css bis 18.10.2026: Stadt-/Unterseiten, Blog, Inhalt, Formulare, Tabellen, Fixes ── */
/* ==========================================================================
   STADTSEITEN / UNTERSEITEN - Layout for non-hero pages
   ========================================================================== */
.no-hero-page .entry-header {
    display: block !important;
    background: var(--bt-color-navy);
    padding: 100px 8% 30px;
    margin: 0;
}
.no-hero-page .entry-header .entry-title {
    color: var(--bt-color-white) !important;
    font-size: clamp(1.6rem, 4vw, 2.4rem);
    font-weight: 800;
    max-width: 900px;
    margin: 0;
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.2);
}

/* Content container: readable width + side padding */
.no-hero-page .entry-content {
    max-width: 960px;
    margin: 0 auto;
    padding: 2rem 24px 4rem !important;
}
/* Full-bleed images break out of container */
.no-hero-page .entry-content .wp-block-image,
.no-hero-page .entry-content > figure {
    max-width: 100vw;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}
.no-hero-page .entry-content .wp-block-image img {
    width: 100%;
    height: auto;
}
/* Figcaption centered under full-bleed images */
.no-hero-page .entry-content .wp-block-image figcaption {
    max-width: 960px;
    margin: 0.5rem auto 0;
    padding: 0 24px;
    font-size: 0.85rem;
    color: var(--bt-color-grey-888);
    text-align: center;
}
/* Text spacing */
.no-hero-page .entry-content > h2 {
    margin-top: 2.5rem;
    margin-bottom: 1rem;
}
.no-hero-page .entry-content > h3 {
    margin-top: 2rem;
    margin-bottom: 0.8rem;
}
.no-hero-page .entry-content > p {
    margin-bottom: 1.2rem;
}
.no-hero-page .entry-content > ul,
.no-hero-page .entry-content > ol {
    margin-bottom: 1.5rem;
    padding-left: 1.5rem;
}
/* Lead-Magnet banners full-width inside container */
.no-hero-page .entry-content .blm-cta-banner {
    margin-left: 0;
    margin-right: 0;
}
/* FAQ sections readable */
.no-hero-page .entry-content .faq-section {
    margin-top: 2rem;
}
.no-hero-page .entry-content .faq-section h3 {
    margin-top: 1.5rem;
    margin-bottom: 0.5rem;
    color: var(--bt-color-navy);
}
/* Reduce gap after header on stadtseiten */
.no-hero-page .entry-content > div:first-child > figure:first-child {
    margin-top: 0;
}

/* ==========================================================================
   FIX: Astra Featured Image Overflow (horizontal scrollbar)
   ========================================================================== */
.ast-single-post-featured-section,
.ast-article-image-container--wide {
    max-width: 100vw !important;
    overflow: hidden;
}

/* ==========================================================================
   FIX: Hide Astra entry-header on pages with their own hero H1
   ========================================================================== */
.has-hero-section .entry-header {
    display: none !important;
}

/* ==========================================================================
   FIX: Content padding for pages with hero sections
   (Neubau, Kontakt, Hausplaner, Qualitaet etc.)
   ========================================================================== */
.has-hero-section .entry-content > h2,
.has-hero-section .entry-content > h3,
.has-hero-section .entry-content > h4,
.has-hero-section .entry-content > p,
.has-hero-section .entry-content > ul,
.has-hero-section .entry-content > ol,
.has-hero-section .entry-content > blockquote,
.has-hero-section .entry-content > table,
.has-hero-section .entry-content > .wp-block-table,
.has-hero-section .entry-content > .card-grid,
.has-hero-section .entry-content > .blm-cta-banner,
.has-hero-section .entry-content > div:not([class]),
.has-hero-section .entry-content > .faq-section {
    max-width: 960px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
}
.has-hero-section .entry-content > ul,
.has-hero-section .entry-content > ol {
    max-width: 960px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-bottom: 1.5rem !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    list-style: none !important;
}
/* bt-vu-checklist padding auf hero pages: UL hat schon 24px padding,
   daher li padding-left reduzieren damit es nicht zu weit eingerückt ist */
.has-hero-section .entry-content > blockquote {
    max-width: 960px;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px;
    padding-right: 24px;
}
.has-hero-section .entry-content > h2 {
    margin-top: 2.5rem;
    margin-bottom: 1rem;
}
.has-hero-section .entry-content > h3 {
    margin-top: 2rem;
    margin-bottom: 0.8rem;
}
.has-hero-section .entry-content > p {
    margin-bottom: 1.2rem;
}
/* Sections: full-width with internal padding (like homepage sections) */
.has-hero-section .entry-content > section {
    max-width: none;
    width: auto;
    padding: 80px 8%;
    margin-top: 0;
    margin-bottom: 0;
}
/* Images and figures: constrained width, no side-padding so image fills edge-to-edge */
.has-hero-section .entry-content > .wp-block-image,
.has-hero-section .entry-content > figure {
    max-width: 912px;
    margin-left: auto;
    margin-right: auto;
    padding: 0;
    margin-top: 2rem;
    margin-bottom: 2rem;
    box-sizing: border-box;
    border-radius: var(--bt-radius-xl);
    overflow: visible;
}
/* Figure images: natural display with rounded corners */
.has-hero-section .entry-content > figure img {
    display: block;
    border-radius: var(--bt-radius-xl);
}
/* Alternating section backgrounds removed (Francesco: graue Balken nicht gewünscht) */

/* ==========================================================================
   FIX: Mobile Horizontal Overflow (11px from Astra header)
   ========================================================================== */
@media (max-width: 544px) {
    html, body {
        overflow-x: hidden;
    }
    .ast-builder-grid-row {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    /* Astra header sections have 40px padding - too much for mobile */
    .site-header-section {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
}

/* ==========================================================================
   MENU SECTION HEADERS (Haustypen, Standorte dividers in dropdown)
   ========================================================================== */
.menu-section-header > a,
.menu-section-header > .menu-link {
    font-weight: 700 !important;
    font-size: 0.7rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: rgba(255, 255, 255, 0.5) !important;
    pointer-events: none !important;
    cursor: default !important;
    padding-top: 10px !important;
    padding-bottom: 4px !important;
    margin-top: 6px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
}
.menu-section-header:first-child > a,
.menu-section-header:first-child > .menu-link {
    border-top: none !important;
    margin-top: 0 !important;
}
/* Blog single post navigation (Vor/Zurück) */
.single-post .post-navigation {
    max-width: 960px;
    margin: 2rem auto;
    padding: 1.5rem 24px;
}
.single-post .post-navigation .nav-links {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
}
.single-post .post-navigation .nav-links a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 24px;
    background: var(--bt-color-surface);
    border-radius: var(--bt-radius-xl);
    text-decoration: none;
    color: var(--bt-color-navy);
    transition: all 0.3s ease;
    flex: 1;
}
.single-post .post-navigation .nav-links a:hover {
    background: var(--bt-color-primary-soft);
    transform: translateY(-2px);
}
.single-post .post-navigation .nav-links a p {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.4;
}
.single-post .post-navigation .nav-links .ast-left-arrow,
.single-post .post-navigation .nav-links .ast-right-arrow {
    font-size: 0.85rem;
    color: var(--bt-color-text-muted);
}
@media (max-width: 768px) {
    .single-post .post-navigation .nav-links {
        flex-direction: column;
    }
}

/* Hide the dropdown arrow on section headers */
.menu-section-header .ast-icon {
    display: none !important;
}

/* ==========================================================================
   FIX: Handle entry-header on pages with content H1 (title disabled by PHP).
   - With featured image: hide empty entry-header (featured img provides bridge)
   - Without featured image: show slim navy entry-header as visual bridge
   ========================================================================== */
.no-hero-page.has-content-h1.has-featured-image .entry-header {
    display: none !important;
}
.no-hero-page.has-content-h1:not(.has-featured-image) .entry-header {
    display: block !important;
    background: var(--bt-color-navy);
    padding: 80px 8% 10px;
    margin: 0;
}
/* Kontrast-Fix 18.09.2026: .entry-meta-Links (Autor, Datum) sind global Markenblau - auf der
   Navy-Bruecke ohne Beitragsbild war das nur K=3 (3 Seiten, u. a. Fassadensanierung-Artikel). */
.no-hero-page.has-content-h1:not(.has-featured-image) .entry-header .entry-meta,
.no-hero-page.has-content-h1:not(.has-featured-image) .entry-header .entry-meta * {
    color: rgba(255, 255, 255, .9) !important;
}

/* ==========================================================================
   BLOG ARCHIVE - Navy bridge for fixed header clearance
   ========================================================================== */
.blog .site-content > .ast-container,
.archive .site-content > .ast-container {
    padding-top: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
}
.blog #primary,
.archive #primary {
    padding-top: 100px;
    padding-left: 24px;
    padding-right: 24px;
    background: linear-gradient(to bottom, var(--bt-color-navy) 0, var(--bt-color-navy) 110px, transparent 110px);
}

/* ==========================================================================
   BLOG ARCHIVE - Card-style post grid
   ========================================================================== */
.blog .ast-article-post,
.archive .ast-article-post {
    background: var(--bt-color-white);
    border-radius: var(--bt-radius-xl);
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
    transition: all 0.3s ease;
    border: 1px solid rgba(0, 0, 0, 0.04);
}
.blog .ast-article-post:hover,
.archive .ast-article-post:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
}
.blog .ast-article-post .post-thumb-img-content img,
.archive .ast-article-post .post-thumb-img-content img {
    border-radius: 16px 16px 0 0;
}
.blog .ast-article-post .entry-header .entry-title a,
.archive .ast-article-post .entry-header .entry-title a {
    color: var(--bt-color-navy);
    text-decoration: none;
    transition: color 0.2s ease;
}
.blog .ast-article-post .entry-header .entry-title a:hover,
.archive .ast-article-post .entry-header .entry-title a:hover {
    color: var(--bt-color-primary);
}
/* Blog archive H1 for SEO */
.blog .page-title,
.blog .ast-archive-title {
    font-size: clamp(1.6rem, 4vw, 2.4rem);
    color: var(--bt-color-navy);
    font-weight: 800;
    margin-bottom: 2rem;
}
/* Category badges */
.blog .cat-links a,
.archive .cat-links a,
.single-post .cat-links a {
    background: var(--bt-color-primary-soft);
    color: var(--bt-color-primary);
    padding: 4px 12px;
    border-radius: var(--bt-radius-3xl);
    font-size: 0.8rem;
    font-weight: 600;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.blog .cat-links a:hover,
.archive .cat-links a:hover {
    background: var(--bt-color-primary);
    color: var(--bt-color-white);
}

/* ==========================================================================
   SINGLE BLOG POST - Clean reading experience
   ========================================================================== */
.single-post .entry-content {
    max-width: 780px;
    margin: 0 auto;
    padding: 2rem 24px 4rem;
    font-size: 1.05rem;
    line-height: 1.8;
}
.single-post .entry-header {
    text-align: center;
    padding: 80px 24px 2rem;
    max-width: 780px;
    margin: 0 auto;
}
.single-post .entry-header .entry-title {
    font-size: clamp(1.6rem, 4vw, 2.4rem);
    color: var(--bt-color-navy);
    font-weight: 800;
    line-height: 1.25;
}
.single-post .entry-meta {
    color: var(--bt-color-grey-888);
    font-size: 0.9rem;
}
.single-post .entry-content blockquote {
    border-left: 4px solid var(--bt-color-primary);
    background: var(--bt-color-surface);
    padding: 1.5rem 2rem;
    margin: 2rem 0;
    border-radius: 0 12px 12px 0;
    font-style: italic;
    color: var(--bt-color-text-dim);
}
.single-post .entry-content img {
    border-radius: var(--bt-radius-xl);
    margin: 1.5rem 0;
}
/* Read more links */
.blog .ast-read-more-container a,
.archive .ast-read-more-container a {
    display: inline-flex;
    align-items: center;
    color: var(--bt-color-primary);
    font-weight: 600;
    text-decoration: none;
    gap: 6px;
    transition: gap 0.2s ease;
}
.blog .ast-read-more-container a::after,
.archive .ast-read-more-container a::after {
    content: '→';
    transition: transform 0.2s ease;
}
.blog .ast-read-more-container a:hover,
.archive .ast-read-more-container a:hover {
    gap: 10px;
}

/* ==========================================================================
   MU-PLUGIN SECTIONS (Reviews + Netzwerk) - Same width as body text
   ========================================================================== */
.bautent-reviews-section,
.bautent-netzwerk-section {
    max-width: 960px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px;
    padding-right: 24px;
}

/* ==========================================================================
   AUTO-SEKTIONIERUNG — Einheitliche Formatierung für alle Seitentypen
   Vom Visual-Upgrade Plugin generierte <section class="bt-vu-auto-section">
   ========================================================================== */
.bt-vu-auto-section {
    padding: 60px 8%;
    margin: 0;
}
.bt-vu-auto-section.bt-vu-section-white {
    background: var(--bt-color-white);
}
.bt-vu-auto-section.bt-vu-section-gray {
    background: var(--bt-color-surface);
}
/* Content innerhalb Auto-Sektionen: max-width für Lesbarkeit */
.bt-vu-auto-section > h2,
.bt-vu-auto-section > h3,
.bt-vu-auto-section > h4,
.bt-vu-auto-section > p,
.bt-vu-auto-section > ul,
.bt-vu-auto-section > ol,
.bt-vu-auto-section > blockquote,
.bt-vu-auto-section > table,
.bt-vu-auto-section > .wp-block-table,
.bt-vu-auto-section > .bt-vu-faq-section,
.bt-vu-auto-section > .bt-vu-faq-item,
.bt-vu-auto-section > .bt-vu-checklist,
.bt-vu-auto-section > .bt-vu-timeline,
.bt-vu-auto-section > .bt-vu-features-grid,
.bt-vu-auto-section > .bt-vu-foerder-card,
.bt-vu-auto-section > .bt-vu-info-box,
.bt-vu-auto-section > .bt-vu-infobox,
.bt-vu-auto-section > .bt-vu-steps,
.bt-vu-auto-section > .blm-cta-banner,
.bt-vu-auto-section > div:not([class]) {
    max-width: 960px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
/* H2 in Auto-Sektionen: Konsistentes Styling wie auf Hero-Pages */
.bt-vu-auto-section > h2 {
    margin-top: 0;
    margin-bottom: 1.2rem;
}
.bt-vu-auto-section > h3 {
    margin-top: 1.5rem;
    margin-bottom: 0.8rem;
}
/* Responsive */
@media (max-width: 768px) {
    .bt-vu-auto-section {
        padding: 40px 5%;
    }
}

/* ==========================================================================
   TRUST BADGES BAR - Below hero for social proof
   ========================================================================== */
.trust-badges {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
    padding: 24px 8%;
    background: var(--bt-color-white);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    flex-wrap: wrap;
}
.trust-badge {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.92rem;
    color: var(--bt-color-text-dim);
    white-space: nowrap;
}
.trust-badge svg {
    color: var(--bt-color-primary);
    flex-shrink: 0;
}
.trust-badge strong {
    color: var(--bt-color-navy);
    font-size: 1.1rem;
}
@media (max-width: 768px) {
    .trust-badges {
        gap: 20px;
        padding: 16px 5%;
    }
    .trust-badge {
        font-size: 0.875rem;
    }
}

/* ==========================================================================
   SECTION WAVE DIVIDERS - Premium visual separation
   ========================================================================== */
.section-wave {
    position: relative;
    margin-top: -1px;
}
.section-wave svg {
    display: block;
    width: 100%;
    height: 60px;
}
.section-wave-white svg { fill: var(--bt-color-white); }
.section-wave-gray svg { fill: var(--bt-color-surface); }
.section-wave-navy svg { fill: var(--bt-color-navy); }

/* ==========================================================================
   SUBTLE BACKGROUND PATTERNS (navy sections)
   ========================================================================== */
.sanierung-services,
.kontakt-cta {
    border-radius: 0 !important;
    position: relative;
}
.sanierung-services::after,
.kontakt-cta::after {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-image: radial-gradient(rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size: 30px 30px;
    pointer-events: none;
    z-index: 0;
}
.sanierung-services > *,
.kontakt-cta > * {
    position: relative;
    z-index: 1;
}

/* ==========================================================================
   IMAGE HOVER EFFECTS
   ========================================================================== */
.entry-content .wp-block-image {
    overflow: hidden;
    border-radius: var(--bt-radius-xl);
}
.entry-content .wp-block-image img {
    transition: transform 0.5s ease;
}
.entry-content .wp-block-image:hover img {
    transform: scale(1.03);
}
/* Hero images should NOT zoom and NO rounded corners */
.hero-section .wp-block-image,
.hero-section .wp-block-image img {
    border-radius: var(--bt-radius-xl)!important;
}
.hero-section .wp-block-image:hover img {
    transform: none;
}

/* ==========================================================================
   STICKY MOBILE CTA BAR - "Jetzt beraten lassen"
   ========================================================================== */
@media (max-width: 768px) {
    .bt-mobile-cta {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        background: var(--bt-color-navy);
        padding: 12px 16px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        z-index: 998;
        box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.2);
        transform: translateY(0);
        transition: transform 0.3s ease;
    }
    .bt-mobile-cta.hidden {
        transform: translateY(100%);
    }
    .bt-mobile-cta-text {
        color: var(--bt-color-white);
        font-size: 0.85rem;
        font-weight: 600;
        line-height: 1.3;
    }
    .bt-mobile-cta-btn {
        background: var(--bt-color-primary);
        color: var(--bt-color-white) !important;
        padding: 10px 20px;
        border-radius: var(--bt-radius-md);
        font-weight: 700;
        font-size: 0.85rem;
        text-decoration: none;
        white-space: nowrap;
        flex-shrink: 0;
    }
    /* Push footer content up to avoid CTA bar overlap */
    .bt-site-footer {
        padding-bottom: 70px;
    }
    /* Push scroll-to-top button above sticky CTA bar */
    #ast-scroll-top {
        bottom: 80px !important;
    }
}

/* ==========================================================================
   BLOG READING PROGRESS BAR
   ========================================================================== */
.bt-reading-progress {
    position: fixed;
    top: 0;
    left: 0;
    width: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--bt-color-primary), #00c6ff);
    z-index: 1001;
    transition: width 0.1s ease-out;
}

/* ==========================================================================
   PAGINATION - Styled page numbers
   ========================================================================== */
.ast-pagination .page-numbers {
    background: var(--bt-color-primary-soft);
    color: var(--bt-color-navy);
    border-radius: var(--bt-radius-md);
    padding: 8px 14px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
}
.ast-pagination .page-numbers:hover {
    background: var(--bt-color-primary);
    color: var(--bt-color-white);
}
.ast-pagination .page-numbers.current {
    background: var(--bt-color-primary);
    color: var(--bt-color-white);
}

/* ── Contact Form ────────────────────────────── */
.contact-form-wrapper {
    max-width: 800px;
    margin: 0 auto;
}
.bt-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}
.bt-form-field.bt-form-full {
    grid-column: 1 / -1;
}
.bt-form-field label {
    display: block;
    font-weight: 600;
    margin-bottom: 0.4rem;
    color: var(--bt-color-navy-mid);
    font-size: 0.95rem;
}
.bt-form-field input,
.bt-form-field select,
.bt-form-field textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--bt-color-border-strong);
    border-radius: var(--bt-radius-md);
    font-size: 1rem;
    font-family: inherit;
    box-sizing: border-box;
    transition: border-color 0.2s;
    background: var(--bt-color-white);
}
.bt-form-field select {
    appearance: auto;
    -webkit-appearance: menulist;
    min-height: 48px;
    overflow: visible;
    text-overflow: clip;
    white-space: nowrap;
    padding-right: 30px;
}
.bt-form-field input:focus,
.bt-form-field select:focus,
.bt-form-field textarea:focus {
    outline: none;
    border-color: var(--bt-color-primary);
    box-shadow: 0 0 0 3px rgba(0, 99, 221, 0.1);
}
.bt-form-privacy {
    font-size: 0.85rem;
    color: var(--bt-color-text-muted);
    margin: 1rem 0 0.5rem;
}
.bt-form-submit {
    display: inline-block;
    padding: 14px 40px;
    background: var(--bt-color-primary);
    color: var(--bt-color-white);
    font-weight: 700;
    font-size: 1.05rem;
    border: none;
    border-radius: var(--bt-radius-md);
    cursor: pointer;
    transition: background 0.2s;
    font-family: inherit;
}
.bt-form-submit:hover {
    background: var(--bt-color-primary-hover);
}
.bt-form-submit:disabled {
    background: var(--bt-color-text-faint);
    cursor: not-allowed;
}
@media (max-width: 600px) {
    .bt-form-grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   PORTFOLIO / NEUBAU-MODELLE SINGLE PAGES
   ========================================================================== */

/* Hide Astra's native post thumbnail (we use hero-section instead) */
.single-us_portfolio .post-thumb-img-content {
    display: none !important;
}

/* Portfolio hero: break out of max-width container (full-bleed) */
.single-us_portfolio .entry-content > .hero-section {
    width: 100vw;
    position: relative;
    left: 50%;
    margin-left: -50vw;
    max-width: none;
    box-sizing: border-box;
}
.hero-portfolio {
    min-height: 45vh;
    padding: 80px 8% 50px;
}

/* Content-Bereich */
.single-us_portfolio .entry-content {
    max-width: 900px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
    font-size: 1.05rem;
    line-height: 1.75;
}
.single-us_portfolio .entry-content h2 {
    font-size: 1.8rem;
    margin: 2.5rem 0 1rem;
    color: var(--bt-color-ink);
}
.single-us_portfolio .entry-content h3 {
    font-size: 1.35rem;
    margin: 2rem 0 0.8rem;
    color: var(--bt-color-ink);
    border-bottom: 2px solid var(--bt-color-gold);
    padding-bottom: 0.4rem;
}
.single-us_portfolio .entry-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.2rem 0;
    border-radius: var(--bt-radius-md);
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}
.single-us_portfolio .entry-content table td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--bt-color-border);
}
.single-us_portfolio .entry-content table tr:nth-child(even) {
    background: var(--bt-color-surface);
}

/* Grundrisse Sektion */
.grundrisse-section {
    background: var(--bt-color-surface);
    border-radius: var(--bt-radius-xl);
    padding: 2rem;
    margin: 2rem 0;
}
.grundrisse-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1.5rem;
    margin-top: 1rem;
}
.grundriss-item {
    background: var(--bt-color-white);
    border-radius: var(--bt-radius-md);
    padding: 1rem;
    text-align: center;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.grundriss-item img {
    max-width: 100%;
    height: auto;
    border-radius: var(--bt-radius-xs);
}
.grundriss-item p {
    margin: 0.5rem 0 0;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--bt-color-text-dim);
}

/* Kommentare ausblenden */
.single-us_portfolio .comments-area,
.single-us_portfolio .comment-respond,
.single-us_portfolio #comments {
    display: none !important;
}

/* Prev/Next Navigation styling */
.single-us_portfolio .post-navigation {
    max-width: 900px !important;
    margin: 2rem auto !important;
    padding: 1.5rem 3rem !important;
    --ast-post-nav-space: 3rem;
}

/* Grundriss Lightbox */
.grundriss-item {
    cursor: zoom-in;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.grundriss-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0,0,0,0.12);
}
.grundriss-lightbox {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: rgba(0,0,0,0.85);
    justify-content: center;
    align-items: center;
    cursor: zoom-out;
    padding: 2rem;
}
.grundriss-lightbox.active {
    display: flex;
}
.grundriss-lightbox img {
    max-width: 90vw;
    max-height: 90vh;
    object-fit: contain;
    border-radius: var(--bt-radius-md);
    box-shadow: 0 8px 40px rgba(0,0,0,0.4);
}
.grundriss-lightbox .lightbox-close {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    width: 40px;
    height: 40px;
    background: rgba(255,255,255,0.15);
    border: none;
    border-radius: var(--bt-radius-circle);
    color: var(--bt-color-white);
    font-size: 1.5rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
}
.grundriss-lightbox .lightbox-close:hover {
    background: rgba(255,255,255,0.3);
}

/* Intro-Paragraph (erster Absatz) */
.single-us_portfolio .entry-content > p:first-child {
    font-size: 1.08rem;
    color: #444;
    line-height: 1.8;
}

@media (max-width: 768px) {
    .hero-portfolio {
        min-height: 35vh;
        padding: 60px 6% 40px;
    }
    .single-us_portfolio .entry-content {
        padding: 1.5rem 1rem;
    }
    .grundrisse-grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   TABELLEN - Einheitliches Design fuer alle Seiten
   Gleiche Breite/Abstaende wie der Fliesstext
   ========================================================================== */
.entry-content table {
    width: 100%;
    max-width: 900px;
    border-collapse: collapse;
    margin: 1.5rem auto !important;
    border-radius: var(--bt-radius-md);
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    font-size: 0.95rem;
    line-height: 1.6;
}
.entry-content table thead th,
.entry-content table th {
    background: var(--bt-color-navy);
    color: var(--bt-color-white);
    font-weight: 600;
    padding: 12px 16px;
    text-align: left;
    font-size: 0.9rem;
    letter-spacing: 0.02em;
}
.entry-content table td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--bt-color-border);
    color: var(--bt-color-text);
}
.entry-content table tr:nth-child(even) {
    background: var(--bt-color-surface);
}
.entry-content table tr:hover {
    background: #eef3fb;
}
.entry-content table td strong {
    color: var(--bt-color-navy);
}
@media (max-width: 768px) {
    .entry-content table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        max-width: 100%;
        background:
            linear-gradient(to right, white 30%, transparent),
            linear-gradient(to left, white 30%, transparent),
            linear-gradient(to right, rgba(0,0,0,.15), transparent 70%),
            linear-gradient(to left, rgba(0,0,0,.15), transparent 70%);
        background-position: left center, right center, left center, right center;
        background-repeat: no-repeat;
        background-size: 20px 100%, 20px 100%, 10px 100%, 10px 100%;
        background-attachment: local, local, scroll, scroll;
    }
    .entry-content table th,
    .entry-content table td {
        padding: 10px 12px;
        white-space: normal;
        min-width: 80px;
    }
}
/* ==========================================================================
   MOBILE: Standorte-Footer besser lesbar + Touch-Targets
   ========================================================================== */
@media (max-width: 768px) {
    #bt-standorte-footer {
        font-size: 0.88rem !important;
        line-height: 2.2 !important;
    }
    #bt-standorte-footer a {
        padding: 4px 2px;
    }
    /* Datenschutz-Checkbox besser lesbar */
    .bt-form-privacy,
    .bt-form-privacy label {
        font-size: 0.88rem !important;
    }
    /* FAQ-Pfeil grösser */
    .entry-content details summary::marker,
    .faq-toggle {
        font-size: 14px;
    }
    /* Cookie-Banner kompakter auf Mobile */
    .cmplz-cookiebanner .cmplz-body {
        font-size: 13px !important;
        line-height: 1.4 !important;
        padding: 12px 16px !important;
        max-height: 40vh;
        overflow-y: auto;
    }
    .cmplz-cookiebanner .cmplz-message {
        font-size: 13px !important;
        margin-bottom: 8px !important;
    }
    .cmplz-cookiebanner .cmplz-buttons {
        padding: 8px 16px 12px !important;
    }
    /* Model gallery: 1 column on mobile */
    .bt-model-gallery {
        grid-template-columns: 1fr !important;
    }
    /* Stats grid: stack on mobile */
    .bt-stats-grid {
        grid-template-columns: 1fr !important;
    }
}

/* ==========================================================================
   FIX: Lead-Magnet Banner text = gleich wie Fließtext
   ========================================================================== */
.blm-cta-banner .blm-cta-text strong {
    font-size: inherit !important;
}
.blm-cta-banner .blm-cta-text span {
    font-size: inherit !important;
    opacity: 1 !important;
}

/* ==========================================================================
   FIX: Listen + FAQ auf gleicher Flucht wie Absatztext
   UL-Bullets hängen links im Padding-Bereich, Text bündig mit <p>
   ========================================================================== */

/* UL: Kein Padding, keine Standard-Bullets
   Zweiter Selector überschreibt die hero-section Regel (Zeile ~1783) mit gleicher Spezifität.
   Checklisten + Timelines ausgenommen (haben eigene Styles im visual-upgrade Plugin). */
.entry-content ul:not(.bt-vu-checklist):not(.bt-vu-timeline),
.has-hero-section .entry-content > ul:not(.bt-vu-checklist):not(.bt-vu-timeline) {
    padding-left: 0 !important;
    list-style: none !important;
}
/* OL: Minimales Padding für Ziffern */
.entry-content ol:not(.bt-vu-timeline),
.has-hero-section .entry-content > ol:not(.bt-vu-timeline) {
    padding-left: 1.5em !important;
    list-style: decimal outside !important;
}
/* LI-Text bündig mit Absätzen, Bullet hängt links im padding-Bereich.
   Nicht auf Checklisten/Timelines/Leistungen (eigene ::before Icons). */
.entry-content ul:not(.bt-vu-checklist):not(.bt-vu-timeline):not(.bt-vu-leistungen) > li {
    display: flex;
    align-items: center;
    gap: 0.6em;
    margin-bottom: 0.5em;
    font-size: inherit;
    line-height: 1.6;
}
.entry-content ul:not(.bt-vu-checklist):not(.bt-vu-timeline):not(.bt-vu-leistungen) > li::before {
    content: "\2713";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: var(--bt-radius-circle);
    background: var(--bt-color-success-dark);
    color: var(--bt-color-white);
    font-weight: bold;
    font-size: 14px;
    flex-shrink: 0;
}
.entry-content ol:not(.bt-vu-timeline) > li {
    margin-bottom: 0.5em;
    font-size: inherit;
    line-height: 1.6;
}

/* FAQ-Section: Kein Extra-Padding in Blog-Posts (entry-content hat bereits padding) */
.single-post .entry-content > .bt-vu-faq-section {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* ==========================================================================
   ENTRY-TITLE-HIDE auf Konfigurator/Kostenrechner-Seiten
   Vermeidet doppeltes H1 (Astra entry-title + Konfigurator-Hero)
   Page-IDs: 6324 (Sanierung-Konfig), 5138 (Kostenrechner — falls Header sichtbar)
   ========================================================================== */
.page-id-6324 .entry-header > .entry-title,
.page-id-6324 .entry-header.ast-no-thumbnail:not(.ast-no-title) {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
}

/* ==========================================================================
   Startseite: Abstaende vereinheitlicht + Kennzahlen (2026-05-21)
   ========================================================================== */
/* SEO-Textblock am Seitenende: aus losen Absaetzen wird eine echte Sektion */
.home-seo {
    background: var(--bt-color-white);
    padding: 80px 8%;
}
.home-seo > h2,
.home-seo > h3,
.home-seo > p {
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
}

/* Kennzahlen-Block in der "Warum Bautent"-Sektion */
.warum-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
    max-width: 720px;
    margin: 40px auto 0;
}
.warum-stat {
    flex: 1 1 260px;
    background: var(--bt-color-surface-alt);
    border-radius: var(--bt-radius-xl);
    padding: 24px 20px;
    text-align: center;
}
.warum-stat-zahl {
    display: block;
    font-size: 38px;
    font-weight: 800;
    color: var(--bt-color-primary);
    line-height: 1;
}
.warum-stat-label {
    display: block;
    margin-top: 8px;
    font-size: 15px;
    color: var(--bt-color-text-dim);
    line-height: 1.4;
}
@media (max-width: 768px) {
    .home-seo { padding: 56px 6%; }
}

/* ═══════════════════════════════════════════════════════════════════════
   DESIGN-VEREINHEITLICHUNG — 15.06.2026
   Behebt: Text klebt am Rand, Bilder unterschiedlich groß, Boxen über Hero,
   7 verschiedene Container-Breiten. Backup: design-unification-20260615/
   ═══════════════════════════════════════════════════════════════════════ */
/* --bt-container / --bt-gutter / --bt-radius / --bt-shadow stehen seit 18.09.2026
   in mu-plugins/bautent-tokens.php (:root). Hier bewusst nicht mehr definiert. */

/* ── Stufe 1a: Durchgehender Innenabstand + einheitliche Breite ──
   Ersetzt die löchrige Selektor-Whitelist. Jeder Inhaltsblock (ausser
   Voll-Bleed-Hero/Bilder) bekommt 960px Breite + 24px Seitenabstand. */
.has-hero-section .entry-content > *:not(section):not(.hero-section):not(.wp-block-image):not(figure):not(.alignfull):not(.alignwide){
  max-width:var(--bt-container);
  margin-left:auto;
  margin-right:auto;
  padding-left:var(--bt-gutter);
  padding-right:var(--bt-gutter);
  box-sizing:border-box;
}

/* ── Stufe 1b: Injizierte Plugin-Boxen auf gleiche Spur + gleichen Radius ── */
.bautent-striking-booster,
.bautent-netzwerk-section,
.bt-usp-badge,
.bt-trust-row,
.bt-model-gallery,
.bt-stats-grid{
  max-width:var(--bt-container) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  border-radius:var(--bt-radius);
  box-sizing:border-box;
}

/* ── Stufe 1c: Einheitliche Eck-Radien für Karten ── */
.entry-content .card,
.entry-content .bt-card,
.bt-stats-grid > *,
.bt-model-gallery > *{
  border-radius:var(--bt-radius);
}

/* Stats-Grid auf Mobil: 1 Spalte (18.09.2026, optische Pruefung).
   Vorherige 2-Spalten-Variante ueberschrieb die korrekte 1fr-Regel weiter oben in dieser
   Datei wieder -> Kartentexte (z.B. "Fester Zeitplan", 1.8rem-Zahlen) waren bei ~166px
   Spaltenbreite rechts abgeschnitten. */
@media (max-width:600px){
  .bt-stats-grid{ grid-template-columns:1fr !important; }
}

/* ── Stufe 2: Bilder einheitlich (gleiches Seitenverhältnis) ── */
.bt-model-gallery{ padding-left:0; padding-right:0; }
.bt-model-gallery img{
  width:100%;
  aspect-ratio:3 / 2;
  height:auto !important;
  object-fit:cover;
  border-radius:var(--bt-radius);
  display:block;
}
.has-hero-section .entry-content > figure{
  max-width:var(--bt-container);
  margin-left:auto;
  margin-right:auto;
}
.has-hero-section .entry-content > figure img{ width:100%; height:auto; }

/* ── Stufe 3: Tabellen mobil scrollbar statt über den Rand ── */
@media (max-width:768px){
  .has-hero-section .entry-content > table,
  .has-hero-section .entry-content > .wp-block-table,
  .entry-content .wp-block-table{
    display:block;
    width:100%;
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .entry-content table{ font-size:14px; }
}
/* ═══ Ende Design-Vereinheitlichung ═══ */

/* ── Korrektur 15.06.2026: echte visual-upgrade-Bildklassen (bt-vu-*) ──
   Modell-/Galerie-Bilder rendern sonst unterschiedlich hoch (inline width:100%
   ohne Höhe). Einheitliches 3:2-Seitenverhältnis + object-fit:cover. */
.bt-vu-auto-section img,
.bt-vu-section-gray img,
.bt-vu-section-white img{
  aspect-ratio:3 / 2;
  height:auto !important;
  object-fit:cover;
  border-radius:var(--bt-radius) !important;
  display:block;
}

/* FAQ-Akkordeon-Reparatur 15.06.2026: seit Welle 2 (18.10.2026) in 10-visual-upgrade.css */

/* ── child-40-functions-inline.css — astra-child/functions.php bis 18.10.2026: #primary-Abstand, Mobil-Header navy, Link-Unterstreichung, Menue-Toggle/Konfigurator-/Rechtsseiten-Kopf ── */
/* Welle 3 (18.10.2026, Task #669): frueher vier wp_add_inline_style('astra-child-style', ...)-Bloecke
   in themes/astra-child/functions.php (Prio 25, Reihenfolge: bautent_override_primary_margin,
   bautent_override_mobile_header, bautent_override_link_underline, bautent_fix_mobile_menu_toggle).
   WordPress gab sie als <style id="astra-child-style-inline-css"> direkt hinter dem <link> der
   bautent-child.css aus - das Ende dieser Datei ist dieselbe Stelle der Kaskade.
   Inhalt unveraendert (byte-genau aus dem ausgelieferten HTML uebernommen). */


        #primary,
        .ast-plain-container #primary,
        .ast-plain-container.ast-no-sidebar #primary,
        .ast-separate-container #primary {
            margin-top: 0 !important;
            margin-bottom: 0 !important;
        }
    

        /* Primary header bar: dark navy on ALL devices */
        .ast-primary-header-bar,
        .ast-primary-header-bar .site-primary-header-wrap {
            background-color: #00203E !important;
            border-bottom-color: transparent !important;
        }

        /* Hamburger icon: white (not Astra blue) */
        [data-section="section-header-mobile-trigger"] .ast-button-wrap .ast-mobile-menu-trigger-minimal,
        .ast-mobile-menu-trigger-minimal {
            color: #ffffff !important;
        }
        [data-section="section-header-mobile-trigger"] .ast-button-wrap .mobile-menu-toggle-icon .ast-mobile-svg,
        .ast-mobile-menu-trigger-minimal .ast-mobile-svg,
        .menu-toggle .ast-mobile-svg {
            fill: #ffffff !important;
        }

        /* Mobile off-canvas drawer: dark navy */
        .ast-mobile-popup-drawer.active .ast-mobile-popup-inner,
        .ast-mobile-header-wrap .ast-mobile-header-content,
        .ast-desktop-header-content {
            background-color: #00203E !important;
        }

        /* Mobile menu items: white text */
        .ast-builder-menu-mobile .main-navigation .main-header-menu .menu-item > .menu-link,
        .ast-builder-menu-mobile .main-navigation .main-header-menu .menu-item > .ast-menu-toggle {
            color: rgba(255, 255, 255, 0.9) !important;
        }
        .ast-builder-menu-mobile .main-navigation .main-header-menu .menu-item:hover > .menu-link {
            color: #0063dd !important;
            background: rgba(0, 99, 221, 0.08) !important;
        }
        .ast-builder-menu-mobile .main-navigation .main-header-menu,
        .ast-builder-menu-mobile .main-navigation .main-header-menu .menu-link,
        .ast-builder-menu-mobile .main-navigation .main-header-menu .sub-menu {
            background-color: #00203E !important;
        }

        /* Close button: white */
        .ast-mobile-popup-drawer.active .menu-toggle-close {
            color: #ffffff !important;
        }
    

        .ast-single-post .entry-content a,
        .entry-content a,
        .entry-content p a,
        .ast-comment-content a {
            text-decoration: none !important;
        }
    

        @media (max-width: 921px) {
            .ast-builder-menu-mobile .main-navigation .menu-item.current-menu-ancestor > .ast-menu-toggle,
            .ast-builder-menu-mobile .main-navigation .menu-item.current-menu-item > .ast-menu-toggle {
                background: transparent !important;
            }
        }
        /* Konfigurator entry-header: Hintergrundbild hinter der Ueberschrift */
        .page-id-6323 .entry-header,
        .page-id-6324 .entry-header {
            padding: 120px 8% 50px !important;
            background-size: cover !important;
            background-position: center !important;
            width: 100vw !important;
            max-width: 100vw !important;
            margin-left: calc(-50vw + 50%) !important;
        }
        .page-id-6323 .entry-header {
            background: linear-gradient(135deg, rgba(0,32,62,.82), rgba(0,61,107,.75)),
                        url("/wp-content/uploads/2026/09/einfamilienhaus-modern-neubau.webp") center/cover no-repeat !important;
        }
        .page-id-6324 .entry-header {
            background: linear-gradient(135deg, rgba(0,32,62,.82), rgba(0,61,107,.75)),
                        url("/wp-content/uploads/2026/09/haus-schutznetz-fassadensanierung.webp") center/cover no-repeat !important;
        }
        .page-id-6323 .entry-header .entry-title,
        .page-id-6324 .entry-header .entry-title {
            color: #fff !important;
            font-size: 2.2rem !important;
            font-weight: 800 !important;
            text-shadow: 0 2px 8px rgba(0,0,0,.3) !important;
        }
        /* Legal pages (Impressum, AGB, Datenschutz): Hero mit Hintergrundbild */
        .page-id-2090 .entry-header,
        .page-id-6401 .entry-header,
        .page-id-240 .entry-header {
            background: linear-gradient(135deg, rgba(0,32,62,.88), rgba(0,61,107,.80)),
                        url("/wp-content/uploads/2026/03/bauplanung-und-kostenberechnung-f-r-hausbau-in-kar-bautent-1024x585.webp") center/cover no-repeat !important;
            padding: 110px 8% 45px !important;
            width: 100vw !important;
            max-width: 100vw !important;
            margin-left: calc(-50vw + 50%) !important;
        }
        .page-id-2090 .entry-header .entry-title,
        .page-id-6401 .entry-header .entry-title,
        .page-id-240 .entry-header .entry-title {
            font-size: clamp(1.8rem, 4vw, 2.6rem) !important;
            text-shadow: 0 2px 12px rgba(0,0,0,.4) !important;
        }
        /* Hide chatbot bubble on konfigurator pages (overlaps buttons) */
        .page-id-6323 #bt-cb-bubble,
        .page-id-6324 #bt-cb-bubble {
            display: none !important;
        }
        /* Hide mobile CTA bar on konfigurator pages (overlaps sticky nav) */
        @media (max-width: 767px) {
            .page-id-6323 #bt-mobile-cta,
            .page-id-6324 #bt-mobile-cta,
            .page-id-6323 .bt-sticky-cta-inner,
            .page-id-6324 .bt-sticky-cta-inner {
                display: none !important;
            }
        }
    

/* ── child-60-striking-booster.css — mu-plugins/bautent-striking-distance-booster.php (<style> im Inhalt, bis 18.10.2026) ── */
/* Welle 4 (18.10.2026, Task #669): frueher <style> im the_content-Ausgang von
   mu-plugins/bautent-striking-distance-booster.php (Startseite + 5 Sanierungs-/Hausbau-Seiten).
   Alle Selektoren beginnen mit .bautent-striking-booster (nur dort im DOM). Inhalt unveraendert. */

      .bautent-striking-booster { margin: 48px 0 32px; padding: 0; }
      .bautent-striking-booster h2 { font-size: 24px; margin-bottom: 20px; color: var(--bt-color-navy-bar); }
      .bautent-striking-booster .striking-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
      .bautent-striking-booster .striking-card { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px; border: 1px solid var(--bt-color-border); border-radius: var(--bt-radius-lg); background: #f4f7fb; text-decoration: none !important; color: inherit !important; transition: all .15s ease; position: relative; }
      .bautent-striking-booster .striking-card:hover { border-color: var(--bt-color-primary); background: var(--bt-color-white); box-shadow: 0 4px 12px rgba(0,99,221,0.08); transform: translateY(-2px); }
      .bautent-striking-booster .striking-title { font-weight: 700; font-size: 16px; color: var(--bt-color-navy-bar); }
      .bautent-striking-booster .striking-desc { font-size: 14px; color: var(--bt-color-text-mute-blue); line-height: 1.4; }
      .bautent-striking-booster .striking-arrow { position: absolute; top: 18px; right: 20px; color: var(--bt-color-primary); font-size: 20px; opacity: .6; }
      .bautent-striking-booster .striking-card:hover .striking-arrow { opacity: 1; }
      @media (max-width: 600px) { .bautent-striking-booster .striking-cards { grid-template-columns: 1fr; } }
    

/* ── child-70-chatbot.css — mu-plugins/bautent-chatbot.php (<style> im wp_footer Prio 50, bis 18.10.2026; JS bleibt dort) ── */
/* Welle 4 (18.10.2026, Task #669): frueher <style> in mu-plugins/bautent-chatbot.php (wp_footer Prio 50).
   Alle Selektoren sind #bt-cb-... bzw. .bt-cb-..., Animationen @keyframes bt-cb-...; die einzigen fremden Regeln
   dazu (functions.php, 60-sticky-cta, 90-design-fixes, Landing-Template) sind !important mit hoeherer
   Spezifitaet. Inhalt unveraendert. Das JS bleibt im mu-plugin. */

    #bt-cb-bubble{position:fixed;bottom:24px;left:24px;z-index:99998;width:56px;height:56px;background:var(--bt-color-primary);border-radius:var(--bt-radius-circle);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 20px rgba(0,99,221,.4);transition:transform .2s,box-shadow .2s}
    #bt-cb-bubble:hover{transform:scale(1.08);box-shadow:0 6px 25px rgba(0,99,221,.5)}
    #bt-cb-badge{position:absolute;top:-2px;right:-2px;width:20px;height:20px;background:var(--bt-color-danger);color:var(--bt-color-white);border-radius:var(--bt-radius-circle);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--bt-color-white);animation:bt-cb-badgepulse 2s infinite}
    @keyframes bt-cb-badgepulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
    #bt-cb-tooltip{position:fixed;bottom:42px;left:88px;z-index:99998;background:var(--bt-color-white);color:var(--bt-color-text);padding:8px 14px;border-radius:var(--bt-radius-lg);font-size:13px;font-weight:500;box-shadow:0 2px 12px rgba(0,0,0,.12);font-family:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;white-space:nowrap;opacity:0;transform:translateX(-8px);animation:bt-cb-ttshow .4s ease .5s forwards}
    #bt-cb-tooltip::before{content:'';position:absolute;left:-6px;top:50%;transform:translateY(-50%);border:6px solid transparent;border-right-color:var(--bt-color-white)}
    @keyframes bt-cb-ttshow{to{opacity:1;transform:translateX(0)}}
    .bt-cb-tt-hide{animation:bt-cb-tthide .3s ease forwards!important}
    @keyframes bt-cb-tthide{to{opacity:0;transform:translateX(-8px)}}
    #bt-cb-window{position:fixed;bottom:90px;left:24px;z-index:99999;width:380px;height:520px;background:var(--bt-color-white);border-radius:var(--bt-radius-2xl);box-shadow:0 8px 40px rgba(0,0,0,.15);display:flex;flex-direction:column;overflow:hidden;font-family:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif}
    #bt-cb-header{background:var(--bt-color-navy);color:var(--bt-color-white);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
    #bt-cb-header-info{display:flex;align-items:center;gap:10px}
    #bt-cb-header-actions{display:flex;align-items:center;gap:4px}
    #bt-cb-avatar{width:36px;height:36px;background:var(--bt-color-primary);border-radius:var(--bt-radius-circle);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}
    #bt-cb-title{font-weight:600;font-size:15px;line-height:1.2}
    #bt-cb-status{font-size:12px;opacity:.8}
    #bt-cb-status::before{content:'';display:inline-block;width:7px;height:7px;background:#48bb78;border-radius:var(--bt-radius-circle);margin-right:5px;vertical-align:middle}
    #bt-cb-close,#bt-cb-restart{background:none;border:none;color:var(--bt-color-white);cursor:pointer;padding:4px;line-height:1;opacity:.7;transition:opacity .2s;display:flex;align-items:center;justify-content:center;border-radius:var(--bt-radius-xs)}
    #bt-cb-close{font-size:28px;padding:0 4px}
    #bt-cb-close:hover,#bt-cb-restart:hover{opacity:1;background:rgba(255,255,255,.15)}
    #bt-cb-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--bt-color-surface-alt)}
    .bt-cb-msg{max-width:85%;padding:10px 14px;border-radius:14px;font-size:14px;line-height:1.5;animation:bt-cb-fadein .3s ease}
    .bt-cb-bot{align-self:flex-start;background:var(--bt-color-white);color:var(--bt-color-text);border:1px solid var(--bt-color-border);border-bottom-left-radius:4px}
    .bt-cb-user{align-self:flex-end;background:var(--bt-color-primary);color:var(--bt-color-white);border-bottom-right-radius:4px}
    .bt-cb-typing{align-self:flex-start;background:var(--bt-color-white);border:1px solid var(--bt-color-border);border-radius:14px;border-bottom-left-radius:4px;padding:10px 18px}
    .bt-cb-typing span{display:inline-block;width:8px;height:8px;background:#aaa;border-radius:var(--bt-radius-circle);margin:0 2px;animation:bt-cb-dot 1.4s infinite}
    .bt-cb-typing span:nth-child(2){animation-delay:.2s}
    .bt-cb-typing span:nth-child(3){animation-delay:.4s}
    @keyframes bt-cb-dot{0%,80%,100%{transform:scale(1);opacity:.4}40%{transform:scale(1.3);opacity:1}}
    @keyframes bt-cb-fadein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
    .bt-cb-options{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0;align-self:flex-start;max-width:100%}
    .bt-cb-opt{background:var(--bt-color-white);color:var(--bt-color-primary);border:1.5px solid var(--bt-color-primary);border-radius:var(--bt-radius-3xl);padding:8px 16px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap;font-family:inherit}
    .bt-cb-opt:hover{background:var(--bt-color-primary);color:var(--bt-color-white)}
    .bt-cb-links{display:flex;flex-direction:column;gap:6px;align-self:flex-start;width:85%;animation:bt-cb-fadein .3s ease}
    .bt-cb-link{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--bt-color-white);border:1px solid var(--bt-color-border);border-radius:var(--bt-radius-lg);color:var(--bt-color-navy);text-decoration:none;font-size:13px;font-weight:500;transition:all .2s;font-family:inherit}
    .bt-cb-link:hover{border-color:var(--bt-color-primary);background:var(--bt-color-primary-tint);color:var(--bt-color-navy);text-decoration:none}
    .bt-cb-link svg{flex-shrink:0}
    .bt-cb-form{align-self:flex-start;background:var(--bt-color-white);border:1px solid var(--bt-color-border);border-radius:14px;padding:14px;width:85%;display:flex;flex-direction:column;gap:8px;animation:bt-cb-fadein .3s ease}
    .bt-cb-form input,.bt-cb-form textarea,.bt-cb-form select{padding:10px 12px;border:1.5px solid var(--bt-color-border-mid);border-radius:var(--bt-radius-md);font-size:14px;font-family:inherit;transition:border-color .2s,box-shadow .2s}
    .bt-cb-form input:focus,.bt-cb-form textarea:focus,.bt-cb-form select:focus{border-color:var(--bt-color-primary);outline:none}
    .bt-cb-form input.bt-cb-invalid,.bt-cb-form select.bt-cb-invalid{border-color:var(--bt-color-danger);box-shadow:0 0 0 3px rgba(229,62,62,.15)}
    .bt-cb-form .bt-cb-errmsg{font-size:11px;color:var(--bt-color-danger);margin:-4px 0 0 2px;display:none}
    .bt-cb-form button{padding:10px;background:var(--bt-color-primary);color:var(--bt-color-white);border:none;border-radius:var(--bt-radius-md);font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .2s}
    .bt-cb-form button:hover{background:var(--bt-color-primary)}
    .bt-cb-form button:disabled{background:var(--bt-color-grey-999);cursor:wait}
    .bt-cb-form-privacy{font-size:11px;color:var(--bt-color-grey-999);text-align:center;margin:0}
    #bt-cb-input-area{padding:12px;border-top:1px solid var(--bt-color-border);background:var(--bt-color-white);flex-shrink:0;gap:8px}
    #bt-cb-input-area[style*="flex"]{display:flex}
    #bt-cb-input{flex:1;padding:10px 14px;border:1.5px solid var(--bt-color-border-mid);border-radius:var(--bt-radius-3xl);font-size:14px;font-family:inherit;transition:border-color .2s}
    #bt-cb-input:focus{border-color:var(--bt-color-primary);outline:none}
    #bt-cb-send{width:38px;height:38px;background:var(--bt-color-primary);border:none;border-radius:var(--bt-radius-circle);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s}
    #bt-cb-send:hover{background:var(--bt-color-primary)}
    /* Estimate Card */
    .bt-cb-estimate{align-self:flex-start;background:linear-gradient(135deg,var(--bt-color-navy) 0%,var(--bt-color-navy-alt) 100%);color:var(--bt-color-white);border-radius:14px;padding:16px;width:85%;animation:bt-cb-fadein .3s ease}
    .bt-cb-estimate-title{font-size:12px;text-transform:uppercase;letter-spacing:.5px;opacity:.8;margin-bottom:8px}
    .bt-cb-estimate-range{font-size:22px;font-weight:700;margin-bottom:4px}
    .bt-cb-estimate-details{font-size:12px;opacity:.7;margin-bottom:10px}
    .bt-cb-estimate-disclaimer{font-size:11px;opacity:.6;border-top:1px solid rgba(255,255,255,.15);padding-top:8px;margin-top:8px;line-height:1.4}
    .bt-cb-estimate-cta{display:inline-block;margin-top:10px;padding:8px 16px;background:var(--bt-color-primary);color:var(--bt-color-white);border-radius:var(--bt-radius-3xl);font-size:13px;font-weight:600;text-decoration:none;transition:background .2s}
    .bt-cb-estimate-cta:hover{background:var(--bt-color-primary);color:var(--bt-color-white);text-decoration:none}
    /* Foerder-Tipp Card */
    .bt-cb-foerdertipp{align-self:flex-start;background:var(--bt-color-primary-tint);border:1.5px solid var(--bt-color-primary);border-radius:14px;padding:14px;width:85%;animation:bt-cb-fadein .3s ease}
    .bt-cb-foerdertipp-label{font-size:11px;font-weight:700;color:var(--bt-color-primary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
    .bt-cb-foerdertipp-title{font-size:14px;font-weight:600;color:var(--bt-color-navy);margin-bottom:4px}
    .bt-cb-foerdertipp-text{font-size:13px;color:var(--bt-color-text-dim);line-height:1.5}
    /* Service Grid */
    .bt-cb-services{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-self:flex-start;width:85%;animation:bt-cb-fadein .3s ease}
    .bt-cb-service{padding:10px 12px;background:var(--bt-color-white);border:1.5px solid var(--bt-color-border);border-radius:var(--bt-radius-lg);text-align:center;cursor:pointer;transition:all .2s;font-size:12px;font-weight:500;color:var(--bt-color-navy);font-family:inherit}
    .bt-cb-service:hover{border-color:var(--bt-color-primary);background:var(--bt-color-primary-tint)}
    @media(max-width:767px){
        #bt-cb-bubble{bottom:24px;left:16px;width:48px;height:48px}
        #bt-cb-bubble svg{width:24px;height:24px}
        #bt-cb-badge{width:18px;height:18px;font-size:10px}
        #bt-cb-tooltip{bottom:36px;left:72px;font-size:12px;padding:6px 12px}
        #bt-cb-window{bottom:0;left:0;right:0;width:100%;height:100vh;height:100dvh;border-radius:0}
    }
    @supports(padding-bottom:env(safe-area-inset-bottom)){
        @media(max-width:767px){
            #bt-cb-input-area{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
        }
    }
    
