:root{
  --cmf-gap: clamp(0.75rem, 1.5vw, 1.25rem);
  --cmf-radius: 0;
  --cmf-aspect: 3/2;
  --cmf-overlay-from: rgba(0,0,0,.15);
  --cmf-overlay-to: rgba(0,0,0,.75);
  --cmf-text:#fff;
  --cmf-flag-bg:#ffc107;
  --cmf-flag-text:#111;
  --cmf-Ausverkauft-bg:#111827;
  --cmf-cancelled-bg:#ef4444;
}

/* Grid */
.em-events-grid {
  display:grid !important;
  gap:var(--cmf-gap);
  grid-template-columns:1fr;
}
@media (min-width:640px){
  .em-events-grid{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:1024px){
  .em-events-grid{grid-template-columns:repeat(3,1fr);}
}

/* Card */
.cmf-card{
  position:relative;
  border-radius:var(--cmf-radius);
  overflow:clip;
  aspect-ratio:var(--cmf-aspect);
  box-shadow:0 8px 24px rgba(0,0,0,.15);
  background:#111; /* fallback */

}

.cmf-link{
  position:absolute; inset:0;
  display:grid; place-items:end start;
  text-decoration:none; color:var(--cmf-text) !important;
}

/* Background media layer */
.cmf-media{
  position:absolute; inset:0; z-index:0;
  background-image:var(--bg, none);
  background-size:cover; background-position:center;
  transform-origin:center center;
  transition:transform 600ms cubic-bezier(.2,.8,.2,1);
  will-change:transform;
  filter: grayscale() contrast(.7) brightness(.85);
}

/* Gradient overlay for readability */
.cmf-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(45deg, rgba(0,57,55,0.8),rgba(13,109,79,0.77),rgba(23,165,104,0.74),rgba(30,226,129,0.7));
  pointer-events:none;
}

/* Content */
.cmf-content{
  position:relative; z-index:2;
  width:100%; padding:clamp(.9rem,1.8vw,1.25rem);
  display:grid; gap:.35rem;
}
.cmf-title{font-size: clamp(1.5rem, 2.8vw, 2rem); line-height:1.2; margin:0;}
.cmf-meta{margin:0; opacity:.95; font-size:clamp(.92rem,1.4vw,1.05rem);}

/* Status flag */
.cmf-flag{
  display:inline-block; align-self:start; margin-top:.35rem;
  padding:.25rem .5rem; border-radius:.5rem;
  background:var(--cmf-flag-bg); color:var(--cmf-flag-text);
  font-weight:700; letter-spacing:.2px; font-size:.9rem;
}
.cmf-card[data-status="Ausverkauft"] .cmf-flag{background:var(--cmf-Ausverkauft-bg); color:#fff;}
.cmf-card[data-status="low"] .cmf-flag{background:#f59e0b; color:#111;} /* Fast ausverkauft */
.cmf-card[data-status="Abgesagt"] .cmf-flag{background:var(--cmf-Abgesagt-bg); color:#fff;}

/* Focus styles */
.cmf-link:focus-visible{
  outline:3px solid #fff; outline-offset:3px; border-radius:var(--cmf-radius);
}

/* Desktop-only hover fallback (Parallax steuert JS; das hier ist nur Graceful Fallback) */
@media (hover:hover) and (pointer:fine) and (min-width:1024px){
  .cmf-card:hover .cmf-media{ transform:scale(1.08); }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .cmf-media{ transition:none !important; }
}
