:root {
    --wine:#6f001f;
    --wine2:#941436;
    --cream:#fff6e9;
    --gold:#f4b34e;
    --dark:#16080a;
    --glass:rgba(35,8,12,.78);
    --line:rgba(255,255,255,.16)
}

* {
    box-sizing:border-box
}

html {
    scroll-behavior:smooth
}

body {
    margin:0;
    font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;
    color:var(--cream);
    background:linear-gradient(rgba(22,8,10,.58),rgba(22,8,10,.75)),url('assets/img/banner-logo-background.png') center/cover fixed no-repeat;
    line-height:1.6
}

.wrap {
    width:min(1120px,92%);
    margin:auto
}

.site-header {
    position:fixed;
    z-index:50;
    top:0;
    left:0;
    right:0;
    background:rgba(18,6,8,.72);
    backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line)
}

.nav {
    height:78px;
    display:flex;
    align-items:center;
    justify-content:space-between
}

.brand img {
    height:58px;
    width:auto;
    object-fit:cover;
    object-position:center;
    border-radius:12px;
    box-shadow:0 8px 25px rgba(0,0,0,.35)
}

.nav-links {
    display:flex;
    gap:24px
}

.nav-links a,.footer a,.contact a {
    color:var(--cream);
    text-decoration:none
}

.nav-links a {
    font-weight:700;
    font-size:.94rem;
    opacity:.9
}

.nav-links a:hover {
    color:var(--gold)
}

.nav-toggle {
    display:none;
    background:transparent;
    color:white;
    border:0;
    font-size:2rem
}

.hero {
    min-height:100vh;
    display:grid;
    place-items:center;
    position:relative;
    overflow:hidden
}

.hero:before {
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle at center,rgba(148,20,54,.45),rgba(22,8,10,.75) 55%,rgba(22,8,10,.92));
    
}

.hero-content {
    position:relative;
    text-align:center;
    padding-top:80px
}

.eyebrow,.section-kicker {
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--gold);
    font-weight:900;
    font-size:.82rem
}

.h1 {
    
}

h1 {
    font-size:clamp(3rem,9vw,7.8rem);
    line-height:.92;
    margin:.18em auto;
    text-shadow:0 16px 36px rgba(0,0,0,.55);
    max-width:1050px
}

h2 {
    font-size:clamp(2rem,5vw,4.2rem);
    line-height:1;
    margin:.25em 0 .35em
}

h3 {
    font-size:1.35rem;
    margin:.25em 0 0
}

.hero-text,.section-lead {
    font-size:1.2rem;
    max-width:720px;
    margin:0 auto 32px;
    color:#ffe8d2
}

.hero-actions {
    display:flex;
    gap:14px;
    justify-content:center;
    flex-wrap:wrap
}

.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    padding:14px 24px;
    font-weight:900;
    text-decoration:none;
    border:1px solid transparent;
    cursor:pointer
}

.primary {
    background:linear-gradient(135deg,var(--wine),var(--wine2));
    color:white;
    box-shadow:0 12px 28px rgba(111,0,31,.42)
}

.ghost {
    color:white;
    border-color:var(--line);
    background:rgba(255,255,255,.08)
}

.section {
    padding:105px 0
}

.grid-2 {
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:28px;
    align-items:center
}

.card,.contact-form,.member-box,.person,.gallery-item,.stats div {
    background:var(--glass);
    border:1px solid var(--line);
    box-shadow:0 22px 50px rgba(0,0,0,.32);
    border-radius:28px
}

.card {
    padding:36px
}

.stats {
    display:grid;
    gap:18px
}

.stats div {
    padding:30px
}

.stats strong {
    display:block;
    font-size:2.2rem;
    color:white
}

.stats span {
    color:#f7d8bd
}

.people-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
    margin-top:28px
}

.teamleiter-grid{
    display:flex;
    justify-content:center;
    gap:18px;
    margin-top:18px;
    flex-wrap:wrap;
}

.person {
    padding:26px;
    transition:.25s
}
.person img{
    width:170px;
    height:170px;
    border-radius:50%;
    object-fit:cover;
    display:block;
    margin:0 auto 18px;
    border:4px solid var(--gold);
    box-shadow:0 10px 30px rgba(0,0,0,.35);
    transition:.3s;
}

