:root{
  --bg:#0b0b0e;
  --panel:#121217;
  --panel2:#171720;
  --text:#f2f2f2;
  --muted:#b9b9c4;

  /* Rot als Akzent */
  --accent:#e11d48;
  --accent2:#be123c;

  --border:rgba(255,255,255,0.08);
  --shadow:0 14px 32px rgba(0,0,0,0.55);
  --shadowSoft:0 10px 22px rgba(0,0,0,0.35);

  --radius:18px;
  --radiusSm:12px;
  --max:1180px;
  --t:0.22s cubic-bezier(.25,.1,.25,1);
}

*{box-sizing:border-box}
body{
  margin:0;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
  background:
    radial-gradient(900px 500px at 18% 10%, rgba(225,29,72,0.15), transparent 55%),
    radial-gradient(900px 500px at 80% 20%, rgba(225,29,72,0.08), transparent 55%),
    var(--bg);
  color:var(--text);
  line-height:1.6;
}

.wrapper{
  max-width:var(--max);
  margin:0 auto;
  padding:34px 24px 80px;
}

.sr-only{
  position:absolute;
  width:1px;height:1px;
  margin:-1px;padding:0;
  overflow:hidden;border:0;
  clip:rect(0,0,0,0);
}

.site-header{ margin-bottom:46px; }

.header-grid{
  display:grid;
  gap:28px;
}

@media(min-width:920px){
  .header-grid{
    grid-template-columns:1.35fr 1fr;
    align-items:center;
  }
}

.kicker{
  display:inline-block;
  padding:8px 14px;
  background:rgba(255,255,255,0.03);
  border:1px solid var(--border);
  border-radius:999px;
  color:var(--muted);
  font-size:14px;
  margin-bottom:16px;
}

.brand{
  display:flex;
  align-items:baseline;
  gap:10px;
  margin:0 0 10px;
}

.brand-mark{
  width:44px;height:44px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(180deg, var(--accent), var(--accent2));
  box-shadow:var(--shadowSoft);
  font-weight:900;
  font-size:24px;
}

.brand-word{
  font-weight:900;
  letter-spacing:0.06em;
  font-size:clamp(34px, 4.2vw, 60px);
  line-height:1.05;
}

.subtitle{
  font-size:20px;
  color:var(--muted);
  max-width:740px;
  margin:10px 0 22px;
}

.cta-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:0 0 20px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 20px;
  border-radius:var(--radiusSm);
  border:1px solid var(--border);
  background:rgba(255,255,255,0.03);
  color:var(--text);
  font-weight:650;
  text-decoration:none;
  transition:var(--t);
}

.btn:hover{
  border-color:rgba(225,29,72,0.55);
  transform:translateY(-2px);
  box-shadow:var(--shadowSoft);
  background:rgba(255,255,255,0.05);
}

.btn.primary{
  background:linear-gradient(180deg, var(--accent), var(--accent2));
  border-color:rgba(225,29,72,0.8);
}

.btn.primary:hover{
  background:linear-gradient(180deg, #f43f5e, var(--accent2));
}

.site-nav{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  margin:10px 0 0;
}

.site-nav a{
  color:var(--muted);
  text-decoration:none;
  font-size:15px;
  transition:var(--t);
}

.site-nav a:hover{ color:var(--accent); }

.micro{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}

.pill{
  font-size:13px;
  color:var(--muted);
  border:1px solid var(--border);
  background:rgba(255,255,255,0.02);
  padding:6px 12px;
  border-radius:999px;
}

.hero img{
  width:100%;
  border-radius:var(--radius);
  border:1px solid var(--border);
  box-shadow:var(--shadow);
  object-fit:cover;
}

.card{
  background:rgba(255,255,255,0.03);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:34px 30px;
  box-shadow:var(--shadowSoft);
  margin:0 0 44px;
}

h2{
  margin:0 0 18px;
  font-size:28px;
}

h3{
  margin:0 0 10px;
  font-size:20px;
}

.small{
  color:var(--muted);
  font-size:14px;
}

.grid{ display:grid; gap:24px; }
.grid-2{ grid-template-columns:1fr; }
@media(min-width:860px){ .grid-2{ grid-template-columns:1fr 1fr; } }

.taglist{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.tag{
  padding:6px 12px;
  border-radius:999px;
  border:1px solid var(--border);
  background:rgba(255,255,255,0.02);
  color:var(--muted);
  font-size:14px;
}

.list-clean{
  margin:0;
  padding-left:18px;
}

.section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}

.badge{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(225,29,72,0.35);
  background:rgba(225,29,72,0.12);
  color:#ffd0da;
  font-size:13px;
  font-weight:650;
}

.live-card{
  display:grid;
  gap:16px;
  padding:18px;
  border-radius:var(--radius);
  border:1px solid rgba(225,29,72,0.18);
  background:
    linear-gradient(180deg, rgba(225,29,72,0.10), rgba(255,255,255,0.02));
}

@media(min-width:860px){
  .live-card{
    grid-template-columns:0.75fr 1.65fr 0.9fr;
    align-items:center;
  }
}

.live-date{ font-size:22px; font-weight:900; }
.live-time{ color:var(--muted); margin-top:4px; }
.live-place{ font-size:18px; margin-bottom:6px; }
.live-meta{ color:var(--muted); font-size:14px; }
.live-cta{ display:flex; flex-wrap:wrap; gap:10px; }

.photo-wide img{
  width:100%;
  border-radius:var(--radius);
  border:1px solid var(--border);
  box-shadow:var(--shadowSoft);
}
.photo-wide figcaption{
  margin-top:10px;
  color:var(--muted);
  font-size:14px;
}

.contact-grid{
  display:grid;
  gap:16px;
  margin-top:16px;
}
@media(min-width:860px){
  .contact-grid{ grid-template-columns:1fr 1fr; }
}

.contact-box{
  background:rgba(255,255,255,0.02);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:18px;
}

.contact-line a{
  color:var(--text);
  font-weight:750;
  text-decoration:none;
  border-bottom:1px dashed rgba(225,29,72,0.55);
}

.contact-line a:hover{ color:#ffd0da; }

.site-footer{
  text-align:center;
  color:var(--muted);
  font-size:14px;
  margin-top:34px;
  padding:18px 0 34px;
}

.site-footer a{
  color:var(--muted);
  text-decoration:none;
}
.site-footer a:hover{ color:var(--accent); }

.dot{ padding:0 10px; }