/* =========================================================
   Beiser Bau – style.css (Home + Pages)
   - Home: kein Scroll
   - Alle anderen Seiten: normal scrollen
   - Glow-Panel Utility: Border + Glow, kein Background
========================================================= */

/* ── Basis-Font ──────────────────────────────────────────── */
html,
body {
    font-family:
        "Inter",
        system-ui,
        -apple-system,
        sans-serif;
}

/* ============ Tokens ============ */
:root {
    /* ── Logo-Farben ── */
    --accent: #c8282a;
    --accent-dark: #a02020;
    --accent-2: rgba(200, 40, 42, 0.12);
    --accent-glow: rgba(200, 40, 42, 0.22);

    /* ── Hintergründe – neutral dunkel, kein Blaustich ── */
    --bg: #18181b;
    --bg-2: #27272a;
    --bg-section-alt: #52525b;

    /* ── Text (heller für besseren Kontrast) ── */
    --text: #f5f5f5;
    --muted: rgba(245, 245, 245, 0.68);
    --subtle: rgba(245, 245, 245, 0.42);

    /* ── Surfaces – Silbergrau ── */
    --surface: rgba(38, 38, 40, 0.72);
    --surface-strong: rgba(28, 28, 30, 0.94);
    --surface-mid: rgba(50, 50, 52, 0.8);
    --border: rgba(255, 255, 255, 0.1);
    --border-strong: rgba(255, 255, 255, 0.18);

    --radius: 16px;
    --shadow: 0 18px 55px rgba(0, 0, 0, 0.55);

    --ui-top: 0px;
    --ui-bottom: 0px;

    --nav-h: 68px;
    --strip-h: 52px;

    --bar: min(88%, 1320px);

    /* Background */
    --hero-img: url("../img/dark-grunge-texture.jpg");
    --hero-bg-size: cover;
    --hero-bg-pos: 48% 48%;
    --hero-bg-repeat: no-repeat;

    /* Overlays */
    /* --hero-roof-img: url("../img/logo-dach.webp");
    --hero-word-img: url("../img/logo-schrift.webp"); */

    /* Position (x/y) – hier kannst du feinjustieren */
    --hero-roof-pos: 50% 50%;
    --hero-word-pos: 50% 46%;

    /* Größen */
    --hero-word-size: clamp(2100px, 195vw, 6600px);
    --hero-roof-size: clamp(2100px, 195vw, 6600px);

    /* Look */

    --hero-mark-bright: 1.9;
    --hero-mark-contrast: 1.15;

    /* Kacheln tiefer */
    --hero-cards-offset: 28px;

    --hero-split: 1.15fr 0.85fr;
    --hero-bar: min(90%, 1500px);
}

/* ============ Base ============ */
html {
    box-sizing: border-box;
}
*,
*::before,
*::after {
    box-sizing: inherit;
}

html,
body {
    margin: 0;
    padding: 0;
    height: 100%;
    font-family:
        system-ui,
        -apple-system,
        Segoe UI,
        Roboto,
        Arial,
        sans-serif;
    color: var(--text);
}

/* Standard: Seiten dürfen scrollen */
body {
    overflow-x: hidden;
    overflow-y: auto;
    background: var(--bg);
}

/* Home: scrollbar wie alle anderen Seiten */
body.home {
    overflow-x: hidden;
    overflow-y: auto;
}

/* Subtile Linien (neutral, kein Blau) */
body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    opacity: 0.07;
    background:
        linear-gradient(
                to right,
                rgba(255, 255, 255, 0.06) 1px,
                transparent 1px
            )
            0 0 / 120px 120px,
        linear-gradient(
                to bottom,
                rgba(255, 255, 255, 0.06) 1px,
                transparent 1px
            )
            0 0 / 120px 120px;
}

.wrap {
    width: var(--bar);
    margin: 0 auto;
}
.hero-wrap.wrap {
    width: var(--hero-bar);
}

:focus-visible {
    outline: 2px solid rgba(201, 162, 39, 0.65);
    outline-offset: 3px;
    border-radius: 10px;
}

/* ============ Glow Panel Utility (dein Lieblingslook) ============ */
.glow-panel {
    border-radius: 22px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    box-shadow: 0 26px 85px rgba(0, 0, 0, 0.58);
    background: transparent;

    position: relative;
    overflow: hidden;
}

.glow-panel::before {
    content: "";
    position: absolute;
    inset: -1px;
    z-index: 0;
    background:
        radial-gradient(
            600px 200px at 10% 8%,
            rgba(200, 40, 42, 0.13),
            transparent 55%
        ),
        radial-gradient(
            480px 200px at 90% 20%,
            rgba(255, 255, 255, 0.04),
            transparent 55%
        );
    pointer-events: none;
    opacity: 0.9;
}

.glow-panel > * {
    position: relative;
    z-index: 1;
}

/* Leistungen-Seite – sauberes dunkles Grau, kein Texture-Bild */
.page-services {
    background: var(--bg);
}

/* ============ NAV – Standard-Vollbreite ============ */
.nav-container {
    height: var(--nav-h);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;

    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 clamp(20px, 5vw, 72px);

    background: rgba(16, 16, 16, 0.96);
    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: 0;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.45);
    overflow: visible;
    z-index: 1000;
}

.logo-chip {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border-radius: 12px;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.06);
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.25);
    text-decoration: none;
}
.logo-chip img {
    height: 40px;
    width: auto;
    display: block;
}

.nav-right {
    display: flex;
    align-items: center;
    gap: 14px;
}

.nav-link {
    color: rgba(232, 237, 242, 0.9);
    text-decoration: none;
    font-weight: 750;
    font-size: 0.95rem;
    letter-spacing: 0.2px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid transparent;
    background: transparent;
    transition:
        background 0.15s ease,
        border-color 0.15s ease;
}
.nav-link:hover {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.1);
}

/* ============ HAMBURGER ============ */
.hamburger {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    width: 44px;
    height: 44px;
    border: 1px solid var(--border);
    background: rgba(255, 255, 255, 0.05);
    border-radius: 12px;
    cursor: pointer;
}
.hamburger .line {
    display: block;
    height: 2px;
    width: 22px;
    margin: 0 auto;
    background: rgba(232, 237, 242, 0.92);
    border-radius: 2px;
    transition:
        transform 0.22s ease,
        opacity 0.22s ease;
}
.hamburger.active .line:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}
.hamburger.active .line:nth-child(2) {
    opacity: 0;
}
.hamburger.active .line:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

/* ── Facebook-Icon in der Nav ─────────────────────────── */
.nav-social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: rgba(255, 255, 255, 0.05);
    color: rgba(232, 237, 242, 0.75);
    text-decoration: none;
    transition:
        background 0.15s ease,
        border-color 0.15s ease,
        color 0.15s ease;
    flex-shrink: 0;
}
.nav-social:hover {
    background: rgba(24, 119, 242, 0.18);
    border-color: rgba(24, 119, 242, 0.4);
    color: #fff;
}
.nav-social svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
}

/* ============ MENU ============ */
.menu-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(10, 14, 20, 0.55);
    opacity: 0;
    visibility: hidden;
    transition:
        opacity 0.18s ease,
        visibility 0s 0.18s;
    z-index: 900;
}
.menu-backdrop.show {
    opacity: 1;
    visibility: visible;
    transition: opacity 0.18s ease;
}

.menu-panel {
    position: fixed;
    top: calc(var(--ui-top) + var(--nav-h) + 10px);
    left: 50%;
    transform: translateX(-50%) translateY(-6px);
    width: var(--bar);
    padding: 14px;
    border-radius: var(--radius);

    background: rgba(16, 16, 16, 0.88);
    border: 1px solid rgba(255, 255, 255, 0.14);
    box-shadow: 0 26px 85px rgba(0, 0, 0, 0.58);

    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
        opacity 0.18s ease,
        transform 0.18s ease,
        visibility 0s 0.18s;
    z-index: 950;

    display: grid;
    gap: 10px;
}
.menu-panel.show {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
    transition:
        opacity 0.18s ease,
        transform 0.18s ease;
}
.menu-panel a {
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 14px 14px;
    border-radius: 12px;
    text-decoration: none;
    font-size: 1.05rem;
    font-weight: 850;

    color: rgba(232, 237, 242, 0.95);
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.12);
    transition:
        background 0.15s ease,
        border-color 0.15s ease,
        transform 0.15s ease;
}
.menu-panel a:hover {
    transform: translateX(2px);
    background: rgba(201, 162, 39, 0.12);
    border-color: rgba(201, 162, 39, 0.35);
}

/* ============ HERO ============ */
.hero {
    height: 100vh;
    width: 100vw;
    position: relative;

    background-image: var(--hero-img);
    background-size: var(--hero-bg-size);
    background-position: var(--hero-bg-pos);
    background-repeat: var(--hero-bg-repeat);
    background-color: var(--bg);

    overflow: hidden;
    isolation: isolate; /* Blend-Mode sauber halten */
}

/* Hintergrund-Video: deckt den Hero-Bereich ab */
.hero-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0; /* unter Overlays und Inhalt */
    pointer-events: none;
}

/* Overlay-Layer: Dach (oben) */
.hero::before {
    content: "";
    position: absolute;
    inset: 0;

    background-image: var(--hero-roof-img);
    background-repeat: no-repeat;
    background-position: var(--hero-roof-pos);
    background-size: var(--hero-roof-size);

    opacity: var(--hero-mark-opacity);
    filter: brightness(var(--hero-mark-bright))
        contrast(var(--hero-mark-contrast));

    /* Optional: wenn es komisch wirkt -> auskommentieren */
    mix-blend-mode: screen;

    pointer-events: none;
    z-index: 0;
}

/* Overlay-Layer: Schrift (darunter) */
.hero::after {
    content: "";
    position: absolute;
    inset: 0;

    background-image: var(--hero-word-img);
    background-repeat: no-repeat;
    background-position: var(--hero-word-pos);
    background-size: var(--hero-word-size);

    opacity: calc(var(--hero-mark-opacity) * 0.95);
    filter: brightness(var(--hero-mark-bright))
        contrast(var(--hero-mark-contrast));

    /* Optional */
    mix-blend-mode: screen;

    pointer-events: none;
    z-index: 0;
}

/* Hero-Overlay: minimal – Video so natürlich/hell wie möglich zeigen */
.hero-overlay {
    position: absolute;
    inset: 0;
    /* Nur ganz subtile Rand-Vignette für Text-Lesbarkeit links, sonst open */
    background:
        linear-gradient(
            110deg,
            rgba(0, 0, 0, 0.42) 0%,
            rgba(0, 0, 0, 0.12) 30%,
            transparent 55%
        ),
        linear-gradient(
            to bottom,
            rgba(0, 0, 0, 0.18) 0%,
            transparent 14%,
            transparent 80%,
            rgba(0, 0, 0, 0.35) 100%
        );
    pointer-events: none;
    z-index: 1;
}

/* Wrap */
.hero-wrap {
    height: 100%;
    position: relative;
    z-index: 2;

    display: flex;
    align-items: center;

    padding-top: calc(var(--nav-h) + 24px);
    padding-bottom: calc(var(--strip-h) + 24px);
}

/* Kacheln / Grid tiefer setzen */
.hero-grid {
    width: 100%;
    display: grid;
    grid-template-columns: var(--hero-split);
    gap: 16px;
    align-items: stretch;

    transform: translateY(var(--hero-cards-offset));
}

/* Hero Panels: nur Layout (Look kommt von .glow-panel) */
.hero-panel {
    padding: 20px 20px 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 200px;
}

/* Typo (dein Original bleibt) */
.eyebrow {
    margin: 0 0 6px;
    color: var(--muted);
    font-weight: 750;
    letter-spacing: 0.2px;
}

h1 {
    margin: 0;
    font-size: clamp(1.85rem, 2.6vw, 2.65rem);
    line-height: 1.08;
    letter-spacing: 0.2px;
}

h2 {
    margin: 0;
    font-size: 1.25rem;
    letter-spacing: 0.2px;
}

.accent {
    color: var(--accent);
}

.subline {
    margin: 0;
    color: rgba(232, 237, 242, 0.78);
    font-weight: 650;
    font-size: 0.98rem;
}

.lead {
    margin: 0;
    color: rgba(232, 237, 242, 0.92);
    font-size: 1.03rem;
    line-height: 1.45;
}

.checks {
    margin: 0;
    padding: 0;
    list-style: none;
    color: rgba(232, 237, 242, 0.86);
}

.checks li {
    margin: 8px 0;
    padding-left: 26px;
    position: relative;
}

.checks li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--accent);
    font-weight: 900;
}

.cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: auto;
    padding-top: 8px;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 14px;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 850;
    border: 1px solid rgba(255, 255, 255, 0.14);
    letter-spacing: 0.2px;
    transition:
        transform 0.15s ease,
        background 0.15s ease,
        border-color 0.15s ease;
}

.btn:hover {
    transform: translateY(-1px);
}

.btn-primary {
    background: var(--accent);
    color: #ffffff;
    border-color: rgba(200, 40, 42, 0.6);
    font-weight: 800;
}
.btn-primary:hover {
    background: var(--accent-dark);
}

.btn-ghost {
    background: rgba(255, 255, 255, 0.06);
    color: rgba(232, 237, 242, 0.95);
}

.note {
    margin: 6px 0 0;
    color: rgba(232, 237, 242, 0.62);
    font-size: 0.9rem;
}

/* ============ STRIP – im Hero eingebettet ============ */
.strip {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 5;
}

.strip-inner {
    height: var(--strip-h);
    border-radius: 0;
    background: rgba(10, 10, 10, 0.88);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: none;
    overflow: hidden;
    display: flex;
    align-items: center;
}

.marquee {
    width: 100%;
    overflow: hidden;
}
.marquee-track {
    display: inline-flex;
    gap: 42px;
    white-space: nowrap;
    padding-left: 18px;
    animation: marquee 22s linear infinite;
    will-change: transform;
}
.marquee-track span {
    color: rgba(232, 237, 242, 0.88);
    font-size: 0.95rem;
}
.marquee-track b {
    color: var(--accent);
}

@keyframes marquee {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-50%);
    }
}

/* ============ Responsive ============ */
@media (max-width: 980px) {
    :root {
        --bar: min(92%, 760px);
        --hero-bg-size: cover;
        --hero-bg-pos: center;
        --hero-bg-repeat: no-repeat;
    }

    /* Mobile: auch Home darf scrollen */
    body.home {
        overflow-y: auto;
    }

    .nav-link,
    .nav-social {
        display: none;
    }

    /* ── Mobile Hero: kein Video, solider Hintergrund ─────── */
    .hero {
        height: auto;
        min-height: 100svh;
        display: flex;
        flex-direction: column;
        background: linear-gradient(
            160deg,
            #18181b 0%,
            #111113 55%,
            #18181b 100%
        );
    }

    /* Video + Overlay auf Mobile ausblenden */
    .hero-video,
    .hero-overlay {
        display: none;
    }

    .hero-wrap {
        display: none;
    }

    /* Komplettes Mobile Hero Layout */
    .hero-mobile-top {
        display: flex !important;
        flex-direction: column;
        align-items: center;
        text-align: center;
        position: relative;
        z-index: 2;
        flex: 1;
        padding: calc(var(--nav-h) + 48px) clamp(24px, 7vw, 52px)
            calc(var(--strip-h) + 52px);
        pointer-events: auto;
        gap: 0;
    }
    .hero-mobile-logo {
        width: clamp(220px, 72vw, 310px);
        height: auto;
        display: block;
        margin: 0 auto 60px;
        filter: drop-shadow(0 0 40px rgba(200, 40, 42, 0.4))
            drop-shadow(0 4px 20px rgba(0, 0, 0, 0.55));
    }
    .hero-mobile-eyebrow {
        font-size: 0.7rem;
        font-weight: 700;
        letter-spacing: 2.5px;
        text-transform: uppercase;
        color: var(--accent);
        margin: 0 0 12px;
    }
    .hero-mobile-h1 {
        font-size: clamp(1.75rem, 8vw, 2.4rem);
        font-weight: 900;
        color: #fff;
        line-height: 1.1;
        margin: 0 0 18px;
    }
    .hero-mobile-h1 span {
        color: var(--accent);
    }
    .hero-mobile-sub {
        font-size: 0.8rem;
        font-weight: 600;
        color: rgba(255, 255, 255, 0.65);
        letter-spacing: 0.3px;
        margin: 0 0 16px;
        line-height: 1.55;
    }
    .hero-mobile-lead {
        font-size: 0.93rem;
        color: rgba(245, 245, 245, 0.62);
        line-height: 1.65;
        margin: 0 0 28px;
        max-width: 340px;
    }
    .hero-mobile-cta {
        display: flex;
        gap: 12px;
        flex-wrap: wrap;
        justify-content: center;
        margin-bottom: 16px;
    }
    .hero-mobile-note {
        font-size: 0.75rem;
        color: rgba(255, 255, 255, 0.38);
        margin: 0;
        letter-spacing: 0.2px;
    }
    .hero-scroll-hint {
        display: none;
    }
}

