/* Globale Stile und Reset */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box; /* Wichtig für konsistente Breiten- und Höhenberechnungen */
}

html {
    scroll-behavior: smooth; /* Sanftes Scrollen bei Ankern */
}

body {
    font-family: 'Arial', 'Helvetica Neue', Helvetica, sans-serif; /* Gut lesbare serifenlose Schrift für Fließtext */
    line-height: 1.6;
    color: #333; /* Dunkelgrau für guten Kontrast */
    background-color: #f4f4f4; /* Leichter Hintergrund */
}

/* Container für Inhaltsbreite */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px; /* Innenabstand an den Seiten */
}

/* Link-Stile */
a {
    color: #CC0000; /* Vereinsfarbe Rot für Links */
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

/* Button-Stile */
.button {
    display: inline-block;
    background-color: #CC0000; /* Vereinsfarbe Rot */
    color: #FFFFFF; /* Weiß */
    padding: 10px 15px;
    border-radius: 5px;
    transition: background-color 0.3s ease;
    text-decoration: none;
    border: none;
    cursor: pointer;
}

.button:hover {
    background-color: #AA0000; /* Etwas dunkleres Rot beim Hover */
}


/* Header Styling */
.main-header {
    background-color: #FFFFFF; /* Weißer Hintergrund */
    color: #CC0000; /* Rote Schrift für den Header */
    padding: 15px 0;
    border-bottom: 3px solid #CC0000; /* Roter Unterstrich */
    text-align: center;
}

.header-content {
    display: flex;
    justify-content: space-between; /* Logo links, Name zentriert, Button rechts */
    align-items: center;
    flex-wrap: wrap; /* Erlaubt Umbruch auf kleinen Bildschirmen */
}

.main-header .logo img {
    max-height: 80px; /* Mittelgroßer Header */
    width: auto;
    display: block; /* Entfernt zusätzlichen Platz unter dem Bild */
}

.main-header h1 {
    font-family: 'Montserrat', 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif; /* Serifenlose Schrift für Überschriften */
    font-size: 2.5em; /* Groß genug für den Vereinsnamen */
    flex-grow: 1; /* Nimmt verfügbaren Platz ein, um zentriert zu wirken */
    text-align: center;
    margin: 0; /* Standard-Margin entfernen */
}

/* Burger-Menü-Button (nur auf Mobilgeräten sichtbar) */
.menu-toggle {
    display: none; /* Standardmäßig versteckt auf Desktops */
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 10px;
    position: relative;
    z-index: 1001; /* Über der Navigation */
}

.menu-toggle .bar {
    display: block;
    width: 25px;
    height: 3px;
    background-color: #CC0000; /* Rote Striche */
    margin: 5px auto;
    transition: all 0.3s ease-in-out;
}

/* Navigation Styling (Desktop) */
.main-nav {
    background-color: #CC0000; /* Roter Hintergrund für Navigation */
    padding: 10px 0;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.nav-list {
    list-style: none;
    display: flex;
    justify-content: center; /* Navigationspunkte zentrieren */
    flex-wrap: wrap; /* Erlaubt Umbruch auf kleineren Bildschirmen */
}

.nav-list li {
    margin: 0 15px;
}

.nav-list a {
    color: #FFFFFF; /* Weiße Schrift */
    text-decoration: none;
    font-weight: bold;
    padding: 5px 0;
    display: block;
    transition: color 0.3s ease;
}

.nav-list a:hover,
.nav-list a.active {
    color: #FFDDC2; /* Leichterer Weißton oder Hellrot beim Hover/Aktive */
    /* text-decoration: underline; */
}

/* Hauptinhaltsbereich */
.main-content {
    padding: 40px 0;
    background-color: #FFFFFF; /* Weißer Hintergrund für den Inhalt */
    margin-top: 20px;
    border-radius: 8px;
    box-shadow: 0 0 10px rgba(0,0,0,0.05);
}

.main-content section {
    margin-bottom: 40px;
    padding: 20px;
    border-bottom: 1px solid #eee; /* Trennlinie zwischen Sektionen */
}

.main-content section:last-child {
    border-bottom: none; /* Keine Linie nach der letzten Sektion */
    margin-bottom: 0;
}

h2 {
    font-family: 'Montserrat', 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif; /* Serifenlose Schrift für Überschriften */
    color: #CC0000; /* Rote Überschriften */
    font-size: 2em;
    margin-bottom: 20px;
    text-align: center;
}

h3 {
    font-family: 'Montserrat', 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
    color: #333;
    font-size: 1.5em;
    margin-bottom: 10px;
}

p {
    margin-bottom: 15px;
}

/* Spielplanübersicht */
.fixture-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); /* Responsives Grid */
    gap: 20px;
    margin-top: 20px;
}

