.elementor-158 .elementor-element.elementor-element-309dc5e0{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-158 .elementor-element.elementor-element-479e1b1{--display:flex;}/* Start custom CSS for html, class: .elementor-element-b80a753 *//* =========================================================
   Heimatfest Spremberg 2026 – Tagesprogramm
   Akzentfarben: #EA0404 (Rot) · #009D3D (Grün)
   ========================================================= */

:root {
  --rot: #EA0404;
  --gruen: #009D3D;
  --rot-dunkel: #b00303;
  --gruen-dunkel: #007a2f;

  --text: #1b1b1b;
  --text-leise: #5c5c5c;
  --bg: #f4f5f3;
  --karte: #ffffff;
  --linie: #e6e6e2;

  --radius: 14px;
  --schatten: 0 6px 22px rgba(0, 0, 0, 0.07);
  --schatten-hover: 0 12px 30px rgba(0, 0, 0, 0.12);
}

* {
  box-sizing: border-box;
}

/* ---------- Layout der Karten ---------- */

main {
  max-width: 980px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1.5rem;
  align-items: start;
}

article {
  background: var(--karte);
  border-radius: var(--radius);
  padding: 1.4rem 1.5rem 1.5rem;
  box-shadow: var(--schatten);
  border-top: 4px solid var(--rot);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

/* abwechselnde Akzentkante */
article:nth-of-type(even) {
  border-top-color: var(--gruen);
}

article:hover {
  transform: translateY(-3px);
  box-shadow: var(--schatten-hover);
}

article h3 {
  margin: 0 0 0.25rem;
  font-size: 1.18rem;
  font-weight: 700;
  color: var(--text);
}

article h3 small {
  font-weight: 500;
  color: var(--text-leise);
}

/* Veranstalter / Organisator-Zeile (erstes <p> nach h3) */
article h3 + p {
  margin: 0 0 1rem;
  font-size: 0.82rem;
  color: var(--text-leise);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* ---------- Programm-Liste ---------- */

dl {
  margin: 0;
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 0.55rem 0.9rem;
}

dt {
  font-weight: 700;
  font-size: 0.82rem;
  color: var(--gruen-dunkel);
  white-space: nowrap;
  padding: 0.15rem 0.55rem;
  background: rgba(0, 157, 61, 0.1);
  border-radius: 6px;
  height: max-content;
}

dt small {
  display: block;
  font-weight: 500;
  opacity: 0.8;
}

dd {
  margin: 0;
  align-self: center;
  font-size: 0.95rem;
}

dd strong {
  color: var(--rot);
}

/* Hinweis-Fußnoten (kleine <p><small> nach der Liste) */
article > p:not(:first-of-type) {
  margin: 1rem 0 0;
  padding-top: 0.8rem;
  border-top: 1px dashed var(--linie);
}

article small {
  color: var(--text-leise);
  font-size: 0.8rem;
  line-height: 1.45;
}

/* ---------- Ausstellungs-Block ---------- */

section {
  grid-column: 1 / -1;
  margin-top: 1rem;
}

section > h2 {
  position: relative;
  margin: 1rem 0 1.5rem;
  padding-left: 0.9rem;
  font-size: 1.5rem;
  font-weight: 800;
}

section > h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.1em;
  bottom: 0.1em;
  width: 5px;
  border-radius: 3px;
  background: linear-gradient(var(--rot), var(--gruen));
}

section {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1.5rem;
  align-items: start;
}

/* ---------- Responsive ---------- */

@media (max-width: 480px) {
  body {
    padding: 0 0.6rem 3rem;
  }
  header {
    padding: 2rem 1.2rem;
    border-radius: 0 0 var(--radius) var(--radius);
  }
  dl {
    grid-template-columns: 1fr;
    gap: 0.2rem 0;
  }
  dt {
    margin-top: 0.6rem;
  }
  dd {
    margin-bottom: 0.3rem;
  }
}/* End custom CSS */