/* =========================================================
   LEISTUNGEN (page-services) – Fix + Layout + Sections
   (scoped, damit Home nicht beeinflusst wird)
========================================================= */

/* Seite darf scrollen (falls irgendwo noch overflow killt) */
body.page-services {
    overflow-y: auto;
    overflow-x: hidden;
}

/* Platz für fixed Nav – page-hero regelt das selbst via padding-top:var(--nav-h) */
.page-services .page-main {
    padding-top: 0;
}

/* Anchor-Scroll: damit #renovierung etc. nicht unter Nav/Subnav landen */
.page-services [id] {
    scroll-margin-top: calc(var(--ui-top) + var(--nav-h) + 120px);
}

/* Kopfbereich */
.page-services .page-head {
    padding: 18px 0 10px;
}

.page-services .page-head-card {
    padding: 20px 20px 18px;
}

/* =========================================================
   SUBNAV (sticky) – NICHT transparent, keine Überlagerung
========================================================= */
.page-services .page-subnav {
    position: sticky;
    top: calc(var(--ui-top) + var(--nav-h) + 10px);
    z-index: 850;

    background: rgba(26, 26, 26, 0.94);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 16px;

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    box-shadow:
        0 12px 32px rgba(0, 0, 0, 0.45),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);

    padding: 10px 12px;
    margin: 10px auto 0;
    width: var(--bar);
}

/* Row: horizontal scroll nur für Buttons */
.page-services .subnav-row {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 6px 0;
    scrollbar-width: thin;
}
.page-services .subnav-row::-webkit-scrollbar {
    height: 8px;
}
.page-services .subnav-row::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.12);
    border-radius: 999px;
}
.page-services .subnav-row .btn {
    white-space: nowrap;
}

.page-services .page-subnav .btn {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
}
.page-services .page-subnav .btn:hover {
    background: rgba(255, 255, 255, 0.1);
}

/* Abstand nach Subnav, damit Content nicht „dranklebt” */
/* margin-bottom entfernt – shadow-bottom würde sonst im Leerraum schweben */
/* .page-services .page-subnav + * {
} */

/* Subnav: breiter als Standard-wrap */
.page-services .page-subnav {
    position: sticky;
    top: calc(var(--ui-top, 0px) + var(--nav-h, 78px) + 10px);
    z-index: 850;

    /* HIER: breiter als wrap */
    width: min(92vw, 1400px); /* 92vw = weiter raus links/rechts */
    margin: 6px auto 0; /* zentriert */
    padding: 10px 14px; /* Glas-Container-Padding */

    background: rgba(26, 26, 26, 0.94);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    backdrop-filter: blur(10px);
    box-shadow: 0 18px 60px rgba(0, 0, 0, 0.55);
}

/* WICHTIG: innerer wrap darf NICHT wieder begrenzen */
.page-services .page-subnav .wrap {
    width: 100%;
    max-width: none;
    padding: 0; /* weil outer already padding hat */
}

.page-services .subnav-row {
    justify-content: center; /* Buttons mittig */
}
.page-services .subnav-row {
    overflow-x: auto; /* Scroll bleibt */
}

/* Cards im Leistungen-Bereich: stärker sichtbar */
.section.section-dark[aria-label="Leistungen"] .glow-panel {
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: transparent;
    backdrop-filter: blur(10px);
    border-radius: 18px;

    /* Mehr Tiefe */
    box-shadow:
        0 18px 55px rgba(0, 0, 0, 0.65),
        0 0 0 1px rgba(255, 255, 255, 0.04) inset;
    position: relative;
    overflow: hidden;
}

/* sehr leichter roter "Glow" links oben – sauber und subtil */
.section.section-dark[aria-label="Leistungen"] .glow-panel::before {
    content: "";
    position: absolute;
    inset: -2px;
    background: radial-gradient(
        420px 240px at 18% 18%,
        rgba(255, 46, 46, 0.14),
        transparent 60%
    );
    opacity: 0.9;
    pointer-events: none;
}

/* hover: minimal stärker, damit es "lebt" */
.section.section-dark[aria-label="Leistungen"] .glow-panel:hover {
    transform: translateY(-2px);
    box-shadow:
        0 22px 65px rgba(0, 0, 0, 0.75),
        0 0 0 1px rgba(255, 255, 255, 0.06) inset;
}

/* Stack: mehr Luft zwischen den 3 Hauptleistungen */
.section.section-dark[aria-label="Leistungen"] .stack-3 {
    display: grid;
    gap: 18px; /* vorher vermutlich zu eng */
}

/* Divider sichtbar, aber clean */
.section.section-dark[aria-label="Leistungen"] .svc-divider {
    height: 1px;
    margin: clamp(26px, 4vw, 40px) 0;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.1),
        transparent
    );
    opacity: 0.9;
}

/* Grid-2: mehr Luft + gleiche Höhe wirkt ordentlicher */
.section.section-dark[aria-label="Leistungen"] .grid-2 {
    gap: 18px;
    align-items: stretch;
}

/* =========================================================
   CARDS / LISTS (nur auf Leistungen)
   -> du nutzt .glow-panel, daher Card selbst neutral halten
========================================================= */

/* Card neutralisieren (Glow kommt von .glow-panel) */
.page-services .card {
    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 22px;
    overflow: hidden;
    position: relative;
}

.page-services .pad {
    padding: 18px 18px 16px;
}

.page-services .card--lift {
    transition:
        transform 0.18s ease,
        border-color 0.18s ease;
}
.page-services .card--lift:hover {
    transform: translateY(-2px);
}

.page-services .card--wide {
    width: 100%;
}

.page-services .stack-3 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin-top: 8px;
}

.page-services .grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-top: 18px;
}

/* Divider (du hast es im HTML, fehlte oft im CSS) */
.page-services .svc-divider {
    height: 18px;
}

/* Bullets */
.page-services .bullets {
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
}
.page-services .bullets li {
    margin: 8px 0;
    padding-left: 18px;
    position: relative;
    color: rgba(232, 237, 242, 0.88);
}
.page-services .bullets li::before {
    content: "•";
    position: absolute;
    left: 0;
    top: 0;
    color: rgba(232, 237, 242, 0.55);
}

/* Inhalte in Leistungen-Cards mittig */
.page-services .glow-panel .pad {
    text-align: center;
}

/* Überschriften + Text etwas sauberer */
.page-services .glow-panel h2 {
    margin: 0 0 10px;
}
.page-services .glow-panel .muted {
    margin: 0 auto 12px;
    max-width: 70ch;
}

/* Bullets: Block mittig, Text innen links -> wirkt ordentlich */
.page-services .glow-panel .bullets {
    display: inline-block;
    text-align: left;
    margin: 12px auto 0;
}

.page-services .glow-panel .bullets {
    max-width: 58ch;
}

/* =========================================================
   TRUST (bb-trust) – komplett, damit es nicht „roh“ aussieht
========================================================= */
:root {
    --bb-dark-1: #111113;
    --bb-dark-2: #18181b;

    --bb-glass-bg: rgba(255, 255, 255, 0.06);
    --bb-glass-bg-2: rgba(255, 255, 255, 0.035);
    --bb-glass-border: rgba(255, 255, 255, 0.12);

    --bb-radius: 18px;
    --bb-blur: 14px;

    --bb-shadow: 0 22px 60px rgba(0, 0, 0, 0.55);
    --bb-shadow-soft: 0 14px 34px rgba(0, 0, 0, 0.42);
}

.page-services .bb-glass {
    background: linear-gradient(
        180deg,
        var(--bb-glass-bg),
        var(--bb-glass-bg-2)
    );
    border: 1px solid var(--bb-glass-border);
    border-radius: var(--bb-radius);
    box-shadow: var(--bb-shadow-soft);
    -webkit-backdrop-filter: blur(var(--bb-blur)) saturate(140%);
    backdrop-filter: blur(var(--bb-blur)) saturate(140%);
}

.page-services .bb-trust {
    position: relative;
    overflow: hidden;
    background: linear-gradient(
        180deg,
        var(--bb-dark-2) 0%,
        var(--bb-dark-1) 68%,
        #111113 100%
    );
    padding: clamp(56px, 7vw, 110px) 0;
    color: #e8eef6;
    margin-top: 18px;
}
.page-services .bb-trust::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.55;
    background:
        radial-gradient(
            900px 420px at 50% 0%,
            rgba(224, 49, 49, 0.22),
            transparent 60%
        ),
        repeating-linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.045) 0 1px,
            transparent 1px 10px
        );
}
.page-services .bb-trust__inner {
    position: relative;
    z-index: 1;
}

.page-services .bb-trust__head {
    text-align: center;
    padding: clamp(18px, 2.6vw, 28px);
    max-width: min(980px, 100%);
    margin: 0 auto clamp(18px, 3vw, 34px);
}
.page-services .bb-trust__title {
    margin: 0 0 8px;
    font-size: clamp(26px, 3.2vw, 44px);
    line-height: 1.08;
    letter-spacing: 0.2px;
}
.page-services .bb-trust__sub {
    margin: 0 auto;
    max-width: 70ch;
    color: rgba(232, 238, 246, 0.78);
    font-size: clamp(15px, 1.6vw, 18px);
}

.page-services .bb-trust__grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: clamp(14px, 2.2vw, 22px);
    align-items: stretch;
}
.page-services .bb-trust__card {
    position: relative;
    padding: clamp(16px, 2.2vw, 22px);
    min-height: 128px;
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        border-color 0.18s ease;
}
.page-services .bb-trust__card h3 {
    margin: 0 0 6px;
    font-size: clamp(16px, 1.9vw, 20px);
}
.page-services .bb-trust__card p {
    margin: 0;
    color: rgba(232, 238, 246, 0.78);
    line-height: 1.55;
}

.page-services .bb-trust__card:nth-child(1) {
    grid-column: span 7;
}
.page-services .bb-trust__card:nth-child(2) {
    grid-column: span 5;
}
.page-services .bb-trust__card:nth-child(3) {
    grid-column: span 5;
}
.page-services .bb-trust__card:nth-child(4) {
    grid-column: span 7;
}

.page-services .bb-trust__card:hover {
    transform: translateY(-4px);
    box-shadow: var(--bb-shadow);
    border-color: rgba(255, 255, 255, 0.18);
}

.page-services .bb-pill {
    position: absolute;
    top: 14px;
    right: 14px;
    padding: 7px 12px;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.2px;
    color: #ffd3d6;
    background: rgba(224, 49, 49, 0.22);
    border: 1px solid rgba(224, 49, 49, 0.35);
}

/* =========================================================
   PROCESS (bb-process)
========================================================= */
.page-services .bb-wrap {
    width: min(88%, 1220px);
    margin: 0 auto;
}

.page-services .bb-process {
    position: relative;

    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.03),
        rgba(255, 255, 255, 0.015)
    );
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow:
        0 22px 70px rgba(0, 0, 0, 0.65),
        0 0 0 1px rgba(255, 255, 255, 0.04) inset,
        0 0 40px rgba(224, 49, 49, 0.06);
    overflow: hidden;
    padding: 72px 0 84px;
    margin: 1px auto 0;
}
.page-services .bb-process__head {
    text-align: center;
    margin: 0 auto 26px;
    max-width: 980px;
}
.page-services .bb-h2 {
    margin: 0 0 10px;
    font-size: clamp(26px, 3.2vw, 44px);
    letter-spacing: 0.2px;
    line-height: 1.1;
}
.page-services .bb-sub {
    margin: 0;
    color: rgba(232, 237, 242, 0.72);
    font-weight: 650;
    line-height: 1.45;
}

.page-services .bb-process__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
}

.page-services .bb-card {
    border-radius: 18px;
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.07),
        rgba(255, 255, 255, 0.03)
    );
    border: 1px solid rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(14px);
    box-shadow: 0 18px 60px rgba(0, 0, 0, 0.55);
    padding: 18px 18px 16px;
    overflow: hidden;
    position: relative;
    min-height: 160px;
}
.page-services .bb-card::after {
    content: "";
    position: absolute;
    inset: -1px;
    pointer-events: none;
    opacity: 0.7;
    background: radial-gradient(
        520px 220px at 10% 0%,
        rgba(224, 49, 49, 0.14),
        transparent 60%
    );
}
.page-services .bb-card__top {
    position: relative;
    z-index: 1;
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 10px;
}
.page-services .bb-step {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    color: #fff;
    background: rgba(224, 49, 49, 0.95);
    border: 1px solid rgba(224, 49, 49, 0.45);
    box-shadow: 0 14px 30px rgba(224, 49, 49, 0.18);
    flex: 0 0 auto;
}
.page-services .bb-h3 {
    margin: 0;
    font-size: 1.02rem;
    line-height: 1.2;
    letter-spacing: 0.2px;
    font-weight: 850;
}
.page-services .bb-p {
    position: relative;
    z-index: 1;
    margin: 0;
    color: rgba(232, 237, 242, 0.86);
    line-height: 1.5;
    font-weight: 600;
    font-size: 0.95rem;
}

/* =========================================================
   ABOUT (bb-about)
========================================================= */
.page-services .bb-about {
    padding: 90px 0;
    background: linear-gradient(180deg, var(--bg), var(--bg-2));
}
.page-services .bb-about__wrap {
    width: min(78%, 1080px);
    margin: 0 auto;
    margin-top: 50px;
    margin-bottom: 50px;
}

.page-services .bb-about__panel {
    display: grid;
    grid-template-columns: 0.95fr 1.05fr;
    gap: 18px;
    padding: 18px;
    border-radius: 22px;
    /* background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.06),
        rgba(255, 255, 255, 0.02)
    ); */
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 22px 70px rgba(0, 0, 0, 0.65);
    /* backdrop-filter: blur(14px); */
    overflow: hidden;
    position: relative;
}
.page-services .bb-about__panel::before {
    content: "";
    position: absolute;
    inset: -1px;
    pointer-events: none;
    background:
        radial-gradient(
            700px 260px at 12% 12%,
            rgba(224, 49, 49, 0.12),
            transparent 60%
        ),
        radial-gradient(
            900px 260px at 80% 10%,
            rgba(255, 255, 255, 0.06),
            transparent 55%
        );
    opacity: 0.9;
}
.page-services .bb-about__media {
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(0, 0, 0, 0.25);
    min-height: 320px;
}
.page-services .bb-about__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: saturate(1.05) contrast(1.05);
}
.page-services .bb-about__content {
    position: relative;
    z-index: 1;
    padding: 6px 6px 2px;
}
.page-services .bb-about__eyebrow {
    margin: 0 0 10px;
    color: rgba(232, 237, 242, 0.72);
    font-weight: 750;
    letter-spacing: 0.2px;
    font-size: 0.95rem;
}
.page-services .bb-about__title {
    margin: 0 0 10px;
    font-size: clamp(1.5rem, 2.1vw, 2.1rem);
    line-height: 1.12;
    letter-spacing: 0.2px;
    color: rgba(232, 237, 242, 0.95);
}
.page-services .bb-accent {
    color: var(--accent);
}
.page-services .bb-about__lead {
    margin: 0 0 14px;
    color: rgba(232, 237, 242, 0.86);
    line-height: 1.5;
    font-size: 1.02rem;
}
.page-services .bb-about__bullets {
    margin: 0 0 14px;
    padding: 0;
    list-style: none;
    color: rgba(232, 237, 242, 0.86);
}
.page-services .bb-about__bullets li {
    margin: 8px 0;
    padding-left: 26px;
    position: relative;
}
.page-services .bb-about__bullets li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--accent);
    font-weight: 900;
}
.page-services .bb-about__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 6px;
}
.page-services .bb-about__note {
    margin: 12px 0 0;
    color: rgba(232, 237, 242, 0.62);
    font-size: 0.92rem;
}