.fixture-item {
    background-color: #f9f9f9;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.fixture-item.upcoming {
    border-color: #007BFF; /* Blau für kommende Spiele */
}

.fixture-item.past {
    border-color: #28A745; /* Grün für vergangene Spiele */
}

.fixture-item h3 {
    color: #CC0000;
    margin-top: 0;
}

.all-fixtures-link, .all-news-link {
    text-align: center;
    margin-top: 30px;
    font-weight: bold;
}

/* Nachrichten Highlights */
.news-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
}

.news-item {
    background-color: #f9f9f9;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    text-align: left;
}

.news-item h3 {
    margin-top: 0;
    color: #CC0000;
}


/* Footer Styling */
.main-footer {
    background-color: #333; /* Dunkler Hintergrund */
    color: #FFFFFF; /* Weiße Schrift */
    text-align: center;
    padding: 20px 0;
    margin-top: 40px;
    font-size: 0.9em;
}

.main-footer a {
    color: #FFFFFF;
    margin: 0 5px;
}

.main-footer a:hover {
    text-decoration: underline;
}

/* ======================================= */
/* MEDIA QUERIES für Responsives Design */
/* ======================================= */

@media (max-width: 768px) {
    /* Header Anpassung */
    .main-header h1 {
        font-size: 1.8em;
        order: 2; /* Vereinsname in der Mitte */
        flex-basis: 100%; /* Nimmt volle Breite ein */
        margin-top: 10px;
    }

    .header-content {
        justify-content: space-between;
        align-items: center;
    }

    .main-header .logo {
        order: 1; /* Logo links */
    }

    .menu-toggle {
        display: block; /* Burger-Menü auf kleinen Bildschirmen anzeigen */
        order: 3; /* Burger-Menü rechts */
    }

    /* Navigation Anpassung */
    .main-nav {
        background-color: #CC0000; /* Hintergrund bleibt rot */
        padding: 0; /* Padding entfernen */
        position: absolute; /* Position absolut, damit es über dem Inhalt liegt */
        width: 100%;
        top: 120px; /* Unter dem Header, muss ggf. angepasst werden */
        left: 0;
        transform: translateY(-100%); /* Initial nach oben außerhalb des Viewports verschieben */
        transition: transform 0.3s ease-in-out;
        z-index: 1000; /* Über dem Inhalt */
        box-shadow: 0 5px 10px rgba(0,0,0,0.2);
    }

    /* Diese Klasse wird später via JavaScript hinzugefügt/entfernt */
    .main-nav.active {
        transform: translateY(0); /* Zeigt die Navigation an */
    }

    .nav-list {
        flex-direction: column; /* Menüpunkte untereinander */
        padding: 20px 0;
        text-align: center;
    }

    .nav-list li {
        margin: 10px 0; /* Vertikaler Abstand */
    }

    .nav-list a {
        font-size: 1.2em;
        padding: 10px 0;
    }

    /* Hauptinhalt */
    .main-content {
        padding: 20px 0;
        margin-top: 10px;
    }

    .main-content section {
        padding: 15px;
    }

    h2 {
        font-size: 1.7em;
    }

    h3 {
        font-size: 1.3em;
    }
}

@media (max-width: 480px) {
    .main-header h1 {
        font-size: 1.5em;
    }
    .main-header .logo img {
        max-height: 60px;
    }
    .container {
        padding: 0 15px;
    }
}
/* ======================================= */
/* Galerie Sektion */
/* ======================================= */
.gallery-section {
    text-align: center;
}

.gallery-section p {
    max-width: 800px;
    margin: 0 auto 30px auto; /* Zentriert den Text und gibt Abstand nach unten */
}

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); /* Responsives Grid */
    gap: 25px; /* Abstand zwischen den Bildern */
    margin-top: 30px;
}

