:root{
  --black:#030303;
  --white:#fff;
  --magenta:#b80049;
  --muted:#d8d2d5;
  --line:rgba(255,255,255,.92);
  --max:1120px;
  --pad:clamp(18px,4vw,40px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--black);
  color:var(--white);
  font-family:Futura, sans-serif;
  text-transform:uppercase;
  letter-spacing:.035em;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
p{line-height:1.38}
img{max-width:100%;height:auto}

.hero{
  position:relative;
  min-height:100svh;
  overflow:hidden;
  isolation:isolate;
  background:var(--black);
  padding-bottom:clamp(34px,7vw,74px);
}
.poster-bg{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 31% 38%, rgba(184,0,73,.72), rgba(184,0,73,.27) 34%, rgba(0,0,0,.92) 68%),
    url("assets/plakat-kufa-2026.jpeg") center/cover no-repeat;
  filter:saturate(1.12) contrast(1.04);
  opacity:.76;
  transform:scale(1.03);
  z-index:-2;
}
.poster-bg:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.14), rgba(0,0,0,.84) 70%);
  z-index:-1;
}
.nav{
  width:min(var(--max), calc(100% - (var(--pad) * 2)));
  margin:0 auto;
  padding:clamp(22px,4vw,34px) 0 0;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:clamp(18px,4vw,34px);
}
.brand{display:block;flex:0 1 320px;min-width:170px}
.brand img{width:min(300px,45vw);filter:brightness(0) invert(1)}
.nav-links{
  display:flex;
  gap:clamp(10px,2vw,20px);
  flex-wrap:wrap;
  justify-content:flex-end;
  font-weight:800;
  font-size:clamp(.72rem,1.4vw,.86rem);
  line-height:1.15;
}
.nav-links a{border-bottom:3px solid transparent;padding-bottom:4px}
.nav-links a:hover{border-color:var(--white)}

.hero-frame{
  width:min(var(--max), calc(100% - (var(--pad) * 2)));
  min-height:min(740px, calc(100svh - 132px));
  margin:clamp(26px,5vw,52px) auto 0;
  border:clamp(3px,.7vw,5px) solid var(--line);
  position:relative;
  padding:clamp(30px,6vw,72px);
  display:grid;
  grid-template-columns:minmax(220px,.85fr) minmax(280px,1.15fr);
  grid-template-rows:auto 1fr auto;
  gap:clamp(22px,5vw,58px);
  align-items:center;
}
.date-line{
  grid-column:2;
  justify-self:end;
  align-self:start;
  font-size:clamp(1.35rem,4vw,3rem);
  font-weight:800;
  letter-spacing:.04em;
  white-space:nowrap;
  line-height:1;
}
.hero-copy{
  grid-column:2;
  padding-right:24px;
  grid-row:2;
  text-align:right;
  justify-self:end;
  max-width:670px;
  text-shadow:0 2px 16px #000;
}
.eyebrow,.byline{
  font-size:clamp(1rem,2vw,1.55rem);
  font-weight:700;
  margin:.1em 0;
}
h1{
  font-size:clamp(2.6rem,7.2vw,6rem);
  line-height:.88;
  margin:.14em 0;
  font-weight:900;
  letter-spacing:.02em;
}
.hero-details{
  grid-column:2;
  grid-row:3;
  justify-self:end;
  min-width:min(100%,360px);
  margin:0;
  text-align:left;
  font-size:clamp(1.25rem,3vw,2.35rem);
  font-weight:900;
  line-height:1.05;
  text-shadow:0 2px 16px #000;
}
.hero-details p{margin:.1em 0}.hero-mark{
  grid-column:1;
  grid-row:2 / 4;
  align-self:end;
  justify-self:center;
  width:min(330px,100%);
  filter:brightness(0) invert(1);
  opacity:.95;
}

