:root{

    --color-current-main:#96c0e8;
    --color-current-sub:#003668;

    /* Stückfarben */
    --color-zwei-luegen-main:#96c0e8;
    --color-zwei-luegen-sub:#003668;

    --color-da-capo-main:#cefe9a;
    --color-da-capo-sub:#4414e4;

    --color-krankenschein-main:#f0efaa;
    --color-krankenschein-sub:#cb6a4c;

    --color-buerobuero-main:#9abbde;
    --color-buerobuero-sub:#312763;

    --color-saloon-main:#c59e41;
    --color-saloon-sub:#070707;

    --color-film-2021-main:#f6c274;
    --color-film-2021-sub:#020201;

    --color-messerscharf-main:#5db6e0;
    --color-messerscharf-sub:#101116;

    --color-jerry-ist-tot-main:#fff;
    --color-jerry-ist-tot-sub:#8a0304;

    --color-rue-de-lourcine-main:#fff;
    --color-rue-de-lourcine-sub:#de0c19;

    --color-glanz-und-glorie-main:#cf8105;
    --color-glanz-und-glorie-sub:#000000;

    --color-der-meisterboxer-main:#fff;
    --color-der-meisterboxer-sub:#000000;

    --color-wahlverwandtchaften-main:#feece0;
    --color-wahlverwandtchaften-sub:#482d34;

    --color-weiberfeinde-main:#e3e3e3;
    --color-weiberfeinde-sub:#3d3e3d;

    /* Default (wenn nichts definiert ist) */
    --color-unknown-main:#eeeeee;
    --color-unknown-sub:#333;
    }

    @import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap');

html {
    overflow-y: scroll;
    -webkit-tap-highlight-color: #ffffff
}

.beschreibung {
    white-space: pre-line;
}

    /* Links in Kontaktinfo wie Buttons mit Hintergrundfarbe des Stücks */
.contact-info a {
    font-size: 17px;
    display: inline-block;
    background: var(--color-current-main); /* Hintergrundfarbe */
    color: var(--color-current-sub);       /* Textfarbe */
    text-decoration: none;
    padding: 8px 10px;
    border-radius: 8px;
    margin: 2px 0;
    transition: 0.2s;
}

.contact-info a:hover {
    background: var(--color-current-sub);  /* Tausch von Farben beim Hover */
    color: #fff;
    text-decoration: none;
}

body{
    font-family:'Open Sans', Arial, sans-serif;
    margin:0;
    background:var(--color-current-main);
}

/* Container */
.container{
    max-width:1000px;
    margin:0 auto;
    padding:40px 20px;
}

/* HEADER */
.header {
    width: 100%;
    box-sizing: border-box;
    background: white;
    border-bottom: 4px solid var(--color-current-sub);
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    position: sticky;
    top: 0;
    z-index: 500;
}

.nav{
    display:flex;
    align-items:center;
    justify-content:space-between;
    max-width:1000px;
    margin:0 auto;
    padding:15px 20px;
}

.logo{
    height:60px;
    display:flex;
    align-items:center;
}

.logo svg{
    height:100%;
    width:auto;
}

/* Schrift im Logo färben */
.logo svg #schrift path{
    color:var(--color-current-sub);
}

.logo svg path{
    color:var(--color-current-sub);
}

/* Navigation */
nav{
    display:flex;
    align-items:center;
    gap:20px;
}

nav a{
    text-decoration:none;
    color:var(--color-current-sub);
    font-weight:bold;
    font-size:25px;
    padding:8px 14px;
    border-radius:6px;
    border:3px solid var(--color-current-sub);
    transition:0.2s;
}

nav a.active {
    background: var(--color-current-main);
    color: var(--color-current-sub);
    border-color: var(--color-current-sub);
}

nav a.active:hover {
    opacity: 0.8;
}

nav a:hover{
    background:var(--color-current-main);
}

h1{
    font-size:48px;
    font-weight:1000;
}
h2{
    font-size:38px;
    font-weight:1000;
}
/* Titel */
h1,h2,h3{
    color:var(--color-current-sub);
    text-align:center;
}

/* Aktuelles Stück */
.stueck{
    display:flex;
    gap:30px;
    background:white;
    padding:25px;
    border-radius:12px;
    box-shadow:0 4px 12px rgba(0,0,0,0.08);
    align-items:center;
}

.stueck img{
    width:300px;
    border-radius:10px;
}

.dates{
    color:var(--color-current-sub);
    text-align:center;
    margin-top:10px;
    line-height:1.6;
}

