/* PROGRAMM & AGENDA — large-radius 3D carousel, real WP featured images only. */
.cf-programm .cf-sticky{
  opacity:0;
  transform-style:flat;
}

.cf-stage-word--programm{
  left:4vw;
  top:49%;
  color:rgba(255,255,255,.070);
  font-size:clamp(7rem,20vw,22rem);
  text-shadow:0 0 3rem rgba(204,23,21,.035);
}

.cf-programm__label{
  position:absolute;
  left:6vw;
  top:9vh;
  z-index:18;
  color:var(--cf-red);
  font-size:.64rem;
  font-weight:800;
  letter-spacing:.20em;
  text-transform:uppercase;
}

.cf-programm__track{
  position:absolute;
  left:0;
  top:16vh;
  width:100%;
  height:72vh;
  margin:0;
  padding:0;
  display:block;
  z-index:12;
  overflow:visible;
  perspective:1800px;
  transform:none;
  /* Flatten only the parent hit-test plane; item transforms remain fully 3D. */
  transform-style:flat;
}

.cf-programm__item{
  position:absolute;
  left:50%;
  top:50%;
  display:block;
  width:clamp(19rem,29vw,32rem);
  height:59vh;
  margin:0;
  color:#fff;
  text-decoration:none;
  opacity:.2;
  backface-visibility:hidden;
  transform-origin:50% 50%;
  transform-style:flat;
  will-change:transform,opacity,filter;
}

.cf-programm__item::before{
  content:"";
  position:absolute;
  left:8%;
  right:8%;
  top:5%;
  bottom:10%;
  z-index:-1;
  pointer-events:none;
  opacity:.18;
  background:linear-gradient(118deg,transparent 18%,rgba(255,255,255,.07) 42%,rgba(204,23,21,.08) 51%,transparent 74%);
  filter:blur(22px);
  transform:scale(.94);
  transition:opacity .28s ease,transform .28s ease;
}

.cf-programm__item.is-active::before{opacity:.82;transform:scale(1.08)}
.cf-programm__item:hover::before{opacity:.68}

.cf-programm__image{
  position:relative;
  width:min(22vw,21rem);
  aspect-ratio:1/1;
  overflow:hidden;
  margin:0 auto 1rem;
  border-radius:50%;
  background:#0a0a0b;
  box-shadow:0 0 0 1px rgba(204,23,21,.90),0 0 .8rem rgba(255,255,255,.12),0 0 2.4rem rgba(204,23,21,.34),0 2.2rem 5.5rem rgba(0,0,0,.50);
  transition:box-shadow .28s ease,transform .28s ease;
}

.cf-programm__image::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  border-radius:inherit;
  pointer-events:none;
  opacity:.52;
  background:linear-gradient(138deg,rgba(255,255,255,.20),transparent 18% 62%,rgba(204,23,21,.10) 82%,transparent),radial-gradient(circle at 34% 24%,rgba(255,255,255,.12),transparent 22%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.055),inset 0 0 2.4rem rgba(255,255,255,.025);
  transition:opacity .28s ease,box-shadow .28s ease;
}

.cf-programm__image::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(204,23,21,.15),transparent 48%),linear-gradient(0deg,rgba(0,0,0,.3),transparent 58%);
}

.cf-programm__image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(.68) contrast(1.14) brightness(.64);
  transform:scale(1.08);
  transition:filter .35s ease,transform .65s var(--cf-ease);
}

.cf-programm__meta{
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:1rem;
  align-items:end;
  width:92%;
  margin:0 auto;
  text-shadow:0 .15rem .8rem rgba(0,0,0,.58);
}

.cf-programm__item--no-image .cf-programm__meta{margin-top:12vh}

.cf-programm__date{
  display:grid;
  grid-template-columns:auto auto;
  grid-template-rows:auto auto;
  align-items:end;
  column-gap:.45rem;
  min-width:clamp(7.5rem,9vw,9.5rem);
}

.cf-programm__date strong{
  grid-row:1/3;
  font-size:clamp(4.25rem,6.7vw,7.6rem);
  line-height:.78;
  letter-spacing:-.03em;
  color:#fff;
  text-shadow:0 0 1.15rem rgba(255,255,255,.055);
  transform-origin:50% 70%;
  transition:transform .28s var(--cf-ease),color .2s ease,text-shadow .28s ease;
}

.cf-programm__date span{
  align-self:end;
  color:var(--cf-red);
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.11em;
}

.cf-programm__date small{
  align-self:start;
  margin-top:.22rem;
  color:rgba(255,255,255,.45);
  font-size:.66rem;
  font-weight:700;
  letter-spacing:.12em;
}

.cf-programm__item h3{
  max-width:16ch;
  margin:0;
  font-size:clamp(1.6rem,2.4vw,2.85rem);
  line-height:.92;
  letter-spacing:-.01em;
  text-transform:uppercase;
  text-wrap:balance;
}


/* Keep the linked date native-white on hover; the day scales subtly as the link affordance. */
.cf-programm__item:hover,
.cf-programm__item:focus-visible{color:#fff}
.cf-programm__item:hover .cf-programm__date strong,
.cf-programm__item:focus-visible .cf-programm__date strong{
  color:#fff;
  transform:scale(1.08);
  text-shadow:0 0 1.35rem rgba(255,255,255,.16);
}

.cf-programm__item.is-active{z-index:3}
.cf-programm__item.is-active .cf-programm__image::before{
  opacity:.86;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),inset 0 0 3rem rgba(255,255,255,.045);
}
.cf-programm__item.is-active .cf-programm__image img{
  filter:saturate(1) contrast(1.06) brightness(.98);
  transform:scale(1.015);
}
.cf-programm__item.is-active .cf-programm__date span,
.cf-programm__item.is-active h3,
.cf-programm__item:hover .cf-programm__date span,
.cf-programm__item:hover h3{color:var(--cf-red)}
.cf-programm__item:hover .cf-programm__image::before{opacity:.76}

.cf-programm__all{
  position:absolute;
  left:50%;
  right:auto;
  bottom:7vh;
  z-index:18;
  translate:-50% 0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:3.15rem;
  padding:.78rem 1.25rem;
  border:1px solid rgba(204,23,21,.88);
  border-radius:.32rem;
  background:linear-gradient(180deg,rgba(204,23,21,.10),rgba(204,23,21,.035));
  color:var(--cf-red);
  box-shadow:inset 0 0 .9rem rgba(204,23,21,.09),0 0 .55rem rgba(204,23,21,.38),0 0 1.55rem rgba(204,23,21,.18);
  text-shadow:0 0 .35rem rgba(255,78,74,.58),0 0 .9rem rgba(204,23,21,.92),0 0 1.7rem rgba(204,23,21,.48);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.12em;
  text-decoration:none;
  text-transform:uppercase;
  white-space:nowrap;
  scale:1;
  transition:scale .22s var(--cf-ease),box-shadow .25s ease,border-color .25s ease,background .25s ease;
}

.cf-programm__all:hover,
.cf-programm__all:focus-visible{
  scale:1.045;
  border-color:rgba(255,70,66,.96);
  background:linear-gradient(180deg,rgba(204,23,21,.16),rgba(204,23,21,.055));
  box-shadow:inset 0 0 1rem rgba(204,23,21,.13),0 0 .75rem rgba(204,23,21,.60),0 0 2.15rem rgba(204,23,21,.30);
}