.gallery-item {
    background-color: #fdfdfd;
    border: 1px solid #eee;
    border-radius: 8px;
    overflow: hidden; /* Stellt sicher, dass das Bild innerhalb des Radius bleibt */
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

.gallery-item:hover {
    transform: translateY(-5px); /* Leichter Schwebe-Effekt beim Hover */
    box-shadow: 0 6px 12px rgba(0,0,0,0.15);
}

.gallery-item img {
    width: 100%; /* Bild füllt die Breite des Containers */
    height: 200px; /* Feste Höhe für alle Bilder */
    object-fit: cover; /* Schneidet Bilder bei Bedarf zu, um die Höhe zu füllen */
    display: block; /* Entfernt zusätzlichen Platz unter dem Bild */
    transition: transform 0.3s ease;
}

.gallery-item img:hover {
    transform: scale(1.05); /* Leichter Zoom-Effekt beim Hover über das Bild */
}

.image-caption {
    padding: 15px;
    font-size: 0.9em;
    color: #555;
    background-color: #f4f4f4;
    border-top: 1px solid #eee;
    margin-top: 0; /* Entfernt Standard-Margin */
}

/* Anpassungen für kleinere Bildschirme innerhalb der Galerie */
@media (max-width: 600px) {
    .gallery-grid {
        grid-template-columns: 1fr; /* Eine Spalte auf sehr kleinen Bildschirmen */
        gap: 20px;
    }

    .gallery-item img {
        height: 250px; /* Etwas höhere Bilder auf kleinen Bildschirmen */
    }
}

/* ======================================= */
/* Über uns Sektionen */
/* ======================================= */
.about-us-hero {
    text-align: center;
    margin-bottom: 40px;
    padding: 30px;
    background-color: #f9f9f9;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}

.about-us-hero h2 {
    font-size: 2.5em;
    margin-bottom: 15px;
    color: #CC0000;
}

.about-us-hero p {
    font-size: 1.1em;
    max-width: 900px;
    margin: 0 auto 30px auto;
}

.hero-image {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    margin-top: 20px;
}

/* Allgemeine Stile für Inhaltsblöcke */
.content-block {
    background-color: #FFFFFF;
    padding: 30px;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    margin-bottom: 30px;
}

.content-block h3 {
    text-align: center;
    margin-bottom: 25px;
    font-size: 2em;
    color: #CC0000;
}

.story-text {
    max-width: 800px;
    margin: 0 auto;
    text-align: justify; /* Text im Blocksatz */
}

/* Leitbild Grid */
.mission-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 25px;
    margin-top: 20px;
    text-align: center;
}

.mission-item {
    background-color: #fcfcfc;
    border: 1px solid #eee;
    border-radius: 6px;
    padding: 20px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.03);
    transition: transform 0.2s ease;
}

.mission-item:hover {
    transform: translateY(-3px);
}

.mission-item h4 {
    color: #CC0000;
    margin-bottom: 10px;
    font-size: 1.3em;
}

/* Vorstand Grid */
.board-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 30px;
    margin-top: 20px;
    text-align: center;
}

.board-member {
    background-color: #fdfdfd;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.board-member img {
    width: 120px; /* Feste Größe für Profilbilder */
    height: 120px;
    border-radius: 50%; /* Rundes Bild */
    object-fit: cover;
    margin-bottom: 15px;
    border: 3px solid #CC0000; /* Roter Rahmen */
}

.board-member h4 {
    color: #333;
    margin-bottom: 5px;
    font-size: 1.2em;
}

.board-member p {
    font-size: 0.9em;
    color: #555;
    margin-bottom: 5px;
}

/* Anlagen Sektion */
.facilities-section {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 30px;
    margin-top: 20px;
}

.facility-item {
    background-color: #fdfdfd;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding-bottom: 20px; /* Padding unten für Text */
    text-align: center;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    overflow: hidden; /* Für abgerundete Ecken des Bildes */
}

.facility-item img {
    width: 100%;
    height: 180px; /* Feste Höhe für Anlagenbilder */
    object-fit: cover;
    margin-bottom: 15px;
    border-top-left-radius: 8px; /* Obere Ecken abrunden */
    border-top-right-radius: 8px;
}