/* Buttons für bb */
.page-services .bb-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 14px;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 850;
    letter-spacing: 0.2px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    color: rgba(232, 237, 242, 0.95);
    background: rgba(255, 255, 255, 0.05);
}
.page-services .bb-btn--primary {
    background: var(--accent);
    border-color: rgba(224, 49, 49, 0.65);
    color: #fff;
}
.page-services .bb-btn--ghost {
    background: rgba(255, 255, 255, 0.06);
}

/* =========================================================
   CTA „Projekt im Kopf“ – clean + groß + Buttons unten
========================================================= */

.cta-bg {
    --cta-img: url("../img/abriss2.jpg");

    position: relative;
    padding: clamp(110px, 12vh, 170px) 0; /* HÖHE (oben/unten) */
    overflow: hidden;
    background: none !important;
}

/* wenn section-lines drauf ist: Streifen deaktivieren */
.cta-bg.section-lines::before,
.cta-bg.section-lines::after {
    content: none !important;
}

/* Hintergrundbild + dunkle Overlays (ohne Rot) */
.cta-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;

    background-image:
        radial-gradient(
            900px 520px at 50% 35%,
            rgba(255, 255, 255, 0.06),
            transparent 60%
        ),
        linear-gradient(180deg, rgba(7, 10, 14, 0.72), rgba(7, 10, 14, 0.92)),
        var(--cta-img);

    background-size: cover;
    background-position: center;
    filter: saturate(1.05) contrast(1.06);
    transform: scale(1.03);
}

/* leichter Rahmen/Vignette */
.cta-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.06),
        inset 0 -140px 180px rgba(0, 0, 0, 0.35);
}

.cta-bg .wrap {
    position: relative;
    z-index: 1;
}

/* Glas-Card */
.cta-wide {
    max-width: 1080px;
    margin: 0 auto;
    border-radius: 28px;

    background: rgba(10, 14, 20, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);

    box-shadow:
        0 26px 85px rgba(0, 0, 0, 0.68),
        0 0 0 1px rgba(255, 255, 255, 0.06) inset;
}

/* Innenlayout: Text oben, Buttons unten */
.cta-pad {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    padding: clamp(28px, 3.2vw, 44px); /* INNEN mehr Luft */
    text-align: center;
}

.cta-copy {
    margin: 0 auto;
    max-width: 70ch;
}

.cta-copy h3 {
    margin: 0 0 10px;
    font-size: clamp(26px, 2.8vw, 36px);
    line-height: 1.15;
}

.cta-copy .muted {
    margin: 0 auto;
    font-size: clamp(14px, 1.2vw, 16px);
}

/* Buttons unter Text */
.cta-row {
    display: flex;
    gap: 12px;
    justify-content: left;

    flex-wrap: wrap;
    margin-top: 4px;
}

.cta-bg .btn {
    padding: 12px 16px;
    border-radius: 12px;
}

/* Mobile */
@media (max-width: 720px) {
    .cta-bg {
        padding: 80px 0;
    }
    .cta-wide {
        max-width: 92%;
    }
}

/* =========================================================
   RESPONSIVE
========================================================= */
@media (max-width: 1100px) {
    .page-services .grid-2 {
        grid-template-columns: 1fr;
    }
    .page-services .bb-process__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    :root {
        --bar: min(92%, 760px);
    }

    /* Subnav bleibt sticky, aber enger */
    .page-services .page-subnav {
        width: var(--bar);
        top: calc(var(--ui-top) + var(--nav-h) + 8px);
    }

    .page-services .bb-about__wrap {
        width: min(92%, 760px);
    }
    .page-services .bb-about__panel {
        grid-template-columns: 1fr;
    }
    .page-services .bb-about__media {
        min-height: 240px;
    }

    .page-services .bb-process {
        padding: 54px 0 60px;
    }
}

@media (max-width: 640px) {
    .page-services .bb-process__grid {
        grid-template-columns: 1fr;
    }
    .page-services .cta-wide .cta-pad {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* =========================================
   FOOTER – global (für alle Seiten)
========================================= */

.footer {
    padding-top: 26px;
    padding-bottom: 0;
    color: rgba(232, 237, 242, 0.88);
}

.footer--glass {
    background: #111113;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 -18px 60px rgba(0, 0, 0, 0.55);
}

.footer h3,
.footer h4 {
    margin: 0 0 10px;
    font-weight: 850;
    letter-spacing: 0.2px;
}

.footer a {
    color: rgba(232, 237, 242, 0.82);
    text-decoration: none;
}
.footer a:hover {
    color: rgba(255, 255, 255, 0.95);
}

.footer ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.footer .foot-main {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1fr;
    gap: 18px;
    align-items: start;
    padding: 18px 0 22px;
}

.footer .foot-paragraph {
    margin: 10px 0 14px;
    color: rgba(232, 237, 242, 0.7);
    line-height: 1.55;
}

.footer .foot-contact li,
.footer .foot-col li {
    margin: 8px 0;
}

.footer .social {
    display: flex;
    gap: 10px;
    margin-top: 12px;
}

.footer .badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 34px;
    min-width: 34px;
    padding: 0 10px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.footer .foot-divider {
    height: 1px;
    background: rgba(255, 255, 255, 0.1);
    margin: 0 auto;
}

.footer .foot-legal {
    padding: 14px 0 16px;
    color: rgba(232, 237, 242, 0.62);
    font-size: 0.92rem;
}

.footer .foot-legal-inner {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}

.footer .legal-links {
    display: flex;
    gap: 12px;
}

/* Responsive */
@media (max-width: 980px) {
    .footer .foot-main {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 640px) {
    .footer .foot-main {
        grid-template-columns: 1fr;
        padding: 16px 0 14px;
    }

    /* Nav-Spalten auf Mobile ausblenden – erreichbar über Hauptmenü */
    .footer .foot-col:not(.foot-brandtext) {
        display: none;
    }

    /* Brand-Bereich kompakter */
    .footer h3.brandline {
        font-size: 1.15rem;
    }
    .footer .foot-paragraph {
        margin: 5px 0 8px;
        font-size: 0.85rem;
        line-height: 1.5;
    }
    .footer .foot-contact li {
        margin: 5px 0;
        font-size: 0.88rem;
    }

    /* Legal-Leiste kompakter + zentriert gestapelt */
    .footer .foot-legal {
        padding: 10px 0 12px;
        font-size: 0.8rem;
    }
    .footer .foot-legal-inner {
        flex-direction: column;
        align-items: center;
        gap: 5px;
        text-align: center;
    }
    .footer .legal-links {
        gap: 10px;
    }
}

/* =========================================================
   REFERENZEN – gekapselt (bb-*)
   Ziel: sauberer Dark/Glass-Look + Grid + CSS-Lightbox
========================================================= */

:root {
    --bb-text: rgba(232, 237, 242, 0.92);
    --bb-muted: rgba(232, 237, 242, 0.7);
    --bb-line: rgba(255, 255, 255, 0.1);
    --bb-glass: rgba(14, 18, 24, 0.62);
    --bb-glass-2: rgba(14, 18, 24, 0.78);
    --bb-shadow: 0 26px 85px rgba(0, 0, 0, 0.58);
    --bb-radius: 22px;
    --bb-radius-sm: 14px;
    --bb-accent: rgba(224, 49, 49, 0.95);
}

/* Grundlayout – verhindert Scroll-Bugs durch alte Regeln */
.page-referenzen {
    min-height: 100%;
    overflow-x: hidden;
    color: var(--bb-text);
}

/* Section spacing */
.bb-ref {
    padding: 18px 0 40px;
}

/* Head */
.bb-ref__head {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 16px;
    align-items: start;
    padding: 18px;
    border-radius: var(--bb-radius);
    border: 1px solid var(--bb-line);
    box-shadow: var(--bb-shadow);
    position: relative;
    overflow: hidden;
}

/* dezente Lichtkante wie bei hero-panel */
.bb-ref__head::before {
    content: "";
    position: absolute;
    inset: -1px;
    background:
        radial-gradient(
            650px 240px at 12% 10%,
            rgba(224, 49, 49, 0.16),
            transparent 60%
        ),
        radial-gradient(
            520px 240px at 88% 22%,
            rgba(255, 255, 255, 0.06),
            transparent 60%
        );
    pointer-events: none;
    opacity: 0.85;
}
.bb-ref__head > * {
    position: relative;
    z-index: 1;
}

/* Text helper */
.bb-eyebrow {
    margin: 0 0 8px;
    font-weight: 700;
    letter-spacing: 0.3px;
    text-transform: none;
    color: rgba(232, 237, 242, 0.78);
    font-size: 0.95rem;
}

.bb-h1 {
    margin: 0 0 8px;
    font-size: clamp(1.6rem, 2.8vw, 2.2rem);
    line-height: 1.08;
    letter-spacing: -0.4px;
}

.bb-h2 {
    margin: 0;
    font-size: 1.15rem;
    line-height: 1.2;
    letter-spacing: -0.2px;
}

.bb-muted {
    margin: 0;
    color: var(--bb-muted);
    line-height: 1.55;
}

/* Chips */
.bb-ref__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-start;
    align-content: start;
}

.bb-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border-radius: 999px;
    border: 1px solid var(--bb-line);
    background: rgba(255, 255, 255, 0.04);
    color: rgba(232, 237, 242, 0.86);
    text-decoration: none;
    font-weight: 700;
    font-size: 0.92rem;
    white-space: nowrap;
}

.bb-chip:hover {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(255, 255, 255, 0.16);
}

.bb-chip--accent {
    border-color: rgba(224, 49, 49, 0.3);
    background: rgba(224, 49, 49, 0.1);
}

/* GRID */
.bb-ref__grid {
    margin-top: 18px;
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 16px;
}

/* Karten */
.bb-ref__card {
    grid-column: span 12;
    padding: 16px;
    border-radius: var(--bb-radius);
    border: 1px solid var(--bb-line);
    box-shadow: var(--bb-shadow);
    position: relative;
    overflow: hidden;
}

.bb-ref__card::before {
    content: "";
    position: absolute;
    inset: -1px;
    background:
        radial-gradient(
            520px 220px at 10% 10%,
            rgba(224, 49, 49, 0.12),
            transparent 60%
        ),
        radial-gradient(
            520px 220px at 90% 20%,
            rgba(255, 255, 255, 0.05),
            transparent 60%
        );
    pointer-events: none;
    opacity: 0.75;
}

.bb-ref__card > * {
    position: relative;
    z-index: 1;
}

.bb-ref__cardhead {
    display: grid;
    gap: 8px;
    margin-bottom: 10px;
}

/* Meta row */
.bb-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    color: rgba(232, 237, 242, 0.7);
    font-weight: 650;
    font-size: 0.92rem;
}

.bb-dot {
    opacity: 0.55;
}

/* Bullets */
.bb-bullets {
    margin: 12px 0 0;
    padding-left: 18px;
    color: rgba(232, 237, 242, 0.78);
    line-height: 1.55;
}
.bb-bullets li {
    margin: 6px 0;
}

/* Media grid */
.bb-ref__media {
    margin-top: 14px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.bb-ref__media--mini {
    grid-template-columns: repeat(3, 1fr);
}

.bb-img {
    display: block;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.03);
    transform: translateZ(0);
}

.bb-img img {
    width: 100%;
    height: 160px;
    object-fit: cover;
    display: block;
    transition:
        transform 220ms ease,
        filter 220ms ease;
    filter: saturate(1.05) contrast(1.03);
}

.bb-img:hover img {
    transform: scale(1.03);
}

/* Actions */
.bb-ref__actions {
    margin-top: 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* Buttons (falls nicht in style.css vorhanden) */
.bb-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 44px;
    padding: 0 14px;
    border-radius: 14px;
    text-decoration: none;
    font-weight: 800;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.04);
    color: rgba(232, 237, 242, 0.88);
}

.bb-btn:hover {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(255, 255, 255, 0.16);
}

.bb-btn--primary {
    background: rgba(224, 49, 49, 0.14);
    border-color: rgba(224, 49, 49, 0.32);
}

.bb-btn--primary:hover {
    background: rgba(224, 49, 49, 0.18);
}

/* bb-glass helper (falls nicht global) */
.bb-glass {
    background: var(--bb-glass);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* Half cards (Brandschottung / Kernbohrung) */
.bb-ref__card--half {
    grid-column: span 6;
}

/* Responsive */
@media (max-width: 980px) {
    .bb-ref__head {
        grid-template-columns: 1fr;
    }

    .bb-ref__card--half {
        grid-column: span 12;
    }

    .bb-ref__media img {
        height: 150px;
    }
}

@media (max-width: 640px) {
    .bb-ref__media {
        grid-template-columns: 1fr;
    }
    .bb-img img {
        height: 200px;
    }
}

/* =========================================================
   CSS Lightbox via :target
========================================================= */

.bb-lightbox {
    position: fixed;
    inset: 0;
    display: none;
    z-index: 9999;
}

.bb-lightbox:target {
    display: block;
}

.bb-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.72);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}

.bb-lightbox__figure {
    position: relative;
    max-width: min(980px, 92vw);
    max-height: 86vh;
    margin: 7vh auto 0;
    background: var(--bb-glass-2);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--bb-radius);
    box-shadow: 0 40px 120px rgba(0, 0, 0, 0.75);
    overflow: hidden;
}

.bb-lightbox__figure img {
    width: 100%;
    height: auto;
    max-height: 72vh;
    object-fit: contain;
    display: block;
    background: rgba(0, 0, 0, 0.25);
}

.bb-lightbox__figure figcaption {
    padding: 12px 14px 14px;
    color: rgba(232, 237, 242, 0.78);
    font-weight: 650;
}

.bb-lightbox__close {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-size: 26px;
    line-height: 1;
    color: rgba(255, 255, 255, 0.88);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.bb-lightbox__close:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.16);
}

/* =========================================================
   Kontakt – Layout & Cards wie Leistungen
========================================================= */

/* Platz für fixed Nav – page-hero regelt das selbst */
.page-contact .page-main {
    padding-top: 0;
}

/* Kopfbereich: Karte soll volle Wrap-Breite nutzen */
.page-contact .page-head {
    padding: clamp(28px, 5vh, 56px) 18px;
}

.page-contact .page-head-card {
    width: 100%;
    max-width: none; /* <- macht die Karte "wesentlich länger" */
    position: relative;
}

/* Optional: wenn dich die Strich-Overlays auf Kontakt nerven */
.page-contact .page-head.section-lines::before,
.page-contact .page-head.section-lines::after,
.page-contact [aria-label="Kontaktbereich"].section-lines::before,
.page-contact [aria-label="Kontaktbereich"].section-lines::after {
    content: none !important;
}

/* Kontakt-Grid: 2 Spalten, gleiche Höhe */
.page-contact .contact-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 18px;
    align-items: stretch; /* gleiche Höhe */
}

/* Cards: Layout/Formatierung, Styles kommen vom glow-panel */
.page-contact .contact-card {
    height: 100%;
    position: relative;
}

.page-contact .contact-card > * {
    position: relative;
    z-index: 1;
}

/* Innenlayout: Padding für bessere Lesbarkeit */
.page-contact .contact-card .pad {
    padding: clamp(24px, 3vw, 32px);
    display: flex;
    flex-direction: column;
    height: 100%;
    gap: 8px;
}

/* Form Layout */
.page-contact .contact-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-top: 10px;
    flex: 1;
}

.page-contact .contact-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.page-contact .contact-field label {
    display: block;
    margin: 0 0 6px;
    font-size: 13px;
    color: var(--muted);
}

/* Inputs einheitlich */
.page-contact .contact-field input,
.page-contact .contact-field textarea {
    width: 100%;
    color: var(--text);
    background: rgba(16, 16, 16, 0.42);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 12px 12px;
}

.page-contact .contact-field input {
    height: 44px; /* gleiche Höhe */
}