.person:hover img{
    transform:scale(1.05);
}

.person:hover {
    transform:translateY(-6px);
    border-color:rgba(244,179,78,.65)
}

.person small {
    color:var(--gold);
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.1em
}

.member-box {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    padding:38px;
    background:linear-gradient(135deg,rgba(111,0,31,.92),rgba(32,8,10,.88))
}

.download {
    white-space:nowrap
}

.gallery-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
    margin-top:30px
}

.gallery-item {
    overflow:hidden;
    padding:0;
    position:relative;
    min-height:230px
}

.gallery-item img {
    width: 100%;
    height: 340px;
    object-fit: cover;
    display: block;
}

.gallery-item:hover img {
    transform:scale(1.06)
}

.gallery-caption {
    position:absolute;
    left:12px;
    right:12px;
    bottom:12px;
    background:rgba(22,8,10,.82);
    border:1px solid var(--line);
    border-radius:16px;
    padding:10px 12px;
    font-weight:900
}

.contact-form {
    padding:26px;
    display:grid;
    gap:16px
}

.contact-form label {
    display:grid;
    gap:7px;
    font-weight:800
}

input,textarea {
    width:100%;
    border:1px solid rgba(255,255,255,.2);
    border-radius:16px;
    background:rgba(255,255,255,.95);
    padding:14px;
    font:inherit;
    color:#18090a
}

.footer {
    background:rgba(18,6,8,.88);
    border-top:1px solid var(--line);
    padding:28px 0
}

.footer-inner {
    display:flex;
    justify-content:space-between;
    gap:18px;
    flex-wrap:wrap
}

.reveal {
    opacity:0;
    transform:translateY(24px);
    transition:.65s ease
}

.reveal.show {
    opacity:1;
    transform:none
}

@media(max-width:900px) {
    .nav-toggle {
        display:block
    }

    .nav-links {
        position:absolute;
        top:78px;
        left:0;
        right:0;
        display:none;
        flex-direction:column;
        background:rgba(18,6,8,.96);
        padding:22px 4%;
        border-bottom:1px solid var(--line)
    }

    .nav-links.open {
        display:flex
    }

    .grid-2,.people-grid {
        grid-template-columns:1fr
    }

    .gallery-grid {
        grid-template-columns:repeat(2,1fr)
    }

    .member-box {
        align-items:flex-start;
        flex-direction:column
    }

    h1 {
        font-size:clamp(3rem,14vw,5.2rem)
    }

    
}

@media(max-width:540px) {
    .gallery-grid {
        grid-template-columns:1fr
    }

    .brand img {
        width:120px
    }

    .section {
        padding:76px 0
    }

    .hero-text {
        font-size:1.05rem
    }

    
}


/* Rechtliches */

.legal-header {
    min-height: 280px;
    padding: 120px 8% 60px;
    text-align: center;
    background:radial-gradient(circle at center,rgba(148,20,54,.45),rgba(22,8,10,.75) 55%,rgba(22,8,10,.92));
}

.legal-header h2 {
    color: var(--gold);
    margin-top: 30px;
}

.back-link {
    color: #fff;
    text-decoration: none;
    font-weight: 700;
}

.back-link:hover {
    color: var(--gold);
}

.legal-page {
    width: min(1100px, 92%);
    margin: 70px auto;
}

.legal-box {
    background: rgba(20, 10, 8, 0.88);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 22px;
    padding: 36px;
    margin-bottom: 32px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .35);
}

.legal-box h2,
.legal-box h3 {
    color: var(--gold);
}

.legal-box p {
    line-height: 1.8;
}


/* Mobile Optimierung */

@media(max-width:900px) {
    body {
        background-attachment: scroll;
    }
}

@media(max-width:540px) {
    .brand img {
        height: 48px;
        width: auto;
        max-width: 140px;
        object-fit: contain;
    }

    .nav {
        height: 68px;
    }

    .nav-links {
        top: 68px;
    }

    .gallery-item img {
        height: 300px;
    }

    .gallery-caption {
        font-size: .9rem;
        padding: 8px 10px;
    }

    .person img {
        width: 135px;
        height: 135px;
    }

    .person {
        padding: 20px;
    }

    .hero-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .btn {
        width: 100%;
    }
}