:root{
  --gold:#cfa15a;
  --gold-light:#e5c27b;
  --bg:#0b0b0b;
  --surface:#151515;
}

body{
  margin:0;
  background:var(--bg);
  color:#eaeaea;
  font-family:'Open Sans', sans-serif;
  text-align:center;
}

h1,h2{
  font-family:'Cinzel', serif;
  color:var(--gold);
  letter-spacing:.1em;
}

a{ color:var(--gold); text-decoration:none; }

/* ---------- Buttons ---------- */
.button{
  display:inline-block;
  margin-top:1.5rem;
  padding:.8rem 2rem;
  border:1px solid var(--gold);
  color:var(--gold);
  border-radius:6px;
  transition:.3s;
}
.button:hover{ background:var(--gold); color:#000; }

/* ---------- Countdown ---------- */
.countdown{
  font-size:2.2rem;
  margin:2rem 0;
  color:var(--gold);
  font-weight:600;
}

/* ---------- Sections ---------- */
.section{
  margin:3rem auto;
  max-width:900px;
  background:var(--surface);
  border:1px solid rgba(207,161,90,.3);
  padding:2.5rem 2rem;
  border-radius:16px;
  box-shadow:0 8px 30px rgba(0,0,0,.6);
}

/* ---------- Event Hero ---------- */
.event-hero{
  padding:2.2rem 1rem 1.6rem;
  border-bottom:1px solid rgba(207,161,90,.25);
}
.event-hero__inner{
  max-width:1100px;
  margin:0 auto;
}
.event-hero__image{
  width:100%;
  max-width:1100px;
  max-height:240px;
  object-fit:contain;
  filter: drop-shadow(0 0 35px rgba(207,161,90,.35));
}
.event-hero__meta{
  color:#aaa;
  margin:1rem 0 1.2rem;
}

/* ---------- Location ---------- */
.location-name{
  font-family:'Cinzel', serif;
  font-size:clamp(1.8rem, 3vw, 2.6rem);
  color:var(--gold);
  letter-spacing:.15em;
  margin-bottom:.5rem;
  text-transform:uppercase;
}
.location-address{
  color:#ddd;
  font-size:1rem;
  line-height:1.6;
}

/* ---------- Map ---------- */
.map-wrap{
  margin-top:1.5rem;
  border-radius:14px;
  overflow:hidden;
  border:1px solid rgba(207,161,90,.3);
  box-shadow:0 6px 20px rgba(0,0,0,.5);
}
.map{
  width:100%;
  height:380px;
  border:0;
}
@media (max-width:600px){
  .map{ height:320px; }
}

/* ===================================================== */
/* ===================== SPONSORS ====================== */
/* ===================================================== */

/* Hauptsponsor (Variante B: groß + etwas Abstand) */
.sponsor-main{
  display:flex;
  justify-content:center;
  align-items:center;
}

.sponsor-main .sponsor-card{
  width:100%;
  max-width:900px;
  min-height:220px;
  padding:0; /* padding kommt über inner-wrap */
  border:1px solid rgba(207,161,90,.6);
  box-shadow:0 0 65px rgba(207,161,90,.20);
  border-radius:14px;
  overflow:hidden;
  background: rgba(255,255,255,0.02);
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Innerer Bereich für Abstand */
.sponsor-main .sponsor-card .sponsor-main__inner{
  width:100%;
  height:100%;
  padding:2.2rem; /* der gewünschte Abstand */
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Logo füllt so groß wie möglich, aber mit Abstand */
.sponsor-main img{
  width:100%;
  height:100%;
  object-fit:contain;      /* KEIN crop */
  max-width:100%;
  max-height:100%;
  filter: drop-shadow(0 0 18px rgba(207,161,90,.12));
}

/* Mobile etwas weniger Höhe, damit es nicht zu viel scrollt */
@media (max-width:600px){
  .sponsor-main .sponsor-card{
    min-height:170px;
  }
  .sponsor-main .sponsor-card .sponsor-main__inner{
    padding:1.4rem;
  }
}

/* Weitere Sponsoren */
.sponsor-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:1.2rem;
  margin-top:2rem;
}
@media (min-width:700px){
  .sponsor-grid{ grid-template-columns:repeat(3, 1fr); }
}
@media (min-width:1000px){
  .sponsor-grid{ grid-template-columns:repeat(4, 1fr); }
}

.sponsor-card{
  background: rgba(255,255,255,0.02);
  border:1px solid rgba(207,161,90,.25);
  border-radius:14px;
  padding:1.6rem;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:110px;
  transition:.3s ease;
}

.sponsor-grid .sponsor-card img{
  height:50%;      /* alle gleich hoch */
  width:auto;
  max-width:100%;
  object-fit:contain;
  opacity:.95;
  transition:.3s ease;
}

.sponsor-card:hover{
  border-color:rgba(207,161,90,.55);
  box-shadow:0 0 25px rgba(207,161,90,.15);
}
.sponsor-card:hover img{ transform:scale(1.05); }


.sponsor-main .sponsor-card{
  border-radius:20px; /* stärker abgerundet */
}

.sponsor-main img{
  border-radius:20px; /* Bild folgt dem Rahmen */
}

/* ---------- Footer ---------- */
.site-footer{
  margin:4rem 0 2rem;
  color:#777;
  font-size:.9rem;
}
.site-footer__links{
  margin-top:.8rem;
  display:flex;
  gap:1rem;
  justify-content:center;
  flex-wrap:wrap;
}
.site-footer__links a{
  border:1px solid rgba(207,161,90,.35);
  padding:.55rem 1.1rem;
  border-radius:999px;
  transition:.3s;
}
.site-footer__links a:hover{
  background:var(--gold);
  color:#000;
  border-color:var(--gold);
}
/* ---------- Scroll To Top ---------- */

.scroll-top{
  position:fixed;
  bottom:25px;
  right:25px;
  width:48px;
  height:48px;
  border-radius:50%;
  border:1px solid rgba(207,161,90,.6);
  background:rgba(0,0,0,.7);
  color:var(--gold);
  font-size:20px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 0 20px rgba(207,161,90,.2);
  transition:.3s;
  opacity:0;
  pointer-events:none;
  z-index:1000;
}

.scroll-top.visible{
  opacity:1;
  pointer-events:auto;
}

.scroll-top:hover{
  background:var(--gold);
  color:#000;
}

/* ---------- Plan Lightbox ---------- */

.plan-img{
  width:100%;
  max-width:600px;   /* Vorschau kleiner */
  height:auto;
  border-radius:12px;
  box-shadow:0 6px 20px rgba(0,0,0,.5);
  cursor:pointer;
  transition:.3s ease;
}

.plan-img:hover{
  transform:scale(1.02);
}

.lightbox{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.9);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
  transition:.3s ease;
  z-index:2000;
}

.lightbox.active{
  opacity:1;
  visibility:visible;
}

.lightbox img{
  max-width:95%;
  max-height:90%;
  border-radius:14px;
  box-shadow:0 0 50px rgba(207,161,90,.25);
}

.lightbox-close{
  position:absolute;
  top:20px;
  right:25px;
  font-size:32px;
  color:var(--gold);
  cursor:pointer;
}