.page-contact .contact-field textarea {
    min-height: 160px;
    resize: vertical;
}

.page-contact .contact-field input:focus,
.page-contact .contact-field textarea:focus {
    outline: 2px solid rgba(224, 49, 49, 0.55);
    outline-offset: 2px;
}

/* Buttons/Actions */
.page-contact .contact-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 6px;
}

.page-contact .contact-note {
    margin-top: auto; /* schiebt Hinweis nach unten -> wirkt "geordnet" */
    padding-top: 12px;
}

/* Rechte Seite: Kontakt-Items wie “kleine Cards” */
.page-contact .contact-info {
    display: grid;
    gap: 12px;
    margin: 12px 0 0;
}

.page-contact .contact-item {
    display: flex;
    align-items: center;
    gap: 12px;

    padding: 14px 14px;
    border-radius: 18px;
    /* subtiler, transparenter Look wie auf der Leistungen-Seite */
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(6px);

    transition:
        transform 0.18s ease,
        border-color 0.18s ease;
}

.page-contact .contact-item:hover {
    transform: translateY(-1px);
    border-color: rgba(255, 255, 255, 0.18);
}

.page-contact .contact-ico {
    width: 40px;
    height: 40px;
    border-radius: 14px;

    display: grid;
    place-items: center;

    background: rgba(224, 49, 49, 0.12);
    border: 1px solid rgba(224, 49, 49, 0.22);
    flex: 0 0 auto;
    font-weight: 700;
}

.page-contact .contact-divider {
    height: 18px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    margin: 16px 0 10px;
}

/* Mehr Luft zum Footer */
.page-contact .page-main {
    padding-bottom: clamp(54px, 7vh, 90px);
}

.contact-link {
    color: rgb(4, 194, 4);
}

/* Mobile */
@media (max-width: 900px) {
    .page-contact .contact-grid {
        grid-template-columns: 1fr;
    }
    .page-contact .contact-row {
        grid-template-columns: 1fr;
    }
}

/* Kontakt – Kopfbereich mehr Luft */
.page-contact .page-head {
    padding: clamp(34px, 6vh, 74px) 0 clamp(18px, 3vh, 28px);
}

.page-contact .page-head-card {
    padding: clamp(18px, 2.2vw, 28px) clamp(18px, 2.2vw, 32px);
}

/* Überschrift/Abstände sauberer */
.page-contact .page-head-card .eyebrow {
    margin: 0 0 10px;
}

.page-contact .page-head-card h1 {
    margin: 0 0 10px;
    line-height: 1.05;
}

.page-contact .page-head-card .subline {
    margin: 0 0 10px;
}

.page-contact .page-head-card .muted {
    margin: 0;
}

/* =========================================================
   Referenzen Auto-Slider (Glass-Container + volle Breite)
========================================================= */

/* breiter als dein Standard-wrap, aber nicht full-bleed */
.wrap-wide {
    max-width: min(1280px, calc(100% - 40px));
}

.ref-auto {
    padding: 70px 0;
}
.ref-auto__head {
    margin-bottom: 14px;
}
.ref-auto__head h2 {
    margin: 0 0 6px;
}
.ref-auto__head .muted {
    margin: 0;
}

/* heller/glasiger Rahmencontainer */
.ref-auto__shell {
    position: relative;
    border-radius: 22px;
    padding: 14px 14px 44px;

    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    box-shadow: 0 18px 65px rgba(0, 0, 0, 0.55);
}

/* viewport + track */
.ref-auto__viewport {
    overflow: hidden;
    border-radius: 18px;
}

.ref-auto__track {
    display: flex;
    transition: transform 520ms ease;
    will-change: transform;
}

/* Slide: 100% Breite */
.ref-auto__slide {
    min-width: 100%;
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 16px;
    align-items: stretch;

    padding: 12px;
}

/* Bildbereich */
.ref-auto__img {
    border-radius: 16px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
    min-height: 320px;
}
.ref-auto__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.01);
}

/* Text-Card im Slide */
.ref-auto__body {
    border-radius: 16px;
    padding: 16px 16px 14px;

    background: rgba(10, 14, 20, 0.55);
    border: 1px solid rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    box-shadow: 0 14px 46px rgba(0, 0, 0, 0.45);
}
.ref-auto__body h3 {
    margin: 0 0 10px;
    font-size: 18px;
}
.ref-auto__body ul {
    margin: 0;
    padding-left: 18px;
}
.ref-auto__body li {
    margin: 7px 0;
    color: rgba(232, 237, 242, 0.88);
}

/* Pfeile */
.ref-auto__btn {
    position: absolute;
    top: 50%;
    transform: translateY(-55%);
    width: 44px;
    height: 44px;
    border-radius: 14px;

    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(10, 14, 20, 0.55);
    color: rgba(255, 255, 255, 0.9);
    cursor: pointer;

    display: grid;
    place-items: center;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.55);
}
.ref-auto__btn:hover {
    background: rgba(10, 14, 20, 0.72);
}
.ref-auto__btn--prev {
    left: 12px;
}
.ref-auto__btn--next {
    right: 12px;
}

/* Dots */
.ref-auto__dots {
    position: absolute;
    left: 50%;
    bottom: 14px;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
}
.ref-auto__dot {
    width: 9px;
    height: 9px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.08);
    cursor: pointer;
}
.ref-auto__dot.is-active {
    background: rgba(255, 255, 255, 0.35);
}

/* Mobile */
@media (max-width: 860px) {
    .ref-auto__slide {
        grid-template-columns: 1fr;
    }
    .ref-auto__img {
        min-height: 240px;
    }
    .ref-auto__btn {
        top: 40%;
    }
}
/* 90% Breite, bleibt zentriert */
.wrap-wide {
    width: 90%;
    max-width: 1400px; /* optional, damit es auf ultra-wide nicht zu riesig wird */
    margin-left: auto;
    margin-right: auto;
}

/* =========================================================
   Leistungen: Cards wie Startseite (Glas/Glow)
========================================================= */

/* Grundform bleibt */
.page-services .card {
    border-radius: 22px;
    overflow: hidden;
}

/* Glas-Look nur auf Cards, die glow-panel haben */
/* ===== FIX: Leistungen-Cards sollen wie Head-Card transparent sein ===== */
.page-services .section.section-dark[aria-label="Leistungen"] .glow-panel,
.page-services .card.glow-panel {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

/* ===== FIX: optional – Grid-Linien auf Leistungen-Seite ausblenden ===== */
body.page-services::before {
    opacity: 0; /* oder: display:none; */
}

/* ===== Glow-Panel: steuerbare Glow-Parameter ===== */
.glow-panel {
    --glow-red: rgba(224, 49, 49, 0.16);
    --glow-red-x: 12%;
    --glow-red-y: 10%;
    --glow-red-w: 650px;
    --glow-red-h: 220px;

    --glow-white: rgba(255, 255, 255, 0.06);
    --glow-white-x: 88%;
    --glow-white-y: 22%;
    --glow-white-w: 520px;
    --glow-white-h: 240px;
}

.glow-panel::before {
    background:
        radial-gradient(
            var(--glow-red-w) var(--glow-red-h) at var(--glow-red-x)
                var(--glow-red-y),
            var(--glow-red),
            transparent 60%
        ),
        radial-gradient(
            var(--glow-white-w) var(--glow-white-h) at var(--glow-white-x)
                var(--glow-white-y),
            var(--glow-white),
            transparent 60%
        );
}

/* ===== Pro Card Glow anpassen ===== */

/* weniger Rot */
#renovierung {
    --glow-red: rgba(224, 49, 49, 0.08);
}

/* Rot nach rechts schieben */
#rueckbau {
    --glow-red-x: 80%;
    --glow-red-y: 12%;
}

/* Rot komplett aus */
#entruempelung {
    --glow-red: transparent;
}

#renovierung {
    --glow-red-x: 12%;
    --glow-red-y: 92%;
}

/* =========================================================
   FIX A: Home-Hintergrund wie Leistungen abdunkeln
   - gleiche Dimming-Logik
   - Grid-Linien auf Home aus (damit identisch zu Leistungen)
========================================================= */

/* 1) Grid-Linien auf Home ebenfalls deaktivieren */
body.home::before {
    opacity: 0;
}

/* Hero-Overlay duplicate removed – see definition above */

/* =========================
   CONTACT GRID
========================= */

.page-contact .contact-grid {
    display: grid;
    grid-template-columns: 1.35fr 0.85fr;
    gap: 18px;
    align-items: start;
}

.page-contact .contact-card .pad {
    padding: 18px;
}

/* Responsive */
@media (max-width: 980px) {
    .page-contact .contact-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================
   FORM STYLES (glass)
========================= */

.page-contact .contact-form {
    margin-top: 12px;
}

.page-contact .contact-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

@media (max-width: 720px) {
    .page-contact .contact-row {
        grid-template-columns: 1fr;
    }
}

.page-contact .contact-field label {
    display: block;
    font-size: 0.92rem;
    color: var(--muted);
    margin: 0 0 6px;
}

.page-contact .contact-field input,
.page-contact .contact-field textarea {
    width: 100%;
    color: var(--text);
    background: rgba(16, 16, 16, 0.28);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 14px;
    padding: 11px 12px;
    outline: none;
}

.page-contact .contact-field textarea {
    min-height: 140px;
    resize: vertical;
}

.page-contact .contact-field input:focus,
.page-contact .contact-field textarea:focus {
    border-color: rgba(224, 49, 49, 0.55);
    box-shadow: 0 0 0 4px rgba(224, 49, 49, 0.14);
}

/* Buttons-Reihe etwas sauberer */
.page-contact .contact-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 12px;
}

/* =========================
   RIGHT SIDE – Kontakt Items
========================= */

.page-contact .contact-info {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.page-contact .contact-item {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 12px;
    align-items: center;
    padding: 12px 12px;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(16, 16, 16, 0.22);
    text-decoration: none;
    color: var(--text);
}

.page-contact .contact-item:hover {
    border-color: rgba(255, 255, 255, 0.16);
    background: rgba(16, 16, 16, 0.28);
}

.page-contact .contact-ico {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(224, 49, 49, 0.12);
    border: 1px solid rgba(224, 49, 49, 0.22);
    font-weight: 700;
}

/* Divider */
.page-contact .contact-divider {
    height: 1px;
    margin: 16px 0;
    background: rgba(255, 255, 255, 0.1);
}

/* =========================================================
   Kontakt-Seite – Background + Layout polish
   (ans ENDE der style.css)
========================================================= */

body.page-contact {
    /* macht den Wrap auf Kontakt etwas breiter, ohne alles global zu ändern */

    /* Hintergrundbild (Pfad relativ zu src/css/style.css -> src/img/...) */
    --page-bg: url("../img/dark-grunge-texture.jpg");

    /* dunkles, ruhiges Background ohne „Streifen“ */
    background-image:
        radial-gradient(
            1100px 520px at 25% 20%,
            rgba(255, 255, 255, 0.06),
            transparent 60%
        ),
        linear-gradient(180deg, rgba(7, 10, 14, 0.84), rgba(7, 10, 14, 0.92)),
        var(--page-bg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed; /* Desktop nice */
}

/* Mobile: fixed kann ruckeln */
@media (max-width: 900px) {
    body.page-contact {
        background-attachment: scroll;
    }
}

/* Auf Kontaktseite: section-lines Streifen komplett aus */
body.page-contact .section-lines::before,
body.page-contact .section-lines::after {
    content: none !important;
}

/* Kopfbereich: Abstand zum sticky Nav (verhindert Überlappung) */
body.page-contact .page-head {
    padding-top: calc(var(--nav-h, 74px) + 22px);
    padding-bottom: 18px;
}

/* Head-Card wie „Hero-Glass“ */
body.page-contact .page-head-card {
    max-width: 980px;
    margin: 0 auto;

    border: 1px solid rgba(255, 255, 255, 0.12);

    border-radius: 26px;
    box-shadow:
        0 22px 70px rgba(0, 0, 0, 0.62),
        0 0 0 1px rgba(255, 255, 255, 0.05) inset;
}

/* Kontakt Grid */
body.page-contact .contact-grid {
    display: grid;
    grid-template-columns: 1.25fr 0.95fr;
    gap: clamp(14px, 2vw, 22px);
    align-items: start;
}

@media (max-width: 980px) {
    body.page-contact .contact-grid {
        grid-template-columns: 1fr;
    }
}

/* Kontakt Cards: Glow + echter Glass-Hintergrund */
body.page-contact .contact-card {
    border-radius: 26px;

    box-shadow:
        0 20px 60px rgba(0, 0, 0, 0.6),
        0 0 0 1px rgba(255, 255, 255, 0.05) inset;
}

/* etwas mehr Luft innen */
body.page-contact .contact-card .pad {
    padding: clamp(18px, 2.2vw, 26px);
}

/* Formular Layout */
body.page-contact .contact-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 12px;
}

@media (max-width: 720px) {
    body.page-contact .contact-row {
        grid-template-columns: 1fr;
    }
}

body.page-contact .contact-field label {
    display: block;
    font-weight: 600;
    font-size: 13px;
    color: rgba(232, 237, 242, 0.82);
    margin: 10px 0 6px;
}

/* Inputs sauber + sichtbar */
body.page-contact .contact-field input,
body.page-contact .contact-field textarea {
    width: 100%;
    color: var(--text, #e8edf2);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 14px;
    padding: 12px 12px;
    outline: none;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25) inset;
}

body.page-contact .contact-field input {
    height: 46px;
}

body.page-contact .contact-field textarea {
    min-height: 160px;
    resize: vertical;
}

body.page-contact .contact-field input::placeholder,
body.page-contact .contact-field textarea::placeholder {
    color: rgba(232, 237, 242, 0.45);
}

/* Focus-State (wichtig fürs „wertig“ Feeling) */
body.page-contact .contact-field input:focus,
body.page-contact .contact-field textarea:focus {
    border-color: rgba(224, 49, 49, 0.55);
    box-shadow:
        0 0 0 3px rgba(224, 49, 49, 0.18),
        0 0 0 1px rgba(0, 0, 0, 0.25) inset;
}

/* Actions */
body.page-contact .contact-actions {
    display: flex;
    gap: 12px;
    margin-top: 14px;
    flex-wrap: wrap;
    align-items: center;
}

/* Direktkontakt Items schöner */
body.page-contact .contact-info {
    display: grid;
    gap: 12px;
    margin-top: 14px;
}

body.page-contact .contact-item {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 12px 12px;
    border-radius: 16px;
    text-decoration: none;
    color: var(--text, #e8edf2);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition:
        transform 0.16s ease,
        background 0.16s ease,
        border-color 0.16s ease;
}

body.page-contact .contact-item:hover {
    transform: translateY(-2px);
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.14);
}

body.page-contact .contact-ico {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: rgba(224, 49, 49, 0.12);
    border: 1px solid rgba(224, 49, 49, 0.22);
    font-weight: 800;
}

/* Divider + Kleinkram */
body.page-contact .contact-divider {
    height: 1px;
    background: rgba(255, 255, 255, 0.1);
    margin: 18px 0 14px;
}

body.page-contact .contact-mini {
    margin-top: 12px;
}

.contact-fix {
    padding: 5px 25px 5px 25px;
}

.hero {
    position: relative;
}

.hero-mark {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0; /* hinter den Cards, aber über dem Background */
}

.hero-roof,
.hero-text {
    position: absolute;
    opacity: 0.85;
    transform: translateZ(0);
    filter: drop-shadow(0 22px 55px rgba(0, 0, 0, 0.65))
        drop-shadow(0 0 28px rgba(224, 49, 49, 0.22)); /* leichter Rot-Glow */
}

/* Beispiel-Positionen – passt du nach Gefühl an */
.hero-roof {
    width: min(70vw, 980px);
    left: 50%;
    top: 18%;
    transform: translateX(-50%);
}

.hero-text {
    width: min(85vw, 1200px);
    left: 50%;
    bottom: 8%;
    transform: translateX(-50%);
    opacity: 0.55;
}

/* Schatten für die beiden Logo-Overlays – hebt sie klar vom Hintergrund ab */

/* Optional: ganz leichte "Schwebe"-Animation – macht es lebendiger (kannst du auch weglassen) */
.hero::before,
.hero::after {
    animation: logoFloat 20s ease-in-out infinite alternate;
}

@keyframes logoFloat {
    from {
        transform: translateY(0);
    }
    to {
        transform: translateY(-10px);
    }
}

/* 1. Subtilere Glows auf Kontakt-Seite – Rot & Weiß dämpfen */
body.page-contact .glow-panel::before {
    opacity: 0.45; /* stark reduziert (war ~0.85) */
    background:
        radial-gradient(
            650px 220px at 12% 10%,
            rgba(224, 49, 49, 0.08),
            /* viel weniger Rot */ transparent 60%
        ),
        radial-gradient(
            520px 240px at 88% 22%,
            rgba(255, 255, 255, 0.04),
            /* weniger Weiß */ transparent 60%
        );
}

/* =========================================================
   HOME – Scrollbare Sektionen (neu)
========================================================= */

/* Platz für fixed Nav auf Home */
body.home .hero {
    /* Hero bleibt 100vh – scrollt danach weiter */
    height: 100vh;
    min-height: 600px;
}

/* Scroll-Hint Pfeil am Hero-Boden */
.hero-scroll-hint {
    position: absolute;
    bottom: calc(var(--strip-h) + 24px);
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    color: rgba(232, 237, 242, 0.6);
    font-size: 0.8rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    pointer-events: none;
    animation: scrollBounce 2.2s ease-in-out infinite;
}
.hero-scroll-hint svg {
    width: 22px;
    height: 22px;
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
@keyframes scrollBounce {
    0%,
    100% {
        transform: translateX(-50%) translateY(0);
        opacity: 0.6;
    }
    50% {
        transform: translateX(-50%) translateY(8px);
        opacity: 1;
    }
}

/* Basis für alle Home-Sektionen – Schatten erzeugen Tiefe */
.home-section {
    padding: 80px 0;
    position: relative;
    z-index: 1;
}
/* Kein dünner Trennstrich mehr – Farbwechsel + Schatten reichen */
.home-section + .home-section {
    border-top: none;
}

/* Übergang Hero → Content: neutral, kein blau-tint */
.home-content-start {
    background: var(--bg-2);
}

/* Sektions-Kopf */
.section-head {
    text-align: center;
    margin-bottom: 48px;
}
.section-head .eyebrow {
    font-size: 0.82rem;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 10px;
    display: block;
}
.section-head h2 {
    font-size: clamp(1.6rem, 2.4vw, 2.2rem);
    line-height: 1.12;
    color: var(--text);
    margin: 0 0 12px;
}
.section-head p {
    color: var(--muted);
    font-size: 1.02rem;
    max-width: 560px;
    margin: 0 auto;
    line-height: 1.55;
}

/* ── Services Grid (4 Kacheln) ─────────────────── */
.services-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 32px;
}
.service-card {
    padding: 24px 20px;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.11);
    background: rgba(20, 20, 20, 0.75);
    box-shadow:
        0 16px 48px rgba(0, 0, 0, 0.55),
        0 4px 14px rgba(0, 0, 0, 0.38),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition:
        transform 0.2s ease,
        border-color 0.2s ease;
    cursor: default;
}
.service-card:hover {
    transform: translateY(-4px);
    border-color: rgba(201, 162, 39, 0.35);
    box-shadow:
        0 24px 64px rgba(0, 0, 0, 0.65),
        0 6px 20px rgba(0, 0, 0, 0.45),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
.service-card__icon {
    font-size: 2rem;
    margin-bottom: 14px;
    display: block;
    line-height: 1;
}
.service-card h3 {
    font-size: 1rem;
    font-weight: 800;
    color: var(--text);
    margin: 0 0 8px;
}
.service-card p {
    font-size: 0.9rem;
    color: var(--muted);
    line-height: 1.5;
    margin: 0;
}
.services-link-row {
    text-align: center;
    margin-top: 8px;
}

/* ── Spezialisierung (2 Cards) ──────────────────── */
.spec-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}
.spec-card {
    padding: 32px 28px;
    border-radius: 20px;
    border: 1px solid rgba(255, 255, 255, 0.11);
    background: rgba(20, 20, 20, 0.75);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
    box-shadow:
        0 18px 52px rgba(0, 0, 0, 0.58),
        0 5px 16px rgba(0, 0, 0, 0.4),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.spec-card:hover {
    transform: translateY(-3px);
    box-shadow:
        0 26px 68px rgba(0, 0, 0, 0.68),
        0 7px 22px rgba(0, 0, 0, 0.48),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
.spec-card.highlight {
    border-color: rgba(201, 162, 39, 0.42);
    background: rgba(201, 162, 39, 0.07);
}
.spec-card .spec-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 850;
    letter-spacing: 1px;
    text-transform: uppercase;
    background: var(--accent-2);
    color: var(--accent);
    border: 1px solid rgba(201, 162, 39, 0.3);
    margin-bottom: 16px;
}
.spec-card h3 {
    font-size: 1.3rem;
    font-weight: 850;
    color: var(--text);
    margin: 0 0 12px;
    line-height: 1.15;
}
.spec-card p {
    color: var(--muted);
    font-size: 0.96rem;
    line-height: 1.55;
    margin: 0 0 16px;
}
.spec-card ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.spec-card ul li {
    padding: 7px 0 7px 22px;
    position: relative;
    color: rgba(232, 237, 242, 0.86);
    font-size: 0.92rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.spec-card ul li:last-child {
    border-bottom: none;
}
.spec-card ul li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--accent);
    font-weight: 900;
}

