*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:"Segoe UI",sans-serif;
    background:#111;
    color:white;
}

.container{
    width:min(1000px,90%);
    margin:auto;
}

h1{
    font-size:clamp(3rem,8vw,6rem);
}

h2{
    font-size:clamp(2rem,4vw,3rem);
    margin-bottom:2rem;
}

p{
    line-height:1.8;
}

/* ==========================
   PLAKATBEREICH
   ========================== */

.poster-section{
    position:relative;
    height:200vh;
    overflow:hidden;
}

.poster-bg{
    position:absolute;
    inset:0;

    background-image:url("images/passwort-zeitmaschine.jpg");
    background-size:cover;
    background-position:center top;
    background-repeat:no-repeat;

    will-change:transform;

    transform:translateY(0);
}

/* Hero oben im Wald */

.hero{
    height:100vh;

    display:flex;
    justify-content:center;
    align-items:flex-start;

    text-align:center;

    padding-top:2vh;
}

.hero-content{
    max-width:700px;
    width:90%;

    padding:2rem;

    /* Gradient background:
        linear-gradient(
            to bottom,
            rgba(0,0,0,0.25),
            rgba(0,0,0,0.05)
        );
    */

    border-radius:20px;
}

.hero h1{
    font-size:clamp(3rem,8vw,6rem);
    line-height:0.95;

    margin-bottom:1rem;

    text-shadow:
        0 4px 20px rgba(0,0,0,.6);
}

.hero p{
    font-size:clamp(1.2rem,2.5vw,1.8rem);
    margin-top:-4rem;
    margin-bottom:2rem;

    text-shadow:
        0 4px 20px rgba(0,0,0,.6);
}

.title-logo{
    display:block;

    width:min(900px, 95%);
    height:auto;

    margin:2rem auto 1.5rem auto;

    filter:
        drop-shadow(0 4px 10px rgba(0,0,0,.4))
        drop-shadow(0 8px 30px rgba(0,0,0,.3));
}

.parallax-title{
    will-change:transform;
}

/* Handlung in der Stadthälfte */

.story-overlay{
    position:absolute;
    bottom:0;

    width:100%;
    min-height:90vh;

    display:flex;
    align-items:center;

    background:
        linear-gradient(
            to bottom,
            rgba(0,0,0,.15),
            rgba(0,0,0,.75),
            rgba(0,0,0,.9)
        );

    backdrop-filter:blur(2px);
}

.story-overlay .container{
    max-width:800px;
    text-align:center;
}

.story-overlay p{
    margin-bottom:1.5rem;
    font-size:1.15rem;
}

/* ==========================
   BUTTONS
   ========================== */

.btn{
    display:inline-block;

    margin-top:1rem;
    padding:1rem 2rem;

    border-radius:999px;

    text-decoration:none;
    font-weight:700;

    background:#f5b700;
    color:#111;

    transition:.3s;
}

.btn:hover{
    transform:translateY(-3px);
}

/* ==========================
   GALERIE
   ========================== */

.gallery-section{
    background:#111;
    padding:8rem 0;
}

.slider{
    position:relative;
    max-width:1000px;
    margin:auto;
    overflow:hidden;
}

.slides{
    display:flex;
    transition:transform .5s ease;
}

.slides img{
    min-width:100%;
    height:600px;
    object-fit:cover;
    border-radius:12px;
}

.slider-btn{
    position:absolute;
    top:50%;
    transform:translateY(-50%);

    width:50px;
    height:50px;

    border:none;
    border-radius:50%;

    cursor:pointer;
    z-index:10;
}

.prev{
    left:10px;
}

.next{
    right:10px;
}
.slider-dots{
    display:flex;
    justify-content:center;
    gap:12px;
    padding-bottom: 1rem;
    margin-top:1.5rem;
}

.dot{
    width:12px;
    height:12px;

    border-radius:50%;

    background:rgba(255,255,255,.35);

    cursor:pointer;

    transition:all .3s ease;
}

.dot:hover{
    transform:scale(1.2);
}

.dot.active{
    background:#f5b700;

    transform:scale(1.3);

    box-shadow:
        0 0 8px rgba(245,183,0,.5);
}
/* ==========================
   CTA
   ========================== */

.cta-section{
    background:#111;
    text-align:center;
    padding:8rem 0;
}

.cta-section p{
    margin-bottom:2rem;
}

/* ==========================
   Lizenzinfos
   ========================== */

.licence-section{
   border-top: 3px solid #f5b700;
   background:#212122;
    text-align:center;
    padding:2rem 0;   
}

