/* =============================================================================
   Mini Cafe · Fassung 2 · Event-Seiten (6.4.3, 6.4.4, 7.3.2) – gemeinsamer Aufbau.
   Nur Rollen-Variablen aus basis.css. Bausteine: .ev-kopf (Titel + Bild), .ev-held (Hauptbild),
   .ev-fakten (Eckdaten), .ev-galerie/.ev-kachel (Bilder oder „Fotos folgen“), .ev-handlung, .ev-weitere.
   Kein Bogen, keine Linien: ruhige Rechtecke mit abgerundeten Ecken.
   ============================================================================= */

/* ---------- Kopf -------------------------------------------------------------- */
.ev-kopf { display: grid; gap: var(--a-8); padding-bottom: 0; }
.ev-kopf-text { display: grid; gap: var(--a-3); align-content: center; justify-items: start; min-width: 0; }
.ev-kopf-text > p { margin-top: 0; }
.ev-zurueck { display: inline-flex; align-items: center; gap: 8px; min-height: var(--tippen); }
.ev-zurueck .symbol { width: 20px; height: 20px; }
.ev-kopf h1 { overflow-wrap: anywhere; hyphens: auto; }
.ev-chips { gap: 10px 14px; margin-top: var(--a-1); }
.ev-datum { display: flex; align-items: center; gap: 8px; margin: 0; font: 600 16px/1.2 var(--schrift); color: var(--text); }
.ev-datum .symbol { width: 20px; height: 20px; color: var(--haupt); }
html[data-look="dunkel"] .ev-datum .symbol { color: var(--akzent); }

.ev-held { position: relative; margin: 0; border-radius: var(--rund-gross); overflow: hidden; background: var(--flaeche-tief); min-width: 0; }
.ev-held > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ev-held--hoch { aspect-ratio: 4 / 5; }
.ev-held--quer { aspect-ratio: 4 / 3; }
.ev-held--flyer { aspect-ratio: 990 / 1400; background: #fff; max-width: 520px; width: 100%; }
.ev-held figcaption { position: absolute; left: 12px; bottom: 12px; max-width: calc(100% - 24px); padding: 6px 12px; border-radius: var(--rund-pille); background: var(--grund); color: var(--text); font: 600 14px/1.25 var(--schrift); }

@media (min-width: 1024px) {
  .ev-kopf--bild { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 80px; align-items: center; }
  .ev-kopf h1 { font-size: clamp(48px, 5.4vw, 80px); }
  .ev-held--hoch, .ev-held--flyer { justify-self: end; max-width: 500px; width: 100%; }
  .ev-held--quer { justify-self: end; max-width: 640px; width: 100%; }
  .ev-kopf:not(.ev-kopf--bild) .ev-kopf-text { max-width: 820px; }
}

/* ---------- Texte -------------------------------------------------------------- */
.ev-text { min-width: 0; align-content: start; }
.ev-text p { max-width: 36em; font-size: var(--gr-text); line-height: 1.55; }
.ev-text > p:first-child { font-size: var(--gr-lead); }
.ev-text > div { min-width: 0; }
.ev-text > div > .abzeichen { max-width: 100%; }
@media (min-width: 1024px) {
  .ev-zwei { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 80px; }
  .ev-text { gap: var(--a-4); }
}

/* ---------- Eckdaten ------------------------------------------------------------- */
.ev-fakten { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 20px; }
.ev-fakt { display: grid; gap: 10px; align-content: start; min-width: 0; padding: 20px 22px; border-radius: var(--rund-karte); background: var(--flaeche); }
.ev-fakt dt { display: flex; align-items: center; gap: 10px; font: 600 15px/1.2 var(--schrift); color: var(--text-neben); }
.ev-fakt dt .symbol { width: 22px; height: 22px; color: var(--haupt); }
html[data-look="dunkel"] .ev-fakt dt .symbol { color: var(--akzent); }
.ev-fakt dd { margin: 0; font: var(--gewicht-stark) var(--gr-text)/1.4 var(--schrift); overflow-wrap: anywhere; }
.ev-fakt dd .abzeichen { margin-top: 8px; }
.ev-fakt dd .abzeichen:first-child { margin-top: 0; }
@media (min-width: 720px) { .ev-fakten { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
  .ev-fakten { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: 40px; }
  .ev-fakt { padding: 26px 28px 30px; }
}

/* ---------- Bilder ---------------------------------------------------------------- */
.ev-galerie { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 20px; align-items: start; }
.ev-kachel { margin: 0; overflow: hidden; border-radius: var(--rund-gross); background: var(--flaeche-tief); min-width: 0; }
.ev-kachel > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ev-kachel--quer { aspect-ratio: 3 / 2; }
.ev-kachel--hoch { aspect-ratio: 781 / 1400; max-width: 420px; background: #fff; }
.ev-kachel--hoch > img { object-fit: contain; }
.ev-kachel--platz { display: grid; place-items: center; align-content: center; gap: 12px; min-height: 220px; padding: 28px 22px; text-align: center; background: var(--flaeche); }
.ev-kachel--platz p { font: var(--gewicht-stark) var(--gr-name)/1.2 var(--schrift); }
.ev-platz-zeichen { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--flaeche-tief); }
.ev-platz-zeichen .symbol { width: 30px; height: 30px; }
@media (min-width: 720px) {
  .ev-galerie { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .ev-galerie { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 40px; }
  .ev-kachel--platz { min-height: 320px; }
}
.ev-galerie:has(> .ev-kachel--platz:only-child) { grid-template-columns: minmax(0, 1fr); }
.ev-galerie > .ev-kachel--platz:only-child { min-height: 240px; }

/* ---------- Handlung ---------------------------------------------------------------- */
.ev-handlung { display: grid; gap: var(--a-4); justify-items: start; padding: var(--a-8) var(--a-6); border-radius: var(--rund-gross); background: var(--flaeche); }
.ev-handlung p { max-width: 34em; font-size: var(--gr-lead); line-height: 1.45; }
@media (min-width: 1024px) { .ev-handlung { padding: 64px 72px; gap: var(--a-6); } }

/* ---------- Weitere Events ------------------------------------------------------------- */
.ev-weitere { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin-top: 20px; }
.ev-weitere a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 64px; padding: 0 22px; border-radius: var(--rund-karte); background: var(--flaeche); font: 600 var(--gr-text)/1.25 var(--schrift); color: var(--text); text-decoration: none; transition: background var(--dauer-druck) var(--kurve-druck); }
.ev-weitere a:active { background: var(--flaeche-druck); }
.ev-weitere .symbol { width: 22px; height: 22px; }
@media (hover: hover) { .ev-weitere a:hover { background: var(--flaeche-druck); } }
@media (min-width: 720px) { .ev-weitere { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .ev-weitere { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 32px; } .ev-weitere a { min-height: 76px; padding: 0 28px; } }

/* Sprung zu einem Abschnitt: Ziel kurz hervorheben */
.ev-ziel { animation: ev-hervor 1.4s var(--kurve-gleiten); }
@keyframes ev-hervor { 0% { box-shadow: 0 0 0 7px color-mix(in srgb, var(--akzent) 70%, transparent); } 100% { box-shadow: 0 0 0 7px transparent; } }

.ev-text .ev-hinweis { font-size: var(--gr-klein); color: var(--text-neben); }
@media (min-width: 1024px) { .ev-galerie[data-n="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ev-galerie[data-n="1"] { grid-template-columns: minmax(0, 1fr); }
.ev-kopf h1 + p { margin-top: var(--a-1); }