.facility-item h4 {
    color: #CC0000;
    margin-bottom: 10px;
    padding: 0 15px; /* Innenabstand für Text */
}

.facility-item p {
    font-size: 0.95em;
    color: #555;
    padding: 0 15px;
}

/* Media Queries für Responsivität */
@media (max-width: 768px) {
    .about-us-hero h2 {
        font-size: 2em;
    }

    .content-block h3 {
        font-size: 1.8em;
    }

    .story-text {
        text-align: left; /* Auf kleinen Bildschirmen Blocksatz vermeiden */
    }

    .mission-grid, .board-grid, .facilities-section {
        grid-template-columns: 1fr; /* Eine Spalte auf kleineren Bildschirmen */
    }

    .board-member img {
        width: 100px;
        height: 100px;
    }

    .facility-item img {
        height: 200px;
    }
}


/* ======================================= */
/* Mannschaften Sektion /
/ ======================================= */
.teams-overview {
text-align: center;
}


.teams-overview p {
max-width: 800px;
margin: 0 auto 40px auto;
font-size: 1.1em;
}


.team-category {
margin-bottom: 50px;
padding: 30px;
background-color: #f9f9f9;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}


.team-category:last-child {
margin-bottom: 0;
}


.team-category h3 {
font-size: 2.2em;
color: #CC0000;
margin-bottom: 30px;
border-bottom: 2px solid #EEE; /* Dezente Trennlinie */
padding-bottom: 15px;
}


.team-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); /* Responsives Grid /
gap: 30px; / Abstand zwischen den Mannschaftskarten */
margin-top: 20px;
}


.team-card {
background-color: #FFFFFF;
border: 1px solid #ddd;
border-radius: 8px;
overflow: hidden; /* Für abgerundete Ecken des Bildes */
box-shadow: 0 4px 10px rgba(0,0,0,0.08);
transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
text-align: center;
}


.team-card:hover {
transform: translateY(-5px);
box-shadow: 0 6px 15px rgba(0,0,0,0.12);
}


.team-card img {
width: 100%;
height: 200px; /* Feste Höhe für Mannschaftsfotos /
object-fit: cover; / Bilder anpassen, ohne Verzerrung /
display: block;
margin-bottom: 15px;
border-bottom: 3px solid #CC0000; / Roter Streifen unter dem Bild */
}


.team-card h4 {
color: #CC0000;
font-size: 1.6em;
margin-bottom: 10px;
padding: 0 15px;
}


.team-card p {
font-size: 1em;
color: #555;
margin-bottom: 8px;
padding: 0 15px;
}


.team-card .button {
margin-top: 15px;
margin-bottom: 20px; /* Abstand nach unten für den Button */
}


/* Media Queries für Responsivität */
@media (max-width: 768px) {
.team-category h3 {
font-size: 1.8em;
}



.team-grid {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); /* Etwas kleinere Min-Breite auf Tablets */
    gap: 20px;
}

.team-card img {
    height: 180px;
}

}


@media (max-width: 480px) {
.team-grid {
grid-template-columns: 1fr; /* Eine Spalte auf Smartphones */
}


.team-card img {
    height: 220px; /* Bilder etwas höher auf Smartphones */
}

}

/* ======================================= */
/* Aktuelles Sektion /
/ ======================================= */
.news-list-section {
text-align: center;
}


.news-list-section p {
max-width: 800px;
margin: 0 auto 40px auto;
font-size: 1.1em;
}


.news-list {
display: grid;
grid-template-columns: 1fr; /* Standardmäßig eine Spalte /
gap: 40px; / Abstand zwischen den Nachrichtenartikeln */
margin-top: 30px;
}


.news-article {
background-color: #FFFFFF;
border: 1px solid #ddd;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 4px 15px rgba(0,0,0,0.1);
display: flex; /* Für Bild und Text nebeneinander auf größeren Screens /
flex-direction: column; / Standardmäßig Bild oben, Text unten */
text-align: left;
transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}


.news-article:hover {
transform: translateY(-5px);
box-shadow: 0 6px 20px rgba(0,0,0,0.15);
}