/* ── Warum Beiser Bau (4 USP Cards) ─────────────── */
.why-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.why-card {
    padding: 26px 22px;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.09);
    background: rgba(20, 20, 20, 0.65);
    box-shadow:
        0 14px 44px rgba(0, 0, 0, 0.52),
        0 4px 12px rgba(0, 0, 0, 0.36),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    text-align: center;
    transition:
        border-color 0.2s ease,
        transform 0.2s ease;
}
.why-card:hover {
    border-color: rgba(201, 162, 39, 0.28);
    transform: translateY(-3px);
    box-shadow:
        0 22px 58px rgba(0, 0, 0, 0.62),
        0 6px 18px rgba(0, 0, 0, 0.44),
        inset 0 1px 0 rgba(255, 255, 255, 0.07);
}
.why-card__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--accent-2);
    border: 1.5px solid rgba(201, 162, 39, 0.35);
    color: var(--accent);
    font-weight: 900;
    font-size: 1.1rem;
    margin: 0 auto 14px;
}
.why-card h3 {
    font-size: 0.97rem;
    font-weight: 800;
    color: var(--text);
    margin: 0 0 8px;
}
.why-card p {
    font-size: 0.88rem;
    color: var(--muted);
    line-height: 1.5;
    margin: 0;
}

/* ── CTA Section ────────────────────────────────── */
.home-cta-section {
    padding: 80px 0 100px;
}
.cta-main-card {
    padding: 52px 48px;
    border-radius: 24px;
    border: 1px solid rgba(201, 162, 39, 0.3);
    background: rgba(201, 162, 39, 0.06);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    text-align: center;
    position: relative;
    overflow: hidden;
}
.cta-main-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(
        700px 400px at 50% 0%,
        rgba(201, 162, 39, 0.1),
        transparent 65%
    );
    pointer-events: none;
}
.cta-main-card > * {
    position: relative;
    z-index: 1;
}
.cta-main-card h2 {
    font-size: clamp(1.5rem, 2.4vw, 2.1rem);
    color: var(--text);
    margin: 0 0 14px;
}
.cta-main-card p {
    color: var(--muted);
    font-size: 1.05rem;
    line-height: 1.55;
    max-width: 520px;
    margin: 0 auto 28px;
}
.cta-buttons {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
}
.btn-wa {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 850;
    background: rgba(37, 211, 102, 0.16);
    color: #25d366;
    border: 1px solid rgba(37, 211, 102, 0.35);
    transition:
        transform 0.15s ease,
        background 0.15s ease;
}
.btn-wa:hover {
    transform: translateY(-1px);
    background: rgba(37, 211, 102, 0.24);
}

/* ── WhatsApp Floating Button ───────────────────── */
.wa-float {
    position: fixed;
    bottom: 28px;
    right: 28px;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: #25d366;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 28px rgba(37, 211, 102, 0.45);
    text-decoration: none;
    z-index: 2000;
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}
.wa-float:hover {
    transform: scale(1.1);
    box-shadow: 0 12px 36px rgba(37, 211, 102, 0.6);
}
.wa-float svg {
    width: 30px;
    height: 30px;
    fill: #fff;
}

/* ── Hero: Gradient-Fade unten ──────────────────── */
.hero::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 200px;
    background: linear-gradient(to bottom, transparent, rgba(10, 10, 10, 0.95));
    pointer-events: none;
    z-index: 2;
}

/* ── Responsive: Home Sektionen ─────────────────── */
@media (max-width: 980px) {
    .services-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .why-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 640px) {
    /* Mehrzeilige Überschriften: line-height auf Mobile erhöhen */
    .section-head h2 {
        line-height: 1.25;
    }
    .services-grid {
        grid-template-columns: 1fr;
    }
    .spec-grid {
        grid-template-columns: 1fr;
    }
    .why-grid {
        grid-template-columns: 1fr;
    }
    .home-section {
        padding: 64px 0;
    }
    /* Mehr Luft damit Inhalt nicht an Shadow-Highlight-Linie stößt */
    .home-section .section-head {
        padding-top: 8px;
    }
    .cta-main-card {
        padding: 36px 22px;
    }
    .wa-float {
        bottom: 20px;
        right: 18px;
        width: 52px;
        height: 52px;
    }
}

/* ── Referenzen-Seite ───────────────────────────── */
body.page-referenzen {
    background-image:
        radial-gradient(
            1100px 520px at 25% 20%,
            rgba(255, 255, 255, 0.04),
            transparent 60%
        ),
        linear-gradient(180deg, rgba(7, 10, 14, 0.85), rgba(7, 10, 14, 0.92)),
        url("../img/dark-grunge-texture.jpg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    overflow-y: auto;
    overflow-x: hidden;
}
@media (max-width: 900px) {
    body.page-referenzen {
        background-attachment: scroll;
    }
}
.page-referenzen .page-main {
    padding-top: 0;
}

/* Referenzen Grid */
.ref-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 12px;
}
.ref-item {
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.09);
    aspect-ratio: 4/3;
    cursor: pointer;
    position: relative;
    background: rgba(20, 20, 20, 0.7);
}
.ref-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition:
        transform 0.35s ease,
        filter 0.35s ease;
    display: block;
}
.ref-item:hover img {
    transform: scale(1.05);
    filter: brightness(1.08);
}

/* Lightbox */
.lightbox {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(5, 8, 12, 0.93);
    z-index: 3000;
    align-items: center;
    justify-content: center;
    padding: 16px;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}
.lightbox.open {
    display: flex;
}
.lightbox__img {
    max-width: min(90vw, 1100px);
    max-height: 88vh;
    border-radius: 14px;
    box-shadow: 0 32px 80px rgba(0, 0, 0, 0.8);
    object-fit: contain;
}
.lightbox__close {
    position: absolute;
    top: 20px;
    right: 24px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    width: 44px;
    height: 44px;
    color: var(--text);
    font-size: 1.4rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s ease;
}
.lightbox__close:hover {
    background: rgba(255, 255, 255, 0.18);
}
.lightbox__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.09);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    width: 50px;
    height: 50px;
    color: var(--text);
    font-size: 1.5rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s ease;
}
.lightbox__nav:hover {
    background: rgba(255, 255, 255, 0.16);
}
.lightbox__prev {
    left: 16px;
}
.lightbox__next {
    right: 16px;
}

/* ── Nav: Aktiv-Marker ──────────────────────────── */
.nav-link[aria-current="page"] {
    color: var(--accent);
    background: var(--accent-2);
    border-color: rgba(201, 162, 39, 0.22);
}

/* =========================================================
   REDESIGN v2 – Rot + Grau Palette
   Image-Cards · Stats-Bar · Portrait-CTA · Inter Font
========================================================= */

/* ── Überschreibe die Home-Sektion Basis-Farben ────────── */
.home-content-start {
    background: linear-gradient(180deg, rgba(4, 4, 4, 1) 0%, var(--bg) 100%);
}

.section-head .eyebrow {
    color: var(--accent);
}

/* ── Service Image Cards (2×2 Grid) ───────────────────── */
.svc-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3px;
    border-radius: 20px;
    overflow: hidden;
    margin-bottom: 28px;
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.06),
        0 24px 64px rgba(0, 0, 0, 0.7),
        0 8px 24px rgba(0, 0, 0, 0.5);
}

.svc-card {
    position: relative;
    overflow: hidden;
    min-height: 300px;
    display: flex;
    align-items: flex-end;
    cursor: default;
}

.svc-card__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    transition:
        transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94),
        filter 0.4s ease;
    filter: grayscale(15%) brightness(0.9);
}

.svc-card:hover .svc-card__bg {
    transform: scale(1.06);
    filter: grayscale(0%) brightness(0.95);
}

.svc-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.9) 0%,
        rgba(0, 0, 0, 0.52) 45%,
        rgba(0, 0, 0, 0.12) 100%
    );
    transition: background 0.35s ease;
}

.svc-card:hover .svc-card__overlay {
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.92) 0%,
        rgba(0, 0, 0, 0.6) 50%,
        rgba(0, 0, 0, 0.18) 100%
    );
}

/* Einheitlicher Grauschleier über allen Karten – auf Hover aufgehoben */
.svc-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(18, 18, 22, 0.48);
    z-index: 2;
    transition: opacity 0.4s ease;
    pointer-events: none;
}

.svc-card:hover::before {
    opacity: 0;
}

/* Roter Streifen links – Hover reveal */
.svc-card::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--accent);
    transform: scaleY(0);
    transform-origin: bottom;
    transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
    z-index: 3;
}

.svc-card:hover::after {
    transform: scaleY(1);
}

.svc-card__content {
    position: relative;
    z-index: 3;
    padding: 24px 28px 28px;
    width: 100%;
}

.svc-card__num {
    display: block;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 2.5px;
    color: var(--accent);
    margin-bottom: 6px;
    text-transform: uppercase;
}

.svc-card h3 {
    font-size: 1.3rem;
    font-weight: 800;
    color: #fff;
    margin: 0 0 8px;
    line-height: 1.15;
}

.svc-card p {
    font-size: 0.87rem;
    color: rgba(255, 255, 255, 0.68);
    line-height: 1.5;
    margin: 0 0 14px;
    max-width: 340px;
}

.svc-card__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--accent);
    text-decoration: none;
    opacity: 0;
    transform: translateY(6px);
    transition:
        opacity 0.3s ease,
        transform 0.3s ease,
        gap 0.2s ease;
}

.svc-card:hover .svc-card__link {
    opacity: 1;
    transform: translateY(0);
}

.svc-card__link:hover {
    gap: 10px;
}

@media (max-width: 760px) {
    .svc-grid {
        grid-template-columns: 1fr;
    }
    .svc-card {
        min-height: 260px;
    }
    .svc-card__link {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ── Stats Bar ─────────────────────────────────────────── */
.stats-bar {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    background: rgba(255, 255, 255, 0.06);
    border-radius: 16px;
    overflow: hidden;
    margin: 0 0 0;
}

.stat-item {
    background: rgba(16, 16, 16, 0.92);
    padding: 24px 20px;
    text-align: center;
    position: relative;
}

.stat-item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 32px;
    height: 2px;
    background: var(--accent);
    border-radius: 0 0 2px 2px;
}

.stat-item__num {
    display: block;
    font-size: clamp(1.5rem, 2.2vw, 2rem);
    font-weight: 900;
    color: #fff;
    line-height: 1;
    margin-bottom: 6px;
    font-variant-numeric: tabular-nums;
}

.stat-item__num span {
    color: var(--accent);
}

.stat-item__label {
    display: block;
    font-size: 0.78rem;
    color: var(--muted);
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

@media (max-width: 760px) {
    .stats-bar {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 420px) {
    .stats-bar {
        grid-template-columns: 1fr;
    }
}

/* ── Überarbeitete Spezialisierung ─────────────────────── */
.spec-grid-v2 {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 3px;
    border-radius: 20px;
    overflow: hidden;
    min-height: 420px;
}

.spec-feature {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 36px 36px 36px;
}

.spec-feature__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    filter: grayscale(20%) brightness(0.55);
    transition: transform 0.5s ease;
}

.spec-feature:hover .spec-feature__bg {
    transform: scale(1.04);
}

.spec-feature__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.92) 0%,
        rgba(0, 0, 0, 0.55) 50%,
        rgba(0, 0, 0, 0.2) 100%
    );
}

