
/* ============================================
   VEREIN.CSS - Responsive Layout
   Breakpoints: 600px | 1024px
   ============================================ */

.a_no_dekoration {
    text-decoration: none;
    color: #000000;
    transition: color 0.3s ease;
}

.a_no_dekoration:hover {
    text-decoration: none;
    color: #8f8604;
}

/* ===========================================
   HERO SECTION - Header Verein
   =========================================== */

.header-verein {
    background-color: #e5e2ba;
    min-height: calc(100vh - var(--header-height-estimate));
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1rem, 3vw, 3rem) 0; 
    scroll-margin-top: var(--header-height-estimate);
}

.header-verein h1 {
    color: var(--color-primary-dark); 
    font-size: var(--fs-h1);   
    margin-left: clamp(1rem, 5vw, 6rem);
    margin-bottom: 1rem;
    margin-top: 0;
    text-shadow: none;
}

#verein-anfang {
    display: flex;
    flex-direction: row;
    align-items: center; 
    gap: clamp(2rem, 10vw, 15rem);
    padding-left: clamp(1rem, 5vw, 6rem);
    padding-right: clamp(1rem, 2vw, 2rem);
}

.anfang-section {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-width: 700px;
}

.info-verein {
    color: var(--color-primary-dark); 
    font-weight: 600;
    text-align: left;
    line-height: 1.5;
    font-size: var(--fs-p);
    margin: 0;
    padding: 0;
}

.bild-gruendung {
    flex: 0 1 auto;
    width: clamp(200px, 40vw, 500px);
    height: auto;
    max-height: 50vh; 
    object-fit: contain; 
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    margin: 0;
}


/* ===========================================
   VORSTAND SECTION
   =========================================== */

.vorstand_h2 {
    background-color: var(--color-primary-light);
    margin-top: 1rem;
    padding: clamp(1rem, 2vw, 2rem);
    color: var(--color-black);
}

#about {
    display: flex;
    flex-direction: column;
    background-color: var(--color-primary-light);
    padding-bottom: 2rem;
}

.vorstand-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 350px), 1fr));
    gap: clamp(1rem, 2vw, 2rem);
    padding: clamp(0.5rem, 2vw, 2rem);
    justify-content: center; 
}

.vorstand-item {
    display: flex;
    flex-direction: row; 
    align-items: center;
    background-color: var(--color-white);
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05); 
    transition: all 0.3s ease;
    overflow: hidden;
    max-width: 600px; 
    width: 100%;
    margin: 0 auto;
}

@media (hover: hover) {
    .vorstand-item:hover {
        transform: translateY(-5px); 
        box-shadow: 0 15px 35px rgba(0,0,0,0.1);
    }
}

.vorstand_img_container {
    width: 35%;
    min-width: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(0.75rem, 2vw, 1.5rem);
}

.vorstand_img {
    width: clamp(5rem, 10vw, 8rem);
    height: clamp(7.5rem, 15vw, 12rem);
    object-fit: cover;
    border-radius: 4px;
    border: 3px solid var(--color-olive-dark); 
}

.vorstand_text {
    width: 65%;
    text-align: left;
    padding: clamp(0.75rem, 2vw, 1.5rem);
    padding-left: 0;
    line-height: 1.5;
}

.vorstand_text p {
    margin: 0;
    font-size: clamp(0.85rem, 1vw, 1rem);
    color: var(--color-primary-dark);
}


/* ===========================================
   GEBÜHREN / MITGLIEDSCHAFT SECTION
   =========================================== */

#gebuehren {
    margin-top: 1rem;
    background-color: #f4f4f4;
    padding: clamp(1rem, 3vw, 2rem);
}

.h3_mitgliedschaft {
    text-align: left;
    padding: clamp(1rem, 2vw, 2rem) 0;
    margin: 0;
}

.grid-container_mitgliedschaft {
    display: grid;
    grid-template-columns: 1fr 2fr 2fr;
    gap: 2px;
    margin-bottom: 0.5rem;
}

.grid-container_mitgliedschaft div {
    min-height: 3rem;
    display: flex;
    align-items: center;
}

.grid-container_gastkarten {
    display: grid;
    grid-template-columns: repeat(2, 1fr); 
    gap: 2px;
    margin-bottom: 2rem;
    background-color: #f4f4f4;
}

.grid-container_gastkarten div {
    min-height: 3.5rem;
    display: flex;
    align-items: center;
}

.grid-container_preis {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2px;
    margin: 1.5rem 0;
}

.grid-container_preis div {
    min-height: 3.5rem;
    display: flex;
    align-items: center;
}

.head_ausgabe,
.head_info,
.head_tank,
.head_kanal,
.head_karte,
.head_tankumsee,
.head_elbeseitenkanal,
.head_mitglied,
.head_aufnahmegebühren,
.head_jahresbeitrag {
    font-weight: 700;
    color: #000000;
    background-color: #e6d9cf;
    padding: clamp(0.5rem, 1vw, 0.8rem) clamp(0.5rem, 1.5vw, 1rem);
    border: clamp(3px, 0.5vw, 6px) solid #806b59;
    margin: 0.5rem 0;
    font-size: clamp(0.75rem, 1.2vw, 1rem);
}