.news-article img {
width: 100%;
height: 250px; /* Feste Höhe für News-Bilder /
object-fit: cover;
display: block;
border-bottom: 3px solid #CC0000; / Roter Trennstrich */
}


.news-content {
padding: 25px;
flex-grow: 1; /* Nimmt den restlichen Platz ein */
display: flex;
flex-direction: column;
}


.news-content h3 {
color: #CC0000;
font-size: 1.8em;
margin-top: 0;
margin-bottom: 10px;
}


.news-meta {
font-size: 0.9em;
color: #888;
margin-bottom: 15px;
}


.news-meta .category {
font-weight: bold;
color: #555;
}


.news-content p {
color: #444;
margin-bottom: 20px;
line-height: 1.6;
}


.news-content .button {
align-self: flex-start; /* Button linksbündig /
margin-top: auto; / Sorgt dafür, dass der Button unten ist */
}


/* Paginierung /
.pagination {
margin-top: 50px;
text-align: center;
display: flex;
justify-content: center;
flex-wrap: wrap; / Bei Bedarf umbrechen */
gap: 10px;
}


.pagination .button {
background-color: #e0e0e0;
color: #333;
padding: 10px 18px;
border-radius: 5px;
text-decoration: none;
transition: background-color 0.3s ease, color 0.3s ease;
border: 1px solid #ccc;
}


.pagination .button:hover:not(.active):not(.inactive) {
background-color: #d0d0d0;
color: #000;
}


.pagination .button.active {
background-color: #CC0000;
color: #FFFFFF;
border-color: #CC0000;
cursor: default;
}


.pagination .button.inactive {
background-color: #f0f0f0;
color: #aaa;
border-color: #e0e0e0;
cursor: not-allowed;
}


/* Media Queries für Responsivität /
@media (min-width: 768px) {
.news-article {
flex-direction: row; / Bild und Text nebeneinander /
height: 250px; / Feste Höhe für Artikel auf Desktops */
}
.news-article img {
    width: 35%; /* Bild nimmt 35% der Breite ein */
    height: 100%;
    border-right: 3px solid #CC0000; /* Roter Trennstrich rechts */
    border-bottom: none; /* Unteren Strich entfernen */
}

.news-content {
    width: 65%; /* Text nimmt 65% der Breite ein */
    padding-left: 30px;
    padding-right: 25px;
}

}


@media (max-width: 767px) {
.news-list {
gap: 30px;
}
.news-article img {
height: 200px; /* Etwas kleineres Bild auf Smartphones /
}
.news-content h3 {
font-size: 1.6em;
}
.news-content .button {
align-self: center; / Button zentrieren auf kleinen Screens */
}
}


/* ======================================= */
/* Spielplan & Ergebnisse Sektion /
/ ======================================= */

.fixtures-results-section {
text-align: center;
}


.fixtures-results-section > p {
max-width: 800px;
margin: 0 auto 40px auto;
font-size: 1.1em;
}


/* Tab-Navigation für Mannschaften /
.team-tabs {
display: flex;
flex-wrap: wrap; / Ermöglicht Umbruch der Buttons /
justify-content: center;
margin-bottom: 30px;
gap: 10px; / Abstand zwischen den Buttons */
border-bottom: 2px solid #CC0000;
padding-bottom: 10px;
}


.tab-button {
background-color: #f0f0f0;
color: #333;
border: 1px solid #ccc;
padding: 10px 20px;
cursor: pointer;
font-size: 1em;
border-radius: 5px;
transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}


.tab-button:hover:not(.active) {
background-color: #e0e0e0;
color: #000;
}


.tab-button.active {
background-color: #CC0000;
color: #FFFFFF;
border-color: #CC0000;
cursor: default;
}


/* Inhaltsbereiche der Tabs (Spielpläne) */
.team-schedule {
background-color: #FFFFFF;
padding: 30px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
margin-bottom: 30px;
}


.team-schedule h3 {
text-align: center;
color: #CC0000;
font-size: 2em;
margin-bottom: 25px;
}


/* Tabelle für Spielpläne /
.table-responsive {
overflow-x: auto; / Ermöglicht horizontales Scrollen auf kleinen Bildschirmen /
-webkit-overflow-scrolling: touch; / Besseres Scrollen auf iOS */
}