.dates span{
    display:inline-block;
    background:var(--color-current-main);
    padding:6px 10px;
    margin:5px;
    border-radius:6px;
    font-size:16px;
    box-shadow:0 3px 3px rgba(0,0,0,0.1);
}

.highlight-termin {
    text-decoration: underline;
    color: var(--color-current-sub); /* bleibt im Farbsystem */
}

.u18 {
     text-decoration: underline;
}

/* Buttons */
.btn{
    display:inline-block;
    margin-top:10px;
    padding:10px 20px;
    background:var(--color-current-sub);
    color:white;
    text-decoration:none;
    border-radius:6px;
    transition:0.2s;
    text-align: center;
}

.stueck a.btn {
    display: block;
    margin: 20px auto 0 auto;
    text-align: center;
    width:fit-content;
}

#aktuelles-stueck .beschreibung {
    text-align: left;
}

.btn:hover{
    opacity:0.85;
}

/* Archiv */
.jahr-filter-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 20px auto;
    justify-content: center;
}

#jahr-filter {
    display: flex;
    gap: 11px;
    overflow: hidden;
    scroll-behavior: smooth;
    width: 450px
}

#jahr-filter button{
    width: 100px;
    flex: 0 0 80px;
    padding:12px 0;
    border:none;
    font-weight:700;
    font-size:17px;
    background:var(--color-current-sub);
    color:white;
    cursor:pointer;
    border-radius:6px;
    margin: 0;              /* ✅ KEINE Margins im Desktop */
    box-sizing: border-box;
    border:3px solid #fff
}

#jahr-filter button.active {
    background: #fff;
    color: var(--color-current-sub);
    border: 3px solid var(--color-current-sub);
    font-weight: 700;
    opacity: 1;
    cursor: default;
}

#jahr-filter button:not(.active):hover {
    background: #fff;
    color: var(--color-current-sub);
    border-color: 3px solid var(--color-current-sub);
    opacity: 0.9;
    transition: 0.2s ease;
}

.scroll-btn {
    background: var(--color-current-sub);
    color: white;
    border: none;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    font-weight: 1000;
    font-size: 17px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    border:2px solid #fff
}

.scroll-btn:hover {
    opacity: 0.85;
    background: #fff;
    color: var(--color-current-sub);
    border: 3px solid var(--color-current-sub);
    font-weight: 1000;
    font-size:17px;
    opacity: 1;
    cursor: default;
}


#archiv-grid{
    display:flex;
    justify-content:center;
    margin-top:30px;
    flex-wrap:wrap;
    gap:20px;
}

/* Archiv Card */
.card{
    background:white;
    padding:12px;
    border-radius:12px;
    box-shadow:0 3px 10px rgba(0,0,0,0.1);
    overflow:hidden;
    width: 300px;
    text-align:center;
}

.card img{
    width:100%;
    border-radius:8px;
}

.card h3{
    margin:15px 0 5px 0;
}

/* Tabs */
.tabs{
    margin-top:20px;
    text-align:center;
}

.tabs button{
    margin:5px;
    padding:10px 20px;
    border: 3px solid #fff;
    font-weight: 700;
    font-size:17px;
    background:var(--color-current-sub);
    color:white;
    cursor:pointer;
    border-radius:6px;
    transition: background 0.2s ease, color 0.2s ease, border 0.2s ease;
}


.tabs button.active {
    background: #fff;
    color: var(--color-current-sub);
    border: 3px solid var(--color-current-sub);
    font-weight: 700;
    font-size:17px;
    opacity: 1;
    cursor: default;
}

.tabs button:not(.active):hover {
    opacity: 0.85;
    background: #fff;
    color: var(--color-current-sub);
    border: 3px solid var(--color-current-sub);
    font-weight: 700;
    font-size:17px;
    opacity: 1;
    cursor: default;
}

.tab-content{
    background:white;
    padding:25px;
    margin-top:15px;
    border-radius:12px;
    text-align:center;
    box-shadow:0 3px 10px rgba(0,0,0,0.1);
}

/* Plakat */
.poster-img{
    max-width:420px;
    border-radius:10px;
    box-shadow:0 5px 15px rgba(0,0,0,0.2);
}

.trailer-container {
    width: 100%;
    max-width: 100%;
    aspect-ratio: 16 / 9;
    background: #000;
}

.trailer-container iframe {
    width: 100%;
    height: 100%;
    display: block;
    border: none;
}