.col_ausgabe,
.col_info,
.col_tank,
.col_kanal,
.col_karte,
.col_preis,
.col_erhalt,
.col_mitglied,
.col_aufnahme,
.col_beitrag {
    font-weight: 600;
    color: #000000;
    padding: clamp(0.5rem, 1vw, 0.8rem) clamp(0.5rem, 1.5vw, 1rem);
    border: clamp(1px, 0.3vw, 3px) solid #806b59;
    background-color: white;
    font-size: clamp(0.75rem, 1.2vw, 1rem);
}

.anmerkung {
    padding: clamp(1rem, 2vw, 2rem);
    font-weight: 600;
    line-height: 1.5;
    background-color: #f4f4f4;
    text-align: justify;
    font-size: clamp(0.85rem, 1.5vw, 1.1rem);
}

#gast {
    margin-top: 2rem;
}

.h5_preis {
    padding-left: clamp(1rem, 3vw, 4rem);
    color: #333;
    font-weight: 800;
}

/* ===========================================
   HINWEIS BOX
   =========================================== */

.hinweis {
    background-color: #d7dcdf;
    padding: clamp(1rem, 2vw, 2rem);
    margin: 1rem;
    border-radius: 8px;
}

.h4_wichtiger_hinweis {
    padding: 1rem 0;
    color: #c41e3a;
    font-weight: 800;
}

.hinweis p {
    font-weight: 600;
    text-align: justify;
    line-height: 1.5;
    margin: 0;
    font-size: clamp(0.9rem, 1.2vw, 1rem);
}


/* ===========================================
   BEITRITTSERKLÄRUNG SECTION
   =========================================== */

#beitrittserklaerung {
    padding-top: 0.5rem;
    margin: 0 1rem;
}

.beitritt {
    width: 100%;
    background-color: #f4f4f4;
    padding: clamp(1rem, 2vw, 2rem) 0;
}

.beitritt h3 {
    padding: clamp(0.5rem, 1vw, 1rem) clamp(1rem, 2vw, 2rem);
    font-weight: 800;
    color: #0f0f79;
    margin: 0;
}

.beitritt p {
    padding: 0.5rem clamp(1rem, 2vw, 2rem);
    text-align: justify;
    line-height: 1.5;
    margin: 0;
    font-size: clamp(0.9rem, 1.2vw, 1rem);
}

.btn-download {
    display: inline-block;
    margin: 1rem clamp(1rem, 2vw, 2rem);
    padding: 0.75rem 1.5rem;
    background-color: var(--color-olive-dark);
    color: var(--color-white);
    text-decoration: none;
    border-radius: 6px;
    font-weight: 700;
    font-size: var(--fs-p);
    transition: background-color 0.3s ease, transform 0.2s ease;
    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}

.btn-download:hover {
    background-color: var(--color-brown-medium);
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(0,0,0,0.25);
}

/* ===========================================
   RESPONSIVE MEDIA QUERIES
   Mobile First Approach
   =========================================== */

/* MOBILE: bis 600px */
@media screen and (max-width: 600px) {
    
    #verein-anfang {
        flex-direction: column-reverse;
        gap: 1.5rem;
        padding: 1rem;
    }
    
    .anfang-section {
        width: 100%;
    }
    
    .bild-gruendung {
        width: 90%;
        max-width: 400px;
        margin: 0 auto;
    }
    
    /* Vorstand Cards vertikal */
    .vorstand-item {
        flex-direction: column;
        max-width: 320px;
    }
    
    .vorstand_img_container {
        width: 100%;
        padding: 1.5rem 1.5rem 0.5rem;
    }
    
    .vorstand_text {
        width: 100%;
        padding: 1rem 1.5rem 1.5rem;
        text-align: center;
    }
    
    /* Grid Tabellen anpassen */
    .grid-container_mitgliedschaft {
        grid-template-columns: 1fr 1fr 1fr;
        font-size: 0.8rem;
    }
}

/* TABLET: 601px - 1024px */
@media screen and (min-width: 601px) and (max-width: 1024px) {
    
    #verein-anfang {
        flex-direction: column-reverse;
        gap: 2rem;
        padding-left: clamp(1rem, 5vw, 6rem);
        padding-right: clamp(1rem, 5vw, 6rem);
    }
    
    .anfang-section {
        width: 100%;
        max-width: none;
    }
    
    .bild-gruendung {
        width: 70%;
        max-width: 450px;
    }
}

/* DESKTOP: ab 1025px */
@media screen and (min-width: 1025px) {
    
    #verein-anfang {
        flex-direction: row;
    }
    
    .anfang-section {
        flex: 1;
    }
    
    .bild-gruendung {
        flex: 0 0 auto;
    }
    
    .info-verein {
        font-size: 1.1rem;
        line-height: 1.6;
    }
    
    .anmerkung {
        font-size: 1.1rem;
        line-height: 1.6;
    }
    
    .vorstand_text {
        line-height: 1.6;
    }
}
  