table {
width: 100%;
border-collapse: collapse; /* Keine doppelten Rahmen */
margin-bottom: 20px;
background-color: #fdfdfd;
}


th, td {
padding: 12px 15px;
text-align: left;
border-bottom: 1px solid #eee;
vertical-align: middle;
}


thead th {
background-color: #CC0000;
color: #FFFFFF;
font-weight: bold;
text-transform: uppercase;
font-size: 0.9em;
position: sticky; /* Sticky Header für Tabellen (optional) */
top: 0;
}


tbody tr:nth-child(even) {
background-color: #f9f9f9; /* Zebra-Streifen für bessere Lesbarkeit */
}


tbody tr:hover {
background-color: #f2f2f2;
}


/* Spezifisches Styling für Spieltypen /
.upcoming-match {
color: #007BFF; / Blau für kommende Spiele */
font-weight: bold;
}


.past-match.won {
color: #28A745; /* Grün für Sieg */
}


.past-match.draw {
color: #FFC107; /* Gelb/Orange für Unentschieden */
}


.past-match.lost {
color: #DC3545; /* Rot für Niederlage */
}


.upcoming-match td:nth-child(5) { /* Ergebnisspalte bei kommenden Spielen */
font-style: italic;
color: #777;
}


/* Tabellen-Link für Tabellenstände */
.standings-link {
margin-top: 40px;
padding-top: 20px;
border-top: 1px solid #eee;
text-align: center;
}


.standings-link p {
font-size: 1.1em;
margin-bottom: 15px;
}


/* Tabs: Initial alle Tab-Inhalte verstecken, außer dem aktiven (mit JS umschalten) */
.tab-content {
display: none;
}


.tab-content.active {
display: block;
}


/* Media Queries für Responsivität /
@media (max-width: 768px) {
.team-tabs {
flex-direction: column; / Buttons untereinander auf kleinen Bildschirmen /
align-items: stretch; / Buttons volle Breite */
border-bottom: none;
padding-bottom: 0;
gap: 5px;
}


.tab-button {
    border-radius: 0; /* Keine runden Ecken, wenn Buttons untereinander sind */
    border-bottom: none;
}
.tab-button:last-of-type {
    border-bottom: 1px solid #ccc;
}

.team-schedule {
    padding: 15px;
}

.team-schedule h3 {
    font-size: 1.8em;
}

th, td {
    padding: 10px 8px; /* Weniger Padding in Tabellen auf kleinen Bildschirmen */
    font-size: 0.9em;
}

}


/* ======================================= */

/* Sponsoren Sektion /
/ ======================================= */
.sponsors-hero {
text-align: center;
margin-bottom: 40px;
padding: 30px;
background-color: #f9f9f9;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}


.sponsors-hero h2 {
font-size: 2.5em;
margin-bottom: 15px;
color: #CC0000;
}


.sponsors-hero p {
font-size: 1.1em;
max-width: 900px;
margin: 0 auto 30px auto;
}


.sponsor-category {
margin-bottom: 50px;
}


.sponsor-category h3 {
text-align: center;
font-size: 2.2em;
color: #333; /* Dunkler für Sponsoren-Kategorien /
margin-bottom: 25px;
border-bottom: 2px solid #CC0000; / Roter Unterstrich */
padding-bottom: 15px;
}


.sponsor-category p {
text-align: center;
max-width: 700px;
margin: 0 auto 30px auto;
font-size: 1em;
color: #555;
}


.sponsor-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); /* Standard-Grid für Sponsoren /
gap: 30px;
margin-top: 20px;
justify-items: center; / Zentriert die Sponsor-Items im Grid /
align-items: center; / Zentriert vertikal */
}


.sponsor-item {
text-align: center;
padding: 15px;
background-color: #fcfcfc;
border: 1px solid #eee;
border-radius: 8px;
box-shadow: 0 2px 5px rgba(0,0,0,0.05);
transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
display: flex; /* Für vertikale Zentrierung des Logos /
flex-direction: column;
justify-content: center;
align-items: center;
min-height: 150px; / Mindesthöhe für einheitlichere Boxen */
}


.sponsor-item:hover {
transform: translateY(-5px);
box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}