.section{
  width:min(var(--max), calc(100% - (var(--pad) * 2)));
  margin:0 auto;
  padding:clamp(62px,9vw,102px) 0;
  border-top:clamp(3px,.6vw,5px) solid var(--white);
  position:relative;
}
.section-label{
  position:absolute;
  top:-18px;
  left:0;
  background:var(--black);
  padding-right:18px;
  font-size:.85rem;
  font-weight:900;
  color:var(--muted);
}
h2{font-size:clamp(2rem,5vw,4.8rem);line-height:.94;margin:0 0 28px;font-weight:900}
.intro-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);gap:clamp(28px,5vw,56px);align-items:end}
.intro p{font-size:clamp(1.05rem,2vw,1.25rem);max-width:650px;color:var(--muted);text-transform:none;letter-spacing:.01em;margin:0}
.events{background:linear-gradient(135deg, transparent, rgba(184,0,73,.18))}
.event-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,3vw,28px);padding-right:18px;padding-bottom:18px}
.event-card{
  border:clamp(3px,.55vw,4px) solid var(--white);
  padding:clamp(20px,3.2vw,30px);
  min-height:220px;
  background:rgba(0,0,0,.66);
  box-shadow:14px 14px 0 rgba(184,0,73,.72);
  overflow-wrap:anywhere;
}
.event-card.highlight{background:var(--white);color:var(--black);box-shadow:14px 14px 0 var(--magenta)}
.event-card time{display:block;font-size:clamp(.96rem,1.8vw,1.14rem);font-weight:900;margin-bottom:clamp(18px,3vw,28px)}
.event-card h3{font-size:clamp(1.55rem,3.1vw,3rem);line-height:.95;margin:0 0 18px;font-weight:900}
.event-card p{text-transform:none;letter-spacing:.01em;font-size:clamp(.98rem,1.6vw,1.08rem);margin:0}
.location-grid{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr);gap:clamp(28px,4vw,40px);align-items:stretch;padding-right:18px;padding-bottom:18px}
.address{font-size:clamp(1rem,2.2vw,1.35rem);font-weight:900;line-height:1.2}.button{display:inline-block;border:4px solid var(--white);padding:16px 20px;font-weight:900;margin-top:16px}.button:hover{background:var(--white);color:var(--black)}.map-wrap{border:5px solid var(--white);min-height:420px;box-shadow:14px 14px 0 var(--magenta);overflow:hidden}.map-wrap iframe{width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.25) invert(1)}
.footer{width:min(var(--max), calc(100% - (var(--pad) * 2)));margin:0 auto;padding:clamp(55px,8vw,74px) 0 50px}.support-row{display:flex;align-items:center;gap:clamp(20px,4vw,36px);flex-wrap:wrap;border-top:5px solid var(--white);padding-top:30px}.support-row span{font-weight:900}.support-row img{max-height:54px;max-width:min(250px,70vw);filter:brightness(0) invert(1)}.impressum{margin-top:clamp(56px,8vw,80px);max-width:720px}.impressum h2{font-size:2.2rem}.impressum p{text-transform:none;letter-spacing:.01em;color:var(--muted)}.impressum a{text-decoration:underline}.small{font-size:.9rem;color:#a9a0a4!important}

@media (max-width:900px){
  .hero-frame{
    min-height:auto;
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto auto;
    align-items:start;
  }
  .date-line,.hero-copy,.hero-details,.hero-mark{grid-column:1;justify-self:start}
  .date-line{grid-row:1;white-space:normal}
  .hero-copy{grid-row:2;text-align:left;max-width:100%}
  .hero-details{grid-row:3;margin-top:8px;justify-self:start}
  .hero-mark{grid-row:4;width:min(300px,72vw);margin-top:8px;justify-self:center}
  .poster-bg:after{background:linear-gradient(180deg, rgba(0,0,0,.36), rgba(0,0,0,.86) 62%)}
  .intro-grid,.location-grid{grid-template-columns:1fr}
  .map-wrap{min-height:360px}
}
@media (max-width:680px){
  :root{--pad:18px}
  body{letter-spacing:.025em}
  .hero{min-height:auto}
  .nav{display:block}
  .brand img{width:min(250px,72vw)}
  .nav-links{justify-content:flex-start;margin-top:22px;gap:12px 16px}
  .hero-frame{margin-top:28px;padding:26px 20px 30px;border-width:3px;gap:24px}
  h1{font-size:clamp(2.7rem,15vw,4.7rem)}
  .hero-details{font-size:clamp(1.25rem,7vw,1.8rem)}
  .section{padding:58px 0}
  .event-list{grid-template-columns:1fr;padding-right:10px;padding-bottom:10px}
  .event-card,.event-card.highlight{box-shadow:10px 10px 0 var(--magenta);min-height:0}
  .map-wrap{min-height:300px;box-shadow:10px 10px 0 var(--magenta);border-width:4px}
  .location-grid{padding-right:10px;padding-bottom:10px}
  .support-row{align-items:flex-start;flex-direction:column}
}
@media (max-width:420px){
  .nav-links{font-size:.7rem}
  .hero-frame{padding:22px 16px 26px}
  h1{font-size:clamp(2.35rem,14vw,3.5rem)}
  h2{font-size:clamp(1.85rem,12vw,3.1rem)}
  .event-card{padding:18px}
  .button{width:100%;text-align:center;padding:14px 16px}
}

/* Korrektur Ort-Bereich: Überschrift kleiner, damit sie nicht in die Karte läuft */
.location h2{
  font-size:clamp(2.25rem, 5.8vw, 4.2rem);
  overflow-wrap:anywhere;
  hyphens:auto;
}
.location-grid > div:first-child{
  min-width:0;
}
@media (min-width:901px){
  .location-grid{
    grid-template-columns:minmax(220px,.58fr) minmax(0,1.42fr);
  }
}
@media (max-width:680px){
  .location h2{
    font-size:clamp(2rem, 12vw, 3.2rem);
  }
}


/* Update: Footer-Hinweis entfernt und Mobile-Titel kleiner */
.footer .small{display:none !important;}
@media (max-width:680px){
  h1{
    font-size:clamp(2.05rem, 11.5vw, 3.25rem) !important;
    line-height:.96 !important;
    max-width:100%;
    overflow-wrap:normal;
  }
  .hero-copy{max-width:100%;}
}
@media (max-width:420px){
  h1{font-size:clamp(1.85rem, 10.8vw, 2.75rem) !important;}
}


@media (max-width:768px){
  h1{
    font-size:clamp(2rem,9vw,3.6rem)!important;
    line-height:0.92;
  }
  .hero-copy{
    padding-right:10px;
  }
  .address{
    font-size:1rem!important;
  }
}


/* Sponsorlogos als Logoreihe */
.support-row{
  gap:clamp(22px,5vw,48px);
}
.support-row .sponsor-strip{
  width:min(760px,100%);
  max-width:100%;
  max-height:120px;
  object-fit:contain;
  filter:invert(1) contrast(1.12) brightness(1.08);
  mix-blend-mode:screen;
}
@media (max-width:680px){
  .support-row .sponsor-strip{
    width:100%;
    max-height:none;
  }
}


/* Programm-Update */
.event-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:18px;
}
.event-card{
  overflow-wrap:anywhere;
}
.event-card p{
  hyphens:auto;
}
@media (max-width:768px){
  .event-grid{
    grid-template-columns:1fr;
  }
}