.instagram-wrapper {
    width: 100%;
    display: flex;
    justify-content: center;
}

/* ✅ Container begrenzt das Video auf ~50% der Tab-Breite */
.instagram-wrapper .instagram-media {
    width: 50% !important;      /* halbe Breite */
    max-width: 600px !important;/* maximale Breite am Desktop */
    min-width: 250px !important;/* minimale Breite, damit es nie zu klein wird */
    margin: 0 auto !important;
}

.instagram-wrapper blockquote.instagram-media {
    margin: 0 auto !important;
}

/* Besetzung */
.cast-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,200px);
    gap:20px;
    justify-content:center;
    margin-top:20px;
}

.cast-card{
    background:white;
    padding:12px;
    border-radius:12px;
    text-align:center;
    box-shadow:0 3px 10px rgba(0,0,0,0.1);
}

.cast-card img{
    width:100%;
    height:200px;
    object-fit:contain;
    background:#eee;
    border-radius:8px;
    margin-bottom:5px;
}

.cast-role{
    font-size:16px;
    color:#666;
}

.cast-name{
    font-weight:bold;
    color:var(--color-current-sub);
}

/* Galerie für Fotos */
.gallery{
    display:grid;
    grid-template-columns:repeat(auto-fill,150px);
    gap:15px;
    justify-content:center;
    margin-top:20px;
}

.gallery img{
    width:150px;
    height:150px;
    object-fit:contain;
    background:#eee;
    border-radius:8px;
    padding:5px;
    transition:0.2s;
}

.gallery img:hover{
    opacity:0.85;
}

/* Lightbox */
#lightbox{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:rgba(0,0,0,0.9);
    display:none;
    justify-content:center;
    align-items:center;
    z-index:2000;
}

#lightbox img{
    max-width:90%;
    max-height:90%;
    border-radius:10px;
}

#lightbox button{
    position:absolute;
    background:none;
    border:none;
    color:white;
    font-size:40px;
    cursor:pointer;
}

#lightbox .close{
    top:20px;
    right:30px;
    font-size:35px;
}

#lightbox .prev,
#lightbox .next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: white;
    font-size: 40px;
    background: none;
    border: none;
    cursor: pointer;
    z-index: 3001;
}

#lightbox .prev {
    left: 30px;
}

#lightbox .next {
    right: 30px;
}

/* Kontakt */
.contact-info{
    background:white;
    padding:30px;
    border-radius:12px;
    max-width:450px;
    margin:30px auto;
    box-shadow:0 3px 10px rgba(0,0,0,0.1);
    text-align:center;
}

.contact-info p strong {
    font-weight: 800;
    font-size:17px;
    line-height:1;
}

.contact-map {
    margin-top: 20px;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 3px 10px rgba(0,0,0,0.1);
}

/* Footer */
.footer{
    text-align:center;
    padding:30px;
    color:var(--color-current-sub);
}

#lightbox .prev,
#lightbox .next {
    z-index: 3000;
}

#lightbox button {
    display: block;
}

.disabled-btn {
    display: inline-block;
    background: #ccc;
    color: #666;
    padding: 10px 20px;
    border-radius: 6px;
    font-weight: 700;
    cursor: default;
    opacity: 0.7;
    border: 2px solid #999;
}

/* Cursor überall */
.btn, nav a, .gallery img, .cast-card img, .tab-btn, .card a, .scroll-btn {
    cursor:pointer !important;
    user-select:none !important;
}

/* ✅ Entfernt hellblauen Tap-Effekt auf iOS & Android */
* {
    -webkit-tap-highlight-color: transparent !important;
}

/* ✅ Entfernt den Fokus-Rand auf mobilen Browsern */
button:focus,
a:focus,
.btn:focus {
    outline: none !important;
}

/* ✅ Entfernt den iOS "Active"-Overlay */
button:active,
a:active,
.btn:active {
    background-color: inherit !important;
    opacity: 1 !important;
}

/* ===========================================================
   MOBILE OPTIMIERUNG (Desktop bleibt unverändert)
   =========================================================== */