.spec-feature__content {
    position: relative;
    z-index: 2;
}

.spec-feature .spec-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    background: var(--accent);
    color: #fff;
    margin-bottom: 14px;
}

.spec-feature h3 {
    font-size: 1.7rem;
    font-weight: 900;
    color: #fff;
    margin: 0 0 12px;
    line-height: 1.1;
}

.spec-feature p {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.95rem;
    line-height: 1.55;
    margin: 0 0 20px;
    max-width: 420px;
}

.spec-feature ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.spec-feature ul li {
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.82);
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.spec-feature ul li::before {
    content: "→";
    color: var(--accent);
    font-weight: 900;
    flex-shrink: 0;
    margin-top: 1px;
}

.spec-side {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.spec-side-card {
    /* flex: 1; */
    background: var(--surface-strong);
    border: none;
    padding: 28px 26px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    overflow: hidden;
}

.spec-side-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--accent);
}

.spec-side-card .spec-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    background: var(--accent-2);
    color: var(--accent);
    border: 1px solid rgba(200, 40, 42, 0.3);
    margin-bottom: 12px;
}

.spec-side-card h3 {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--text);
    margin: 0 0 10px;
    line-height: 1.2;
}

.spec-side-card p {
    color: var(--muted);
    font-size: 0.87rem;
    line-height: 1.5;
    margin: 0 0 14px;
}

.spec-side-card ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.spec-side-card ul li {
    font-size: 0.85rem;
    color: rgba(240, 240, 240, 0.75);
    padding-left: 16px;
    position: relative;
}

.spec-side-card ul li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--accent);
    font-weight: 900;
    font-size: 0.82rem;
}

@media (max-width: 900px) {
    .spec-grid-v2 {
        grid-template-columns: 1fr;
        min-height: auto;
    }
    .spec-feature {
        min-height: 360px;
    }
    .spec-side {
        flex-direction: row;
    }
}

@media (max-width: 580px) {
    .spec-side {
        flex-direction: column;
        gap: 5px;
    }
}

/* ── Überarbeitete Why-Cards ──────────────────────────── */
.why-grid-v2 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.why-card-v2 {
    padding: 28px 22px;
    border-radius: 16px;
    border-top: 2px solid var(--accent);
    background: rgba(24, 27, 31, 0.92);
    position: relative;
    transition:
        transform 0.2s ease,
        background 0.2s ease;
}

.why-card-v2:hover {
    transform: translateY(-4px);
    background: rgba(30, 33, 38, 0.96);
}

.why-card-v2__icon {
    font-size: 1.6rem;
    margin-bottom: 14px;
    display: block;
}

.why-card-v2 h3 {
    font-size: 1rem;
    font-weight: 800;
    color: var(--text);
    margin: 0 0 8px;
}

.why-card-v2 p {
    font-size: 0.87rem;
    color: var(--muted);
    line-height: 1.55;
    margin: 0;
}

@media (max-width: 900px) {
    .why-grid-v2 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 520px) {
    .why-grid-v2 {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   QUALITÄTSMERKMALE – 4-Card Grid
========================================================= */
/* 2-spaltige horizontale Liste */
.quality-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 1fr;
    gap: 12px;
    margin-top: 36px;
}

.quality-item {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    background: #232327;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-left: 3px solid var(--accent);
    border-radius: 14px;
    padding: 22px 24px;
    transition:
        transform 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease;
    box-shadow:
        0 16px 48px rgba(0, 0, 0, 0.55),
        0 4px 14px rgba(0, 0, 0, 0.4);
}

.quality-item:hover {
    transform: translateY(-4px);
    background: #18181b;
    box-shadow:
        0 24px 60px rgba(0, 0, 0, 0.65),
        0 6px 18px rgba(200, 40, 42, 0.14);
}

.quality-item__num {
    font-size: 1.8rem;
    font-weight: 900;
    color: var(--accent);
    opacity: 0.35;
    line-height: 1;
    flex-shrink: 0;
    min-width: 42px;
    letter-spacing: -1px;
}

.quality-item__body {
    flex: 1;
    min-width: 0;
}

.quality-item__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
    flex-wrap: wrap;
}

.quality-item__top h3 {
    font-size: 0.98rem;
    font-weight: 750;
    color: var(--text);
    margin: 0;
    line-height: 1.3;
}

.quality-item__body p {
    font-size: 0.84rem;
    color: var(--muted);
    line-height: 1.55;
    margin: 0;
}

.quality-tag {
    display: inline-block;
    flex-shrink: 0;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: var(--accent);
    background: rgba(200, 40, 42, 0.12);
    border: 1px solid rgba(200, 40, 42, 0.28);
    border-radius: 20px;
    padding: 3px 10px;
}

@media (max-width: 680px) {
    .quality-list {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}

/* =========================================================
   PARTNER & ZUSAMMENARBEIT
========================================================= */
.section-partners {
    padding: 44px 0 52px;
    background: #111113;
    border-top: none;
    border-bottom: none;
    position: relative;
    z-index: 2;
}

.partners-label {
    text-align: center;
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: rgba(232, 237, 242, 0.75);
    margin: 0 0 28px;
}

.partners-strip {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
    background: transparent;
    padding: 0;
}

.partner-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    background: rgba(245, 245, 245, 0.68);
    border-radius: 14px;
    width: 140px;
    height: 100px;
    flex-shrink: 0;
    border: 1px solid rgba(245, 245, 245, 0.15);
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
    opacity: 1;
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        background 0.25s ease;
    filter: none;
}

.partner-logo:hover {
    transform: translateY(-4px);
    background: rgba(245, 245, 245, 0.92);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5);
}

/* Bild-Logo (wenn img-Tag vorhanden) */
.partner-logo img {
    height: 56px;
    width: 100px;
    display: block;
    object-fit: contain;
}

/* Text-Fallback-Logo für Holm (bis echtes Logo hochgeladen) */
.partner-logo__text {
    display: flex;
    align-items: center;
    gap: 10px;
}

.partner-logo__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    background: #c8282a;
    color: #fff;
    font-size: 1.1rem;
    font-weight: 900;
    border-radius: 8px;
    flex-shrink: 0;
}

.partner-logo__name {
    font-size: 0.9rem;
    font-weight: 800;
    color: rgba(232, 237, 242, 0.9);
    letter-spacing: 0.5px;
    line-height: 1.2;
}

.partner-logo__name small {
    font-size: 0.7rem;
    font-weight: 500;
    color: rgba(232, 237, 242, 0.5);
    letter-spacing: 0.3px;
}

.partners-divider {
    display: block;
    display: none;
}

/* ── Portrait CTA ─────────────────────────────────────── */
.cta-portrait-section {
    padding: 80px 0 100px;
}

.cta-portrait-inner {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 0;
    border-radius: 22px;
    overflow: hidden;
    background: rgba(14, 14, 14, 0.95);
    border: 1px solid rgba(255, 255, 255, 0.08);
    position: relative;
}

.cta-portrait-inner::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(
        800px 500px at 80% 50%,
        rgba(200, 40, 42, 0.07),
        transparent 60%
    );
    pointer-events: none;
}

.cta-portrait__img {
    position: relative;
    overflow: hidden;
    min-height: 380px;
}

.cta-portrait__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    filter: grayscale(20%);
    display: block;
}

.cta-portrait__img::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        transparent 60%,
        rgba(14, 14, 14, 0.85) 100%
    );
}

.cta-portrait__content {
    padding: 48px 44px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    z-index: 1;
}

.cta-portrait__content .eyebrow {
    font-size: 0.78rem;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 14px;
    display: block;
    font-weight: 800;
}

.cta-portrait__content h2 {
    font-size: clamp(1.6rem, 2.4vw, 2.1rem);
    font-weight: 900;
    color: #fff;
    margin: 0 0 16px;
    line-height: 1.12;
}

.cta-portrait__content p {
    color: var(--muted);
    font-size: 1rem;
    line-height: 1.6;
    margin: 0 0 28px;
}

.cta-portrait__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

@media (max-width: 860px) {
    .cta-portrait-inner {
        grid-template-columns: 1fr;
    }
    .cta-portrait__img {
        min-height: 260px;
    }
    .cta-portrait__img::after {
        background: linear-gradient(
            to bottom,
            transparent 60%,
            rgba(14, 14, 14, 0.85) 100%
        );
    }
    .cta-portrait__content {
        padding: 32px 28px;
    }
}

/* ── Horizontal Divider zwischen Sektionen ────────────── */
.section-divider {
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.07) 30%,
        rgba(255, 255, 255, 0.07) 70%,
        transparent
    );
    margin: 0;
}

/* ── Sektions-Hintergründe: inline-style pro Section ─── */
/* Jede Section in index.html hat direkt style="background:#..." */
/* Kein extra Trenner-Div nötig – Farbwechsel = Abgrenzung */
.home-section {
    background: var(--bg);
}

/* ── Nav: Rot-aktiv, neutral Hintergrund ──────────────── */
.nav-link[aria-current="page"] {
    color: var(--accent);
    background: rgba(200, 40, 42, 0.1);
    border-color: rgba(200, 40, 42, 0.22);
}

/* ── Referenzen-Seite: sauberes Dunkelgrau ─────────────── */
body.page-referenzen {
    background: var(--bg);
}

/* ── Kontakt Glow: neutral ────────────────────────────── */
body.page-contact .glow-panel::before {
    opacity: 0.4;
    background:
        radial-gradient(
            650px 220px at 12% 10%,
            rgba(200, 40, 42, 0.07),
            transparent 60%
        ),
        radial-gradient(
            520px 240px at 88% 22%,
            rgba(255, 255, 255, 0.03),
            transparent 60%
        );
}

/* ── Checks: roter Haken ──────────────────────────────── */
.checks li::before {
    color: var(--accent);
}

/* ── Footer: solid dark mit rotem Akzent oben ─────────── */
.footer--glass {
    background: #111113;
    border-top: 2px solid var(--accent);
}

/* =========================================================
   REDESIGN v3 – Standard-Nav, hellere Seite, Page-Heroes
========================================================= */

/* ── Page Hero (Leistungen / Kontakt / Referenzen) ─────── */
.page-hero {
    position: relative;
    overflow: hidden;
    min-height: 320px;
    display: flex;
    align-items: flex-end;
    padding-top: var(--nav-h);
    width: 100%;
    box-sizing: border-box;
}

/* Wrap im page-hero: volle Breite sicherstellen */
.page-hero > .wrap {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.page-hero__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    filter: grayscale(25%) brightness(0.45);
}

.page-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.55) 0%,
        rgba(12, 12, 12, 0.72) 60%,
        rgba(16, 16, 16, 0.97) 100%
    );
}

.page-hero__content {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 40px clamp(20px, 4vw, 64px) 48px;
}

.page-hero__content .eyebrow {
    font-size: 0.75rem;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--accent);
    display: block;
    margin-bottom: 10px;
    font-weight: 800;
}

.page-hero__content h1 {
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 900;
    color: #fff;
    margin: 0 0 12px;
    line-height: 1.08;
}

.page-hero__content p {
    color: rgba(245, 245, 245, 0.72);
    font-size: 1.05rem;
    line-height: 1.55;
    max-width: 580px;
    margin: 0;
}

/* Roter Akzent-Strich vor Überschrift */
.page-hero__content h1::before {
    content: "";
    display: block;
    width: 40px;
    height: 3px;
    background: var(--accent);
    border-radius: 2px;
    margin-bottom: 14px;
}

/* ── Sektions-Abwechslung (Kontrast) ──────────────────── */
.section-bg-alt {
    background: #52525b;
    position: relative;
    z-index: 1;
}

.section-bg-dark {
    background: #18181b;
    position: relative;
    z-index: 1;
}

/* ── Hellere Karten ───────────────────────────────────── */
.card-light {
    background: rgba(35, 35, 35, 0.95);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 18px;
    padding: 28px;
}

/* ── Kontakt-Formular – heller & kontrastreicher ─────── */
.contact-form label {
    color: rgba(245, 245, 245, 0.85);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.3px;
    margin-bottom: 6px;
    display: block;
}

.contact-form input,
.contact-form textarea {
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    color: var(--text) !important;
    border-radius: 10px !important;
    transition:
        border-color 0.2s ease,
        background 0.2s ease !important;
}

.contact-form input:focus,
.contact-form textarea:focus {
    background: rgba(255, 255, 255, 0.09) !important;
    border-color: rgba(200, 40, 42, 0.55) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(200, 40, 42, 0.12) !important;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
    color: rgba(245, 245, 245, 0.32) !important;
}

/* ── Nav: active state (rot) ──────────────────────────── */
.nav-link[aria-current="page"] {
    color: var(--accent);
    background: rgba(200, 40, 42, 0.1);
    border-color: rgba(200, 40, 42, 0.22);
}

/* ── Nav: Mobile Hamburger sichtbar ab 960px ──────────── */
@media (min-width: 961px) {
    .hamburger {
        display: none;
    }
}
@media (max-width: 960px) {
    .nav-link {
        display: none;
    }
    .hamburger {
        display: inline-flex;
    }
}

/* ── Menu-Panel: volle Breite ─────────────────────────── */
.menu-panel {
    top: var(--nav-h);
    left: 0;
    right: 0;
    width: 100%;
    border-radius: 0;
    border-left: none;
    border-right: none;
    border-top: none;
    padding: 12px clamp(20px, 5vw, 72px);
    transform: translateY(-4px);
}
.menu-panel.show {
    transform: translateY(0);
}

/* ── Page-Main: kein doppeltes Padding – page-hero macht das selbst ── */
.page-main {
    padding-top: 0;
}

/* ── Section: Sektions-Abstände + einheitliche Tiefenwirkung ── */
.section-padded {
    padding: 72px 0;
    position: relative;
    z-index: 1;
}

/* ── Shadow-Utility-Klassen ────────────────────────────────
   MUSS nach .section-padded stehen, damit z-index: 2 gewinnt.
   (gleiche Spezifität → spätere Regel hat Vorrang)

   Dark-UI Elevation: schwarzer Schatten allein verschwindet auf
   dunklem Hintergrund. Lösung: helles 1px-Highlight auf der
   "erhobenen" Kante (Lichtreflexion) + dunkler Schatten auf
   der Gegenseite. So entsteht echte wahrnehmbare Tiefe.
──────────────────────────────────────────────────────────── */
.shadow-top {
    position: relative;
    z-index: 2;
}

.shadow-bottom {
    position: relative;
    z-index: 2;
    box-shadow:
        /* Highlight: obere Kante leuchtet (Licht von oben) */
        0 -1px 0 rgba(255, 255, 255, 0.14),
        /* Schatten: nach unten auf die darunter liegende Section */ 0 4px 12px
            rgba(0, 0, 0, 0.85),
        0 14px 32px rgba(0, 0, 0, 0.5);
}

.shadow-both {
    position: relative;
    z-index: 2;
    box-shadow:
        0 -1px 0 rgba(255, 255, 255, 0.14),
        0 1px 0 rgba(255, 255, 255, 0.14),
        0 -4px 12px rgba(0, 0, 0, 0.85),
        0 -14px 32px rgba(0, 0, 0, 0.5),
        0 4px 12px rgba(0, 0, 0, 0.85),
        0 14px 32px rgba(0, 0, 0, 0.5);
}

/* ── Subnav Fix (Leistungsseite) ──────────────────────── */
.page-services .page-subnav {
    top: calc(var(--nav-h) + 12px);
    width: 100%;
    left: 0;
    border-radius: 0;
    border-left: none;
    border-right: none;
    padding: 10px clamp(20px, 5vw, 72px);
}

/* ── Home-Section: Padding-Top fix ───────────────────── */
body.home .hero {
    padding-top: 0; /* Nav offset via hero-wrap */
}