.sponsor-item img {
max-width: 100%;
height: auto; /* Höhe automatisch anpassen /
max-height: 80px; / Standard maximale Höhe für Logos /
object-fit: contain; / Bild wird skaliert, sodass es in den Container passt, ohne beschnitten zu werden */
transition: transform 0.3s ease;
}


.sponsor-item img:hover {
transform: scale(1.05);
}


.sponsor-name {
margin-top: 10px;
font-size: 0.9em;
color: #666;
font-weight: bold;
}


/* Spezifische Größen für Sponsoren-Kategorien /
.large-logos .sponsor-item img {
max-height: 120px; / Größer für Hauptsponsoren */
}


.medium-logos .sponsor-item img {
max-height: 90px; /* Mittel für Premium-Partner */
}


.small-logos .sponsor-item img {
max-height: 60px; /* Kleiner für Unterstützer */
}


/* Werden Sie Sponsor Sektion /
.become-sponsor-section {
text-align: center;
margin-top: 60px;
padding: 40px;
background-color: #f4f4f4;
border-radius: 8px;
box-shadow: 0 4px 15px rgba(0,0,0,0.1);
border: 2px dashed #CC0000; / Gestrichelter roter Rahmen als Eyecatcher */
}


.become-sponsor-section h2 {
font-size: 2.5em;
color: #CC0000;
margin-bottom: 20px;
}


.become-sponsor-section p {
font-size: 1.1em;
max-width: 800px;
margin: 0 auto 25px auto;
color: #333;
}


.become-sponsor-section .button {
font-size: 1.2em;
padding: 12px 25px;
}


/* Media Queries für Responsivität */
@media (max-width: 768px) {
.sponsors-hero h2, .become-sponsor-section h2 {
font-size: 2em;
}


.sponsor-category h3 {
    font-size: 1.8em;
}

.sponsor-grid {
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); /* Kleinere Min-Breite */
    gap: 20px;
}

.sponsor-item {
    min-height: 120px;
}

.large-logos .sponsor-item img {
    max-height: 90px;
}

.medium-logos .sponsor-item img {
    max-height: 70px;
}

.small-logos .sponsor-item img {
    max-height: 50px;
}

}


@media (max-width: 480px) {
.sponsors-hero h2, .become-sponsor-section h2 {
font-size: 1.8em;
}


.sponsor-category h3 {
    font-size: 1.6em;
}

.sponsor-grid {
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); /* Noch kleinere Min-Breite auf Smartphones */
    gap: 15px;
}

.sponsor-item {
    min-height: 100px;
    padding: 10px;
}

}

/* ======================================= */


