/* ======================================= */
/* BASIS-STYLING (Allgemein)               */
/* ======================================= */
body{
	font-family: arial,helvetica;
	font-size: 1em;
	color: #ccc;
    margin: 0;
    padding: 0;
}

.content-wrapper {
	margin-left: auto;
	margin-right: auto;
	max-width: 960px; 
	padding: 20px;
	box-sizing: border-box;
}

h1{
	font-size: 2em;
	font-family: 'Libre Baskerville', serif;
	font-style: italic;
	color: white;
	margin:0 0 5px 0;
    text-align: center;	
}
h2{
	font-size: 1.5em;
	color: white;
	font-family: 'Libre Baskerville', serif;
	font-style: italic;
    margin-top: 20px;
}
p{
	text-align: left;
	color: #ccc;
    line-height: 1.5;
}

#img_intro, .img_spalten {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 10px auto;
    border-radius: 5px;
    border: 2px solid #333;
}

audio{
    width: 100%;
    max-width: 500px;
    display: block;
    margin: 10px auto;
}

/* Link-Farben */
a:link, a:visited {
    color: #fff;
    text-decoration: underline;
}
a:hover {
    color: #ccc;
}


/* ======================================= */
/* RESPONSIVE LAYOUT FÜR SPALTEN           */
/* ======================================= */

.double-column-wrapper {
    display: flex;
    gap: 30px; 
    align-items: flex-start;
}

.column {
    flex: 1; 
    min-width: 0; 
}

/* --- RESPONSIVER VIDEO-WRAPPER --- */
.video-responsive-wrapper {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 Verhältnis */
    padding-top: 30px; 
    height: 0;
    overflow: hidden;
    margin: 20px auto;
    max-width: 800px;
}

.video-responsive-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

/* --- IMPRESSUM Layout --- */
.impressum-wrapper {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding: 20px;
}
.impressum-content {
    max-width: 500px;
    padding: 20px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 5px;
}


/* ======================================= */
/* MEDIA QUERY: Für Mobilgeräte (bis 768px)*/
/* ======================================= */
@media screen and (max-width: 768px) {
    
    /* ************************************** */
    /* 1. SCHRIFTGRÖSSE VERBESSERUNG!         */
    /* ************************************** */
    h1 {
        font-size: 2em; /* Deutlich größer auf Mobile */
    }
    h2 {
        font-size: 1.5em; /* Deutlich größer auf Mobile */
    }
    p, #disclaimer, #kontakt p {
        font-size: 1em; /* Bessere Lesbarkeit für Fließtext und Impressum */
    }
    
    /* 2. Spalten stapeln (Hauptinhalt) */
    .double-column-wrapper {
        flex-direction: column; 
        gap: 0px;
    }
    
    /* Bei Repertoire (section3) Bild und Text umkehren */
    .reverse-on-mobile {
        flex-direction: column-reverse; 
    }
    
    .content-wrapper {
        padding: 10px;
    }
    
    /* 3. Navigation und Header anpassen (nicht mehr fixiert, sondern oben fest) */
    #header {
        position: relative;
        top: auto;
        left: auto;
        transform: none;
        text-align: left;
        padding: 10px 10px;
        background-color: #000;
        width: 100%;
        box-sizing: border-box;
    }
    #menu {
        position: relative; 
        top: auto;
        right: auto;
        transform: none;
        text-align: left;
        padding: 10px 0;
        background-color: #222;
        width: 100%;
    }
    #menu li {
        display: block;
        margin: 5px 20px;
    }

    /* 4. slimscroll Konflikt beheben */
    #inner-content-div, #inner-content-div2, #inner-content-div3 {
        overflow: visible !important;
        height: auto !important;
        max-height: none !important;
    }

    /* 5. Tabellen-Layout komplett umstellen (Reparatur der Termine/Repertoire-Listen) */
    .tabelle_rep, #tabelle_auftritte,
    .tabelle_rep tbody, #tabelle_auftritte tbody,
    .tabelle_rep tr, #tabelle_auftritte tr {
        display: block; 
        width: 100%;
    }
    
    /* Fügt Trennlinien und Abstand zwischen den einzelnen Einträgen ein (Termine) */
    #tabelle_auftritte tr {
        margin-bottom: 20px;
        padding-bottom: 10px;
        border-bottom: 1px solid #333;
    }
    
    /* Versteckt die unnötige zweite Zelle der Termine-Tabelle (falls leer) */
    #tabelle_auftritte tr td:first-child:empty {
        display: none;
    }

    /* Die Zellen (td) werden zu Blöcken */
    .tabelle_rep td, #tabelle_auftritte td {
        display: block;
        width: 100%;
        text-align: left;
        padding: 5px 0;
        box-sizing: border-box;
        border: none; 
    }
    
    /* Spezielles Styling für die Termine-Überschriften */
    #tabelle_auftritte .t_head {
        font-weight: bold;
        color: #fff;
        font-size: 1.2em; /* Titel der Termine auch größer */
        padding-top: 15px;
    }
    #tabelle_auftritte .t_headr {
        font-style: italic;
        margin-bottom: 5px;
        display: block;
        font-size: 1.1em; /* Subtitel der Termine auch größer */
    }
    
    /* Audio Tabelle auf Mobilgeräten */
    #tabelle_musik .t_head_musik {
        font-weight: bold;
        display: block;
        padding-top: 10px;
    }

    /* 6. Impressum (Einspaltig) */
    .impressum-wrapper {
        flex-direction: column;
        align-items: stretch;
    }
    .impressum-content {
        max-width: 100%;
    }
}