/* ── Responsive fixes ─────────────────────────────────── */
@media (max-width: 980px) {
    .page-services [id] {
        scroll-margin-top: calc(var(--nav-h) + 100px);
    }

    /* Page-Hero auf Mobile: Wrap und Content korrekt begrenzen */
    .page-hero {
        min-height: 260px;
        align-items: center;
    }
    .page-hero > .wrap {
        width: min(92%, 100%) !important;
        max-width: 100% !important;
        padding-left: 20px;
        padding-right: 20px;
        margin: 0 auto;
    }
    .page-hero__content {
        padding: 20px 0 28px;
    }
}

/* =========================================================
   SHADOWS & SOLID CONTAINERS – alle Sektionen einheitlich
   Ziel: Elemente klar voneinander abheben, tiefen Eindruck
========================================================= */

/* ── Glow-Panel: stärkerer Schatten + neutrale Basis-Farbe */
.glow-panel {
    background: rgba(26, 26, 26, 0.88) !important;
    box-shadow:
        0 32px 80px rgba(0, 0, 0, 0.65),
        0 8px 24px rgba(0, 0, 0, 0.5),
        inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.11) !important;
}
.glow-panel:hover {
    box-shadow:
        0 38px 90px rgba(0, 0, 0, 0.72),
        0 10px 30px rgba(200, 40, 42, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.07) !important;
}

/* ── Service Cards ─────────────────────────────────────── */
.svc-card {
    box-shadow:
        0 20px 55px rgba(0, 0, 0, 0.6),
        0 4px 16px rgba(0, 0, 0, 0.45);
}
.svc-card:hover {
    box-shadow:
        0 28px 70px rgba(0, 0, 0, 0.7),
        0 6px 20px rgba(200, 40, 42, 0.18);
}

/* ── Why-Cards ─────────────────────────────────────────── */
.why-card-v2 {
    background: #232327 !important;
    box-shadow:
        0 16px 48px rgba(0, 0, 0, 0.55),
        0 4px 14px rgba(0, 0, 0, 0.4);
}
.why-card-v2:hover {
    background: #18181b !important;
    box-shadow:
        0 24px 60px rgba(0, 0, 0, 0.65),
        0 6px 18px rgba(200, 40, 42, 0.14);
}

/* ── Stat-Items (Stats-Bar) ────────────────────────────── */
.stat-item {
    background: #232327 !important;
    border: 1px solid rgba(255, 255, 255, 0.09) !important;
    border-radius: 14px;
    box-shadow:
        0 12px 36px rgba(0, 0, 0, 0.5),
        0 3px 10px rgba(0, 0, 0, 0.35);
    padding: 20px 16px !important;
}

/* ── Spec-Feature (Brandschottung big card) ────────────── */
.spec-feature {
    box-shadow:
        0 24px 65px rgba(0, 0, 0, 0.65),
        0 6px 18px rgba(0, 0, 0, 0.48);
}

/* ── Spec-Side-Cards ───────────────────────────────────── */
.spec-side-card {
    background: #232327 !important;
    box-shadow:
        0 16px 45px rgba(0, 0, 0, 0.55),
        0 4px 14px rgba(0, 0, 0, 0.42);
}
.spec-side-card:hover {
    box-shadow:
        0 22px 58px rgba(0, 0, 0, 0.65),
        0 5px 16px rgba(200, 40, 42, 0.12);
}

/* ── Contact Panels ────────────────────────────────────── */
.contact-panel {
    background: #232327 !important;
    box-shadow:
        0 18px 50px rgba(0, 0, 0, 0.55),
        0 4px 14px rgba(0, 0, 0, 0.4);
}

/* ── Stats-Bar Container ───────────────────────────────── */
.stats-bar {
    background: #52525b;
    border-radius: 18px;
    padding: 24px;
    box-shadow:
        0 14px 42px rgba(0, 0, 0, 0.4),
        0 3px 12px rgba(0, 0, 0, 0.28);
    border: 1px solid rgba(255, 255, 255, 0.09);
}

/* ── CTA Portrait Section ──────────────────────────────── */
.cta-portrait-inner {
    box-shadow:
        0 28px 75px rgba(0, 0, 0, 0.65),
        0 6px 20px rgba(0, 0, 0, 0.5);
}

/* ── Mobile hero top: nur auf kleinen Screens sichtbar ─── */
.hero-mobile-top {
    display: none; /* Desktop: versteckt */
}

/* ── Einheitliche Seiten-Hintergründe ohne Texturen ────── */
body.page-services,
body.page-referenzen,
body.page-contact {
    background: var(--bg) !important;
    background-image: none !important;
}

/* =========================================================
   LEISTUNGEN – Page-spezifische Styles
========================================================= */

/* Subnav auf Mobile ausblenden – macht die Nav-Leiste sonst doppelt so hoch */
@media (max-width: 980px) {
    .page-subnav {
        display: none !important;
    }
    .page-services .page-subnav + * {
        margin-top: 0 !important;
    }
}

@media (max-width: 720px) {
    /* Leistungs-Karten übereinander stapeln */
    article[id] {
        grid-template-columns: 1fr !important;
    }
    article[id] > div:first-child,
    article[id] > div:last-child {
        min-height: 220px !important;
    }
    article[id] > div {
        padding: 28px 22px !important;
    }
    #brandschottung {
        grid-template-columns: 1fr !important;
    }
    #brandschottung > div:first-child {
        min-height: 280px !important;
    }
    #kernbohrungen {
        padding: 28px 22px !important;
    }
}

/* =========================================================
   KONTAKT – Page-spezifische Styles
========================================================= */

.cf-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
}
.cf-field label {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: var(--muted);
}
.cf-field input,
.cf-field textarea,
.cf-field select {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    color: var(--text);
    font-family: inherit;
    font-size: 0.95rem;
    padding: 14px 16px;
    transition:
        border-color 0.2s,
        background 0.2s;
    outline: none;
    width: 100%;
}
.cf-field input::placeholder,
.cf-field textarea::placeholder {
    color: rgba(245, 245, 245, 0.28);
}
.cf-field input:focus,
.cf-field textarea:focus {
    border-color: var(--accent);
    background: rgba(200, 40, 42, 0.06);
}
.cf-field textarea {
    resize: vertical;
    min-height: 130px;
}

.contact-grid-v2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    align-items: start;
}
@media (max-width: 820px) {
    .contact-grid-v2 {
        grid-template-columns: 1fr;
    }
}

.contact-panel {
    background: rgba(22, 22, 22, 0.85);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 20px;
    backdrop-filter: blur(18px);
    padding: 44px 40px;
    display: flex;
    flex-direction: column;
    gap: 28px;
}
@media (max-width: 600px) {
    .contact-panel {
        padding: 28px 22px;
    }
}
.contact-panel h2 {
    font-size: 1.6rem;
    font-weight: 900;
    color: var(--text);
    margin: 0;
    line-height: 1.15;
}
.contact-panel .sub {
    color: var(--muted);
    font-size: 0.95rem;
    line-height: 1.6;
    margin: 0;
}

.cf-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
@media (max-width: 520px) {
    .cf-row {
        grid-template-columns: 1fr;
    }
}

.cf-actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 4px;
}

.ci-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.ci-item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 18px 20px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: 14px;
    color: var(--text);
    text-decoration: none;
    box-shadow:
        0 8px 28px rgba(0, 0, 0, 0.45),
        0 2px 8px rgba(0, 0, 0, 0.3);
    transition:
        background 0.2s,
        border-color 0.2s,
        transform 0.2s;
}
.ci-item:hover {
    background: rgba(200, 40, 42, 0.1);
    border-color: rgba(200, 40, 42, 0.35);
    transform: translateX(4px);
}
.ci-ico {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(200, 40, 42, 0.15);
    border: 1px solid rgba(200, 40, 42, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.1rem;
}
.ci-text strong {
    display: block;
    font-size: 0.83rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    color: var(--text);
    margin-bottom: 2px;
}
.ci-text span {
    font-size: 0.92rem;
    color: var(--muted);
}

.ci-divider {
    height: 1px;
    background: rgba(255, 255, 255, 0.07);
    margin: 8px 0;
}

.ci-address {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 20px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: 14px;
}
.ci-address-ico {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(200, 40, 42, 0.15);
    border: 1px solid rgba(200, 40, 42, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.1rem;
}
.ci-address-text strong {
    display: block;
    font-size: 0.83rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    color: var(--text);
    margin-bottom: 4px;
}
.ci-address-text p {
    margin: 0 0 12px;
    color: var(--muted);
    font-size: 0.92rem;
    line-height: 1.55;
}

.tip-chip {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    background: rgba(200, 40, 42, 0.08);
    border: 1px solid rgba(200, 40, 42, 0.2);
    border-radius: 12px;
    padding: 14px 16px;
    font-size: 0.85rem;
    color: var(--muted);
    line-height: 1.5;
}
.tip-chip strong {
    color: var(--text);
}
.tip-chip-icon {
    font-size: 1rem;
    margin-top: 1px;
    flex-shrink: 0;
}

.cf-note {
    font-size: 0.82rem;
    color: var(--muted);
    line-height: 1.5;
    margin-top: -8px;
}

/* EmailJS Feedback */
.cf-feedback {
    display: none;
    font-size: 0.9rem;
    font-weight: 700;
    padding: 12px 16px;
    border-radius: 10px;
    margin-bottom: 4px;
}
.cf-feedback:not(:empty) {
    display: block;
}
.cf-feedback--ok {
    background: rgba(34, 197, 94, 0.12);
    border: 1px solid rgba(34, 197, 94, 0.3);
    color: #4ade80;
}
.cf-feedback--err {
    background: rgba(200, 40, 42, 0.12);
    border: 1px solid rgba(200, 40, 42, 0.3);
    color: #f87171;
}
.cf-note a {
    color: var(--accent);
    text-decoration: none;
}
.cf-note a:hover {
    text-decoration: underline;
}

.section-title-block {
    text-align: center;
    margin-bottom: 52px;
}
.section-title-block .eyebrow {
    display: inline-block;
    margin-bottom: 12px;
}
.section-title-block h2 {
    font-size: clamp(1.8rem, 3.5vw, 2.6rem);
    font-weight: 900;
    color: var(--text);
    margin: 0 0 14px;
}
.section-title-block p {
    color: var(--muted);
    font-size: 1.05rem;
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.65;
}

.section-radius-top {
    margin-top: -20px;
    position: relative;
    z-index: 2;
}

.page-hero--contact .page-hero__content {
    max-width: 680px;
}

/* =========================================================
   ÜBER MICH – Page-spezifische Styles
========================================================= */

.bio-grid {
    display: grid;
    grid-template-columns: 380px 1fr;
    gap: 48px;
    align-items: start;
}
@media (max-width: 900px) {
    .bio-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }
}

.bio-portrait {
    position: sticky;
    top: calc(var(--nav-h) + 28px);
}

/* Sticky deaktivieren auf Mobile – sonst überlagert Bild den Text beim Scrollen */
@media (max-width: 900px) {
    .bio-portrait {
        position: relative;
        top: auto;
    }
}
.bio-portrait__img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    object-position: top center;
    border-radius: 20px;
    display: block;
    box-shadow:
        0 28px 70px rgba(0, 0, 0, 0.65),
        0 6px 20px rgba(0, 0, 0, 0.5);
    filter: grayscale(10%);
}
.bio-portrait__caption {
    margin-top: 16px;
    padding: 18px 20px;
    background: #232327;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 14px;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.4);
}
.bio-portrait__caption strong {
    display: block;
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 2px;
}
.bio-portrait__caption span {
    font-size: 0.85rem;
    color: var(--muted);
}
.bio-portrait__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}
.bio-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: rgba(200, 40, 42, 0.1);
    border: 1px solid rgba(200, 40, 42, 0.25);
    border-radius: 8px;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--text);
    letter-spacing: 0.3px;
}

.bio-text {
    display: flex;
    flex-direction: column;
    gap: 32px;
}
.bio-text h2 {
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    font-weight: 900;
    color: var(--text);
    line-height: 1.12;
    margin: 0 0 14px;
}
.bio-text p {
    color: var(--muted);
    font-size: 1.02rem;
    line-height: 1.7;
    margin: 0 0 14px;
}
.bio-text p:last-child {
    margin-bottom: 0;
}

.bio-quote {
    border-left: 3px solid var(--accent);
    padding: 14px 20px;
    background: rgba(200, 40, 42, 0.06);
    border-radius: 0 12px 12px 0;
    font-style: italic;
    font-size: 1.05rem;
    color: var(--text);
    line-height: 1.6;
}

.skills-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
@media (max-width: 600px) {
    .skills-grid {
        grid-template-columns: 1fr;
    }
}
.skill-item {
    background: #232327;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 16px 18px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
}
.skill-item__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}
.skill-item__label {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--text);
}
.skill-item__pct {
    font-size: 0.78rem;
    font-weight: 800;
    color: var(--accent);
}
.skill-bar {
    height: 4px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 2px;
    overflow: hidden;
}
.skill-bar__fill {
    height: 100%;
    background: linear-gradient(90deg, var(--accent-dark), var(--accent));
    border-radius: 2px;
    transition: width 1s ease;
}

.values-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
@media (max-width: 768px) {
    .values-grid {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 480px) {
    .values-grid {
        grid-template-columns: 1fr;
    }
}
.value-card {
    background: #232327;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-top: 2px solid var(--accent);
    border-radius: 14px;
    box-shadow:
        0 14px 44px rgba(0, 0, 0, 0.52),
        0 4px 12px rgba(0, 0, 0, 0.36),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
    padding: 24px 20px;
    box-shadow:
        0 12px 36px rgba(0, 0, 0, 0.45),
        0 3px 10px rgba(0, 0, 0, 0.32);
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}
.value-card:hover {
    transform: translateY(-3px);
    box-shadow:
        0 18px 48px rgba(0, 0, 0, 0.55),
        0 5px 14px rgba(200, 40, 42, 0.12);
}
.value-card__icon {
    font-size: 1.5rem;
    margin-bottom: 12px;
    display: block;
}
.value-card h3 {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--text);
    margin: 0 0 7px;
}
.value-card p {
    font-size: 0.85rem;
    color: var(--muted);
    margin: 0;
    line-height: 1.55;
}

.about-section-title {
    margin-bottom: 32px;
}
.about-section-title .eyebrow {
    display: block;
    margin-bottom: 8px;
}
.about-section-title h2 {
    font-size: clamp(1.5rem, 2.8vw, 2.1rem);
    font-weight: 900;
    color: var(--text);
    margin: 0 0 10px;
}
.about-section-title p {
    color: var(--muted);
    font-size: 0.98rem;
    margin: 0;
    max-width: 540px;
    line-height: 1.6;
}

/* =========================================================
   REFERENZEN – Kategorie-Filter + Galerie
========================================================= */

/* Kategorie-Trennlinie mit Label */
.ref-divider {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 28px 0 4px;
}
.ref-divider:first-child {
    padding-top: 0;
}
.ref-divider::before,
.ref-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: rgba(255, 255, 255, 0.12);
}
.ref-divider span {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color: var(--muted);
    white-space: nowrap;
}

/* Galerie-Grid */
.ref-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
@media (max-width: 900px) {
    .ref-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
}
@media (max-width: 480px) {
    .ref-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }
}

/* Bild-Karte: einheitliches Format egal ob Hoch- oder Querformat */
.ref-card {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    aspect-ratio: 4 / 3;
    background: #232327;
    cursor: pointer;
    box-shadow:
        0 12px 36px rgba(0, 0, 0, 0.55),
        0 3px 10px rgba(0, 0, 0, 0.38);
}
.ref-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.35s ease;
}
.ref-card:hover {
    box-shadow:
        0 20px 52px rgba(0, 0, 0, 0.65),
        0 5px 16px rgba(0, 0, 0, 0.45);
}
.ref-card:hover img {
    transform: scale(1.05);
}
.ref-card[hidden] {
    display: none;
}

/* "Mehr laden"-Button */
.ref-more {
    display: flex;
    justify-content: center;
    margin-top: 36px;
}
.ref-more__btn {
    padding: 12px 32px;
    border-radius: 100px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: transparent;
    color: var(--text);
    font-family: inherit;
    font-size: 0.92rem;
    font-weight: 600;
    cursor: pointer;
    transition:
        background 0.2s,
        border-color 0.2s;
}
.ref-more__btn:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.3);
}