/* Talkrunde spacing update */
.event-grid{gap:28px!important;}
.event-card{padding:28px!important;min-height:220px;display:flex;flex-direction:column;}
.event-card h3{margin-bottom:14px;}
.event-card p{line-height:1.6;}
@media(max-width:768px){.event-card{padding:22px!important;min-height:auto;}}


/* Finaler Feinschliff: sanfte Effekte & bessere Performance */
html{
  scroll-behavior:smooth;
}
img{
  max-width:100%;
  height:auto;
}
a, button, .event-card, .nav a{
  transition:transform .22s ease, opacity .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.event-card{
  will-change:transform;
}
.event-card:hover{
  transform:translateY(-4px);
}
.nav a:hover,
a:hover{
  opacity:.82;
}
@media (prefers-reduced-motion:no-preference){
  .hero,
  .section,
  .event-card{
    animation:softFadeUp .55s ease both;
  }
  .event-card:nth-child(2){animation-delay:.05s;}
  .event-card:nth-child(3){animation-delay:.1s;}
  .event-card:nth-child(4){animation-delay:.15s;}
  .event-card:nth-child(5){animation-delay:.2s;}
}
@keyframes softFadeUp{
  from{opacity:0; transform:translateY(14px);}
  to{opacity:1; transform:translateY(0);}
}
@media (max-width:768px){
  .event-card:hover{
    transform:none;
  }
}



/* Sichtbare finale Optimierung */
.programme,
#programm{
  padding-top:clamp(72px,9vw,120px)!important;
  padding-bottom:clamp(72px,9vw,120px)!important;
}

.event-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(290px,1fr))!important;
  gap:34px!important;
  align-items:stretch!important;
}

.event-card{
  padding:clamp(28px,3.2vw,42px)!important;
  min-height:260px!important;
  border-width:2px!important;
  border-radius:26px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
}

.event-card h3{
  font-size:clamp(1.55rem,2.5vw,2.25rem)!important;
  line-height:1.05!important;
  margin-bottom:18px!important;
}

.event-card p{
  font-size:clamp(1rem,1.2vw,1.16rem)!important;
  line-height:1.68!important;
  max-width:62ch!important;
}

.event-date{
  font-size:.92rem!important;
  letter-spacing:.06em!important;
  margin-bottom:16px!important;
}

.event-card:hover{
  transform:translateY(-6px);
}

@media(max-width:900px){
  .event-grid{
    grid-template-columns:1fr!important;
    gap:24px!important;
  }
  .event-card{
    min-height:auto!important;
    padding:26px!important;
  }
}

@media(max-width:520px){
  .programme,
  #programm{
    padding-top:56px!important;
    padding-bottom:56px!important;
  }
  .event-card{
    border-radius:20px!important;
    padding:22px!important;
  }
  .event-card h3{
    font-size:1.55rem!important;
  }
  .event-card p{
    font-size:1rem!important;
    line-height:1.62!important;
  }
}