.licence-section h2{
    font-size:clamp(1.5rem,3vw,2rem);
    margin-bottom:1rem;
}

.licence-section p{
    margin-bottom:1rem;
}

.licence-section a:link, .licence-section a:visited {
    color: white;
    text-decoration: none;
}
/* ==========================
   MOBILE
   ========================== */

@media (max-width:768px){

    .poster-section{
        height:180vh;
        background-position:center center;
    }

    .slides img{
        height:320px;
    }
    .title-logo{
        width:95%;
        max-width:550px;
    }
    .story-overlay{
        min-height:100vh;
        padding:4rem 0;
    }
    .hero p{
        margin: -3rem auto 2rem;
        max-width:50vw;
        
    }
}
 
/* zugefügt */
.hero,
.story-overlay{
    position:relative;
    z-index:2;
}

/* Button mit Schullogo */
.overlay-container {
            position: fixed;
            z-index: 99;
            top: 5rem;
            left: 0;
            transition: transform 0.3s ease-in-out;
            display: flex;
            align-items: center;
            width: 10rem;
            max-width: 30vw;
        }
        .overlay-button {
            position: absolute;
            background-color: rgba(250, 250, 255, 0.4);
            color: white;
            padding: 10px 20px;
            border-radius: 0 5px 5px 0;
            /* box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.2); */
            cursor: pointer;
            display: flex;
            align-items: center;
            transition: transform 0.3s ease-in-out;
        }
        .arrow-button {
            position: absolute;
            background-color: rgba(250, 250, 255, 0.4);
            color: white;
            padding: 10px 10px 10px 20px;
            border-radius: 5px;
            cursor: pointer;
            /* display: none; 
            margin-left: -10px; */
            margin: 0 0 0 -4rem;
            transition: all 0.3s ease-in-out;
        }
        .arrow-button img{
            width:2rem;
            opacity: 0.5;
            transition: all 0.3s;
        }
        .arrow-button:hover {
            background-color: rgba(250, 250, 255, 0.5);
            margin-left: 0;
        }
        .arrow-button:hover img{
            opacity: 1;
        }
img.ajg-logo{
    width: 10rem;
    max-width: 100%;
    height: auto;
}

/* Cast-Grid von Sidekick */

.cast-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 2rem;
  padding: 2rem;
}

.cast-card {
  background: rgba(255, 255, 255, 0.05);
  border-radius: 8px;
  overflow: hidden;
  transition: transform 0.3s ease;
}

.cast-card:hover {
  transform: translateY(-10px);
}

.cast-image-wrapper {
  position: relative;
  aspect-ratio: 3/4;
  overflow: hidden;
}

.cast-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: filter 0.3s ease;
}

.cast-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.7);
  display: flex;
  align-items: center;
  padding: 1.5rem;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.cast-card:hover .cast-overlay {
  opacity: 1;
}

.cast-meta {
  padding: 1.5rem;
  text-align: left;
}

.cast-role {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #00ffcc; /* Akzentfarbe für Technik-Vibe */
}

.cast-name {
  margin-top: 0.5rem;
  font-size: 1.2rem;
}

/* Tabelle mit Bestelllinks */ 
.tickets-tabelle{
    width:100%;
    max-width:700px;
    margin:2rem auto;

    border-collapse:separate;
    border-spacing:0 1rem;
}

.tickets-tabelle tr{
    background:rgba(255,255,255,0.08);

    backdrop-filter:blur(4px);

    border-radius:12px;
    overflow:hidden;

    transition:all .3s ease;
}

.tickets-tabelle tr:hover{
    background:rgba(255,255,255,0.12);
    transform:translateY(-2px);
}

.tickets-tabelle td{
    padding:1.25rem 1.5rem;
    vertical-align:middle;
}

.tickets-tabelle td:first-child{
    font-size:1.1rem;
    font-weight:600;
    width:70%;
}

.tickets-tabelle td:last-child{
    text-align:right;
    white-space:nowrap;
}

/* Mobile */

@media (max-width:768px){

    .tickets-tabelle,
    .tickets-tabelle tbody,
    .tickets-tabelle tr,
    .tickets-tabelle td{
        display:block;
        width:100%;
    }

    .tickets-tabelle tr{
        margin-bottom:1rem;
    }

    .tickets-tabelle td{
        text-align:center;
        padding:1rem;
    }

    .tickets-tabelle td:first-child{
        width:100%;
        padding-bottom:0.5rem;
    }

    .tickets-tabelle td:last-child{
        text-align:center;
        padding-top:0.5rem;
    }

    .tickets-tabelle .btn{
        display:block;
        width:100%;
    }
}

/*  */