/* Kontakt Sektion /
/ ======================================= /
.contact-hero {
text-align: center;
margin-bottom: 40px;
padding: 30px;
background-color: #f9f9f9;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.contact-hero h2 {
font-size: 2.5em;
margin-bottom: 15px;
color: #CC0000;
}
.contact-hero p {
font-size: 1.1em;
max-width: 900px;
margin: 0 auto 30px auto;
}
/ Kontaktinfo & Formular Grid /
.contact-info-form {
margin-bottom: 50px;
}
.contact-grid {
display: grid;
grid-template-columns: 1fr 1.5fr; /* Info links, Formular rechts (etwas breiter) /
gap: 50px; / Abstand zwischen den Spalten /
}
.contact-info {
padding: 20px;
}
.contact-info h3, .contact-form h3 {
font-size: 2em;
color: #CC0000;
margin-bottom: 25px;
text-align: center;
}
.info-item {
margin-bottom: 30px;
padding: 15px;
background-color: #fdfdfd;
border-left: 5px solid #CC0000; / Roter Rand links /
border-radius: 5px;
box-shadow: 0 2px 5px rgba(0,0,0,0.03);
}
.info-item h4 {
font-size: 1.3em;
color: #333;
margin-bottom: 10px;
}
.info-item p {
margin-bottom: 5px;
color: #555;
}
.info-item a {
font-weight: bold;
}
/ Kontaktformular Styling /
.contact-form {
padding: 20px;
background-color: #fdfdfd;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}
.form-group {
margin-bottom: 20px;
}
.form-group label {
display: block; / Label über dem Feld /
margin-bottom: 8px;
font-weight: bold;
color: #333;
}
.form-group input[type="text"],
.form-group input[type="email"],
.form-group textarea {
width: 100%;
padding: 12px;
border: 1px solid #ccc;
border-radius: 5px;
font-family: 'Arial', sans-serif; /* Schriftart für Formularfelder /
font-size: 1em;
transition: border-color 0.3s ease;
}
.form-group input[type="text"]:focus,
.form-group input[type="email"]:focus,
.form-group textarea:focus {
border-color: #CC0000; /* Roter Rand beim Fokus /
outline: none;
box-shadow: 0 0 5px rgba(204, 0, 0, 0.3);
}
textarea {
resize: vertical; /* Nur vertikales Resizing erlauben /
}
.privacy-note {
display: flex;
align-items: center;
font-size: 0.9em;
color: #555;
}
.privacy-note input[type="checkbox"] {
margin-right: 10px;
transform: scale(1.2); / Checkbox etwas größer /
}
.form-disclaimer {
font-size: 0.85em;
color: #888;
margin-top: 20px;
text-align: center;
padding: 10px;
background-color: #fffacd; / Hellgelber Hintergrund für Hinweis /
border: 1px dashed #CC0000;
border-radius: 5px;
}
/ Karten-Sektion /
.location-map {
text-align: center;
}
.location-map h2 {
font-size: 2.2em;
color: #CC0000;
margin-bottom: 25px;
}
.location-map p {
max-width: 800px;
margin: 0 auto 30px auto;
font-size: 1.1em;
}
.map-container {
margin: 30px auto;
max-width: 100%;
height: 450px; / Feste Höhe für die Karte /
border: 1px solid #ddd;
border-radius: 8px;
overflow: hidden; / Für abgerundete Ecken des Iframes /
box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}
.map-container iframe {
width: 100%;
height: 100%;
display: block; / Entfernt unerwünschten Abstand unter dem Iframe /
}
.address-note {
font-size: 1.1em;
font-weight: bold;
margin-top: 20px;
}
/ Media Queries für Responsivität /
@media (max-width: 992px) {
.contact-grid {
grid-template-columns: 1fr; / Eine Spalte auf kleineren Bildschirmen /
gap: 40px;
}
.contact-info h3, .contact-form h3 {
margin-top: 0;
}
}
@media (max-width: 768px) {
.contact-hero h2, .location-map h2 {
font-size: 2em;
}


.contact-info h3, .contact-form h3 {
font-size: 1.8em;

}


.map-container {
height: 350px;
}
}


@media (max-width: 480px) {
.contact-hero h2, .location-map h2 {
font-size: 1.8em;
}
.contact-info h3, .contact-form h3 {
font-size: 1.6em;
}
.contact-info, .contact-form {
padding: 15px;
}
.privacy-note {
flex-direction: column;
align-items: flex-start;
}
.privacy-note input[type="checkbox"] {
margin-bottom: 10px;
}
}

/* ======================================= /
/ Impressum Sektion /
/ ======================================= /
.imprint-section h2 {
text-align: center;
color: #CC0000;
font-size: 2.5em;
margin-bottom: 30px;
}
.imprint-intro {
text-align: center;
font-style: italic;
color: #666;
margin-bottom: 40px;
}
.imprint-block {
margin-bottom: 30px;
padding: 20px;
background-color: #fdfdfd;
border-left: 4px solid #CC0000; / Roter Akzent am linken Rand */
border-radius: 5px;
box-shadow: 0 1px 5px rgba(0,0,0,0.02);
}
.imprint-block:last-of-type {
margin-bottom: 0;
}
.imprint-block h3 {
color: #333;
font-size: 1.8em;
margin-bottom: 15px;
}
.imprint-block p, .imprint-block ul {
line-height: 1.7;
color: #444;
margin-bottom: 10px;
}
.imprint-block ul {
list-style-type: disc;
margin-left: 25px;
}
.imprint-block ul li {
margin-bottom: 5px;
}
/ Media Queries für Responsivität /
@media (max-width: 768px) {
.imprint-section h2 {
font-size: 2em;
}
.imprint-block h3 {
font-size: 1.6em;
}
.imprint-block {
padding: 15px;
}
}