/* Lightbox */
.ref-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.92);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
}
.ref-lightbox.open {
    opacity: 1;
    pointer-events: auto;
}
.ref-lightbox img {
    max-width: 92vw;
    max-height: 88vh;
    object-fit: contain;
    border-radius: 8px;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.8);
}
.ref-lightbox__close {
    position: absolute;
    top: 20px;
    right: 24px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #fff;
    font-size: 1.4rem;
    line-height: 1;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
}
.ref-lightbox__close:hover {
    background: rgba(255, 255, 255, 0.22);
}

/* =========================================================
   PARALLAX SECTION
   Bild tauschen: background-image in .parallax-bg (HTML)
   Dunkel-Stärke: filter + overlay anpassen
========================================================= */
.parallax-section {
    position: relative;
    /* overflow: hidden NICHT setzen – sonst bricht fixed attachment */
    background: transparent !important;
}

/* Das Hintergrundbild – fixed am Viewport verankert.
   Der Container clippt es durch seine Grenzen:
   Ergebnis: Bild bleibt stehen, Seite scrollt darüber.   */
.parallax-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    z-index: 0;
}

/* Zweite Schicht: weiches Dunkeloverlay für Lesbarkeit     */
.parallax-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1;
    pointer-events: none;
}

/* Alle direkten Kind-Elemente über dem Bild               */
.parallax-section > .wrap,
.parallax-section > header,
.parallax-section > .section-head {
    position: relative;
    z-index: 2;
}

/* Mobile / iOS: fixed attachment kaputt → normales scroll  */
@media (max-width: 768px) {
    .parallax-bg {
        background-attachment: scroll;
        background-position: center center;
    }
}

/* =========================================================
   LEISTUNGEN – Image Cards (leistung-card)
========================================================= */
.leistung-card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3px;
    overflow: hidden;
    margin-bottom: 3px;
}

.leistung-card--first {
    border-radius: 18px 18px 0 0;
}
.leistung-card--last {
    margin-bottom: 24px;
}

/* Bild-Seite */
.leistung-card__img {
    position: relative;
    overflow: hidden;
    min-height: 320px;
}

.leistung-card__img::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(18, 18, 22, 0.48);
    z-index: 2;
    transition: opacity 0.4s ease;
    pointer-events: none;
}

.leistung-card__img:hover::before {
    opacity: 0;
}

.leistung-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(15%);
    display: block;
    transition: transform 0.5s ease;
}

.leistung-card__img:hover img {
    transform: scale(1.04);
}

/* Text-Seite */
.leistung-card__content {
    background: #232327;
    padding: 40px 36px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.leistung-card__label {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: #c8282a;
    margin-bottom: 10px;
    display: block;
}

.leistung-card__content h2 {
    font-size: 1.7rem;
    font-weight: 900;
    color: #f5f5f5;
    margin: 0 0 14px;
    line-height: 1.1;
}

.leistung-card__content p {
    color: rgba(245, 245, 245, 0.68);
    font-size: 0.97rem;
    line-height: 1.6;
    margin: 0 0 20px;
}

.leistung-card__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.leistung-card__list li {
    font-size: 0.9rem;
    color: rgba(245, 245, 245, 0.8);
    padding-left: 20px;
    position: relative;
}

.leistung-card__list .arrow {
    position: absolute;
    left: 0;
    color: #c8282a;
    font-weight: 900;
}

/* CTA-Buttons am Ende der Card-Content-Area */
.leistung-card__actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 24px;
}

/* Reverse-Card: Bild ist rechts → rechte äußere Ecken abrunden.
   overflow:hidden clippt das Bild sauber auf den Radius. */

/* Erste Card: Bild ist links → oben-links und unten-links */
.leistung-card--first .leistung-card__img {
    border-radius: 18px 0 0 0;
}
.leistung-card--first .leistung-card__content {
    border-radius: 0 18px 0 0;
}

/* Letzte Card: Content ist rechts → unten-rechts */
.leistung-card--last .leistung-card__content {
    border-radius: 0 0 18px 0;
}
.leistung-card--last .leistung-card__img {
    border-radius: 0 0 0 18px;
}

/* Trennlinie zwischen Leistungs-Cards und Spezialisierungen */
.leistung-divider {
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.08) 30%,
        rgba(255, 255, 255, 0.08) 70%,
        transparent
    );
    margin: 12px 0 32px;
}

/* Mobile */
@media (max-width: 700px) {
    .leistung-card,
    .leistung-card--reverse {
        grid-template-columns: 1fr;
        border-radius: 18px;
        overflow: hidden;
        margin-bottom: 6px;
    }
    .leistung-card__img {
        height: 260px;
        min-height: unset;
    }
    .leistung-card__img img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .leistung-card__content {
        padding: 28px 22px;
    }

    /* Container übernimmt Clipping – alle Kindelemente auf 0 zurücksetzen */
    .leistung-card--first .leistung-card__img,
    .leistung-card--first .leistung-card__content,
    .leistung-card--last .leistung-card__img,
    .leistung-card--last .leistung-card__content,
    .leistung-card--reverse .leistung-card__img {
        border-radius: 0;
    }
}

/* =========================================================
   LEISTUNGEN – Spezialisierungen (spezi-grid / spezi-card)
========================================================= */
.spezi-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

/* Basis-Karte */
.spezi-card {
    border-radius: 18px;
    overflow: hidden;
}

/* Bildkarte (Brandschottung) */
.spezi-card--img {
    position: relative;
    min-height: 380px;
    display: flex;
    align-items: flex-end;
}

.spezi-card__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    filter: grayscale(20%) brightness(0.5);
}

.spezi-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.93) 0%,
        rgba(0, 0, 0, 0.5) 50%,
        rgba(0, 0, 0, 0.15) 100%
    );
}

.spezi-card__body {
    position: relative;
    z-index: 2;
    padding: 30px;
}

/* Dunkle Karte (Kernbohrungen) */
.spezi-card--dark {
    background: #232327;
    border: 1px solid rgba(255, 255, 255, 0.09);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 0;
}

.spezi-card--dark .spezi-card__body {
    padding: 36px 36px 0;
}

.spezi-card__footer {
    padding: 20px 36px 36px;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    margin-top: 24px;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

/* Badges */
.spezi-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: 12px;
}

.spezi-badge--filled {
    background: #c8282a;
    color: #fff;
}

.spezi-badge--outline {
    background: rgba(200, 40, 42, 0.12);
    color: #c8282a;
    border: 1px solid rgba(200, 40, 42, 0.3);
}

/* Überschriften in spezi-card */
.spezi-card h2 {
    font-size: 1.5rem;
    font-weight: 900;
    margin: 0 0 10px;
    line-height: 1.1;
}

.spezi-card--img h2 {
    color: #fff;
}
.spezi-card--dark h2 {
    color: #f5f5f5;
    margin-bottom: 12px;
}

/* Beschreibungstext */
.spezi-card p {
    font-size: 0.92rem;
    line-height: 1.55;
    margin: 0 0 16px;
}

.spezi-card--img p {
    color: rgba(255, 255, 255, 0.72);
}
.spezi-card--dark p {
    color: rgba(245, 245, 245, 0.65);
    line-height: 1.6;
    margin-bottom: 20px;
}

/* Listen */
.spezi-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.spezi-list li {
    font-size: 0.88rem;
    color: rgba(255, 255, 255, 0.82);
    padding-left: 18px;
    position: relative;
}

.spezi-list .arrow {
    position: absolute;
    left: 0;
    color: #c8282a;
    font-weight: 900;
}

/* Variante mit Trennlinien (Kernbohrungen) */
.spezi-list--lined li {
    font-size: 0.9rem;
    color: rgba(245, 245, 245, 0.8);
    padding-left: 20px;
    padding-bottom: 9px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    gap: 9px;
}

.spezi-list--lined li:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

@media (max-width: 700px) {
    .spezi-grid {
        grid-template-columns: 1fr;
    }
    .spezi-card--img {
        min-height: 280px;
    }
}

/* =========================================================
   LEISTUNGEN – Ablauf-Grid
========================================================= */
.ablauf-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.ablauf-card {
    padding: 28px 22px;
    background: rgba(24, 27, 31, 0.92);
    border-radius: 16px;
    border-top: 2px solid var(--accent);
    box-shadow:
        0 16px 48px rgba(0, 0, 0, 0.55),
        0 4px 14px rgba(0, 0, 0, 0.4);
    transition:
        transform 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease;
}

.ablauf-card:hover {
    transform: translateY(-4px);
    background: rgba(30, 33, 38, 0.96);
    box-shadow:
        0 24px 60px rgba(0, 0, 0, 0.65),
        0 6px 18px rgba(200, 40, 42, 0.14);
}

.ablauf-card__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(200, 40, 42, 0.12);
    color: #c8282a;
    font-weight: 900;
    font-size: 1.1rem;
    margin-bottom: 14px;
}

.ablauf-card h3 {
    font-size: 0.97rem;
    font-weight: 800;
    color: #f5f5f5;
    margin: 0 0 8px;
}

.ablauf-card p {
    font-size: 0.86rem;
    color: rgba(245, 245, 245, 0.65);
    line-height: 1.5;
    margin: 0;
}

@media (max-width: 800px) {
    .ablauf-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 480px) {
    .ablauf-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   LEISTUNGEN – CTA-Box
========================================================= */
.leistungen-cta {
    border: 1px solid rgba(200, 40, 42, 0.28);
    border-radius: 20px;
    padding: 48px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.leistungen-cta__glow {
    position: absolute;
    inset: 0;
    background: radial-gradient(
        600px 300px at 50% 0%,
        rgba(200, 40, 42, 0.1),
        transparent 65%
    );
    pointer-events: none;
}

.leistungen-cta__body {
    position: relative;
    z-index: 1;
}

.leistungen-cta h2 {
    font-size: clamp(1.5rem, 2.2vw, 2rem);
    font-weight: 900;
    color: #fff;
    margin: 0 0 12px;
}

.leistungen-cta p {
    color: rgba(245, 245, 245, 0.68);
    font-size: 1rem;
    max-width: 500px;
    margin: 0 auto 28px;
    line-height: 1.6;
}

.leistungen-cta__btns {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}

@media (max-width: 600px) {
    .leistungen-cta {
        padding: 32px 22px;
    }
}

/* =========================================================
   ÜBER MICH – CTA Section (Parallax)
========================================================= */
.uebermich-cta {
    text-align: center;
    max-width: 680px;
}

.uebermich-cta .eyebrow {
    display: block;
    margin-bottom: 14px;
}

.uebermich-cta__heading {
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    font-weight: 900;
    color: var(--text);
    margin: 0 0 16px;
    line-height: 1.12;
}

.uebermich-cta__heading .accent {
    color: var(--accent);
}

.uebermich-cta__text {
    color: var(--muted);
    font-size: 1rem;
    line-height: 1.65;
    margin: 0 0 32px;
}

.uebermich-cta__actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    justify-content: center;
}

/* =========================================================
   KONTAKT – neue Klassen (Inline-CSS ausgelagert)
========================================================= */

/* Hero-Buttons (war inline display:flex) */
.page-hero__actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 8px;
}

/* Rechte Info-Spalte im Kontaktbereich */
.contact-right-col {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* sub-Paragraf unter Panel-Headings */
.contact-panel .sub {
    margin-top: 8px;
}

/* tip-chip Absatz ohne Extra-Margin */
.tip-chip p {
    margin: 0;
}

/* Kleiner Button (Karte anzeigen) */
.btn--sm {
    display: inline-flex;
    font-size: 0.85rem;
    padding: 10px 18px;
}

/* WhatsApp-Icon in ci-item grün */
.wa-icon {
    color: #25d366;
}

/* ── Platforms CTA Strip ──────────────────────────────── */
.platforms-strip {
    background: #18181b;
    padding: 56px 0;
}

.platforms-strip__inner {
    text-align: center;
}

.platforms-strip__inner .eyebrow {
    display: block;
    margin-bottom: 14px;
}

.platforms-strip__heading {
    font-size: 1.5rem;
    font-weight: 900;
    color: var(--text);
    margin: 0 0 10px;
}

.platforms-strip__text {
    color: var(--muted);
    max-width: 520px;
    margin: 0 auto 36px;
    font-size: 0.95rem;
    line-height: 1.6;
}

.platforms-strip__actions {
    display: flex;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}

/* =========================================================
   LEGAL – AGB · Datenschutz · Impressum
========================================================= */
.legal-content {
    max-width: 760px;
    margin: 0 auto;
}

.legal-content h2 {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--text);
    margin: 48px 0 14px;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.legal-content h2:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

.legal-content h3 {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text);
    margin: 28px 0 10px;
}

.legal-content p {
    color: var(--muted);
    font-size: 0.97rem;
    line-height: 1.7;
    margin: 0 0 14px;
}

.legal-content ul,
.legal-content ol {
    color: var(--muted);
    font-size: 0.97rem;
    line-height: 1.7;
    margin: 0 0 14px;
    padding-left: 1.5em;
}

.legal-content li {
    margin-bottom: 6px;
}

.legal-content a {
    color: var(--accent);
    text-decoration: none;
}

.legal-content a:hover {
    text-decoration: underline;
}

.legal-content address {
    font-style: normal;
    color: var(--muted);
    font-size: 0.97rem;
    line-height: 1.8;
    margin: 0 0 14px;
}

.legal-meta {
    font-size: 0.82rem;
    color: rgba(245, 245, 245, 0.35);
    margin-bottom: 48px;
}

/* ── Footer Social Links ──────────────────────────────── */
.foot-social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.foot-social {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.04);
    color: rgba(232, 237, 242, 0.7);
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 600;
    transition:
        background 0.15s ease,
        border-color 0.15s ease,
        color 0.15s ease;
}

.foot-social:hover {
    background: rgba(255, 255, 255, 0.09);
    border-color: rgba(255, 255, 255, 0.2);
    color: var(--text);
}

.foot-social svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
    flex-shrink: 0;
}

/* =========================================================
   KONTAKT – Integriertes Layout (Map + Profile)
========================================================= */
.kontakt-info-section {
    background: #18181b;
    padding: 72px 0 80px;
    position: relative;
    z-index: 3;
}

.kontakt-info-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: rgba(255, 255, 255, 0.18);
    z-index: 10;
}

.kontakt-info-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 52px;
    align-items: start;
}

.kontakt-map-col {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.kontakt-map-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.kontakt-profiles-col {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-top: 8px;
}

.kontakt-profiles-heading {
    font-size: 1.4rem;
    font-weight: 900;
    color: var(--text);
    margin: 10px 0 14px;
}

.kontakt-profiles-text {
    color: var(--muted);
    font-size: 0.92rem;
    line-height: 1.6;
    margin: 0 0 24px;
}

.kontakt-profiles-links {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}

.kontakt-profile-btn {
    display: block;
    padding: 13px 18px;
    background: #232327;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 10px;
    color: var(--text);
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 700;
    transition:
        background 0.2s ease,
        border-color 0.2s ease,
        transform 0.2s ease;
}

.kontakt-profile-btn:hover {
    background: #2e2e33;
    border-color: rgba(255, 255, 255, 0.16);
    transform: translateX(4px);
}

@media (max-width: 860px) {
    .kontakt-info-grid {
        grid-template-columns: 1fr;
        gap: 36px;
    }
}

/* =========================================================
   KONTAKT – Google Maps Embed Section
========================================================= */
.section-map {
    background: #18181b;
    padding: 64px 0;
}

.section-map__inner {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.section-map__header {
    text-align: center;
}

.section-map__header h2 {
    font-size: clamp(1.5rem, 2vw, 2rem);
    font-weight: 900;
    color: var(--text);
    margin: 8px 0 0;
}

.section-map__frame {
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.07);
    box-shadow:
        0 4px 24px rgba(0, 0, 0, 0.6),
        0 1px 0 rgba(255, 255, 255, 0.06) inset;
}

.section-map__frame iframe {
    display: block;
    width: 100%;
    height: 420px;
}

.section-map__actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}