@media (max-width: 600px){

    /* verhindert horizontales Scrollen */
    html, body{
        width:100%;
        overflow-x:hidden;
    }

    /* ===========================================================
       Abstand oberhalb Logo
       =========================================================== */

    header{
        padding-top:10px;
    }

    /* ---------- Grundlayout ---------- */

    html{
        font-size:17px;
    }

    .container{
        padding:22px 16px;
        width:100%;
        box-sizing:border-box;
    }

    h1{
        font-size:1.8rem;
        margin-bottom:15px;
        text-align:center;
    }

    h2{
        font-size:1.8rem;
    }

    h3{
        font-size:1.4rem;
    }

    p, span, li, a{
        font-size:1.1rem;
        line-height:1.55;
        text-align: center;
    }

    img{
        max-width:100%;
        height:auto;
    }

    /* ===========================================================
       NAVIGATION
       =========================================================== */

    .nav{
        display:flex;
        flex-direction:column;
        gap:14px;
        width:50%;
        padding:10px 5px;
        box-sizing:border-box;
    }

    nav a{
        flex:1;
        gap:1px;
        width:90;
        text-align:center;
        font-size:1.2rem;
        padding:7px 0;
        border-radius:8px;
        border:2px solid var(--color-current-sub);
        display:block;
        box-sizing:border-box;
    }

    nav a:hover{
        background:var(--color-current-main);
    }

    /* ===========================================================
       STARTSEITE – Aktuelles Stück
       =========================================================== */

    .stueck{
        flex-direction:column;
        text-align:center;
        padding:18px;
        gap:18px;
    }

    .stueck img{
        width:100%;
        max-width:280px;
        margin:auto;
        border-radius:12px;
    }

    #aktuelles-stueck .beschreibung{
        text-align:center;
        padding:0 5px;
        font-size:1.2rem;
        line-height:1.6;
    }

    .dates{
        text-align:center;
    }

    .dates span{
        font-size:1.1rem;
        padding:9px 13px;
        margin:6px;
        border-radius:8px;
        display:inline-block;
    }

    /* ===========================================================
       PLAKAT (Detailseite)
       =========================================================== */

    .poster-img{
        width:85% !important;
        max-width:260px !important;
        margin:auto;
        display:block;
        border-radius:12px;
    }

    /* ===========================================================
       ARCHIV
       =========================================================== */

    #archiv-grid{
        grid-template-columns:1fr;
        gap:20px;
    }

    #archiv-grid .card{
        padding:18px;
        border-radius:14px;
    }

    #archiv-grid .card img{
        width:65%;
        max-width:200px;
        margin:0 auto 10px auto;
        display:block;
    }

    #archiv-grid .card h3{
        font-size:1.4rem;
        margin-top:10px;
    }

    #jahr-filter{
        text-align:center;
    }

    #jahr-filter button{
        font-size:1.1rem;
        padding:12px 16px;
        margin:2px;
        border-radius:8px;
        border:3px solid #fff
    }

    
    .jahr-filter-wrapper {
        display: block;
    }

    .scroll-btn {
        display: none;
    }

    #jahr-filter {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        width: 100%;
    }

    .instagram-wrapper .instagram-media {
        width: 50% !important;
        max-width: 90% !important;
    }



    /* ===========================================================
       TAB Bereich
       =========================================================== */

    .tabs button{
        width:100%;
        font-size:1.2rem;
        padding:14px;
        border-radius:8px;
        margin-bottom:8px;
    }
    .tabs button.active{
        width:100%;
        font-size:1.2rem;
        padding:14px;
        border-radius:8px;
        margin-bottom:8px;
    }

    .tab-content{
        padding:18px 14px;
        border-radius:14px;
        font-size:1.1rem;
        line-height:1.55;
    }

    /* ===========================================================
       BESETZUNG
       =========================================================== */

    .cast-grid{
        grid-template-columns:repeat(2, 1fr);
        gap:16px;
    }

    .cast-card{
        padding:14px;
        border-radius:14px;
    }

    .cast-card img{
        height:160px;
        border-radius:10px;
        object-fit:cover;
    }

    .cast-name{
        font-size:1.2rem;
    }

    .cast-role{
        font-size:1.05rem;
    }

    /* ===========================================================
       GALERIE
       =========================================================== */

    .gallery{
        grid-template-columns:repeat(2,1fr);
        gap:12px;
    }

    .gallery img{
        padding:4px;
        border-radius:10px;
    }

    /* ===========================================================
       KONTAKT
       =========================================================== */

    .contact-info{
        padding:20px;
        border-radius:14px;
        font-size:1.15rem;
    }

    .contact-info a{
        font-size:1.15rem;
        padding:6px 10px;
        border-radius:8px;
    }

    .contact-map iframe {
        height: 250px;
    }


    /* ===========================================================
       Buttons allgemein
       =========================================================== */

    .btn{
        font-size:1.15rem;
        padding:11px 20px;
        border-radius:10px;
    }

}