/*
  Kursdetailseite. Kategoriefarbe kommt als --accent vom Template.
  Allgemeine Styles stehen in custom.css / index.css.
*/

.kurs { --accent: var(--color-accent); }

/* Kopf mit dezenter Kategorie-Tönung */
.kurs-kopf {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: calc(var(--padding) * -1);
  margin-bottom: 3rem;
  padding: 3.5rem var(--padding);
  background: color-mix(in srgb, var(--accent) 12%, #fff);
  border-top: 5px solid var(--accent);
}
.kurs-kopf > * {
  max-width: 70rem;
  margin-left: auto;
  margin-right: auto;
}
.kurs-kicker {
  display: block;
  font-size: .8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--accent);
  margin-bottom: .4rem;
}
.kurs-kopf h1 {
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  line-height: 1.15em;
  margin-bottom: .75rem;
}
.kurs-lead {
  font-size: 1.35rem;
  line-height: 1.45em;
  max-width: 45rem;
  color: var(--color-text);
}

/* Inhalt + Faktenleiste */
.kurs-grid { display: grid; gap: 2.5rem; }

.kurs-body h2 { margin-top: 2.5rem; }
.kurs-body h2:first-child { margin-top: 0; }

.kurs-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: .9rem;
  margin-top: 2.5rem;
}
.kurs .btn-accent,
.kurs .btn-accent-ghost {
  display: inline-block;
  font-weight: 600;
  font-size: 1rem;
  padding: .85rem 1.7rem;
  border-radius: 999px;
  border: 2px solid var(--accent);
  text-decoration: none;
  transition: transform .15s, background .15s, color .15s;
}
.kurs .btn-accent { background: var(--accent); color: var(--accent-text, #fff); }
.kurs .btn-accent:hover { transform: translateY(-2px); }
.kurs .btn-accent-ghost { background: transparent; color: var(--accent); }
.kurs .btn-accent-ghost:hover { background: color-mix(in srgb, var(--accent) 10%, #fff); }

/* Faktenbox */
.fakten {
  border: 2px solid var(--color-light);
  border-top: 4px solid var(--accent);
  border-radius: var(--radius);
  padding: 1.5rem;
}
.fakten h2 {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 1rem;
}
.fakt {
  display: flex;
  flex-direction: column;
  padding: .6rem 0;
  border-bottom: 1px solid var(--color-light);
  line-height: 1.4em;
}
.fakt:last-child { border-bottom: 0; padding-bottom: 0; }
.fakt strong { font-weight: 600; }
.fakt span { color: var(--color-text-grey); }

/* Flyer-Download – bewusst neutral (grau), hebt sich von den Akzent-Buttons ab */
.kurs-flyer {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--color-light);
}
.kurs .btn-flyer {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  background: var(--color-light);
  color: var(--color-headings);
  font-weight: 600;
  font-size: 1rem;
  /* gleiche Höhe wie die Akzent-Buttons (Polster + 2px Rahmen) */
  padding: .85rem 1.7rem;
  border: 2px solid transparent;
  border-radius: 999px;
  text-decoration: none;
  transition: background .15s, transform .15s;
}
.kurs .btn-flyer:hover {
  background: #e2e2e2;
  transform: translateY(-2px);
}
.kurs .btn-flyer img {
  width: 1.15rem;
  height: auto;
  display: block;
}

.kurs-zurueck {
  margin-top: 3.5rem;
}
.kurs-zurueck a {
  color: var(--accent);
  font-weight: 600;
}

/* =========================================================
   Terminliste (edoobox-Daten in CSTN-Optik)
   ========================================================= */
.termine {
  margin-top: 3.5rem;
  padding-top: 2.5rem;
  border-top: 1px solid var(--color-light);
}
.termine-kicker {
  display: block;
  font-size: .8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--accent);
  margin-bottom: .4rem;
}
.termine-kopf h2 { margin-bottom: .6rem; }
.termine-intro {
  color: var(--color-text-grey);
  max-width: 45rem;
  margin-bottom: 1.8rem;
}
.termine-intro a { color: var(--accent); font-weight: 600; }

.termine-demo {
  font-size: .85rem;
  color: var(--color-text-grey);
  background: color-mix(in srgb, var(--accent) 8%, #fff);
  border: 1px dashed color-mix(in srgb, var(--accent) 35%, #fff);
  border-radius: var(--radius);
  padding: .6rem .9rem;
  margin-bottom: 1.4rem;
}
.termine-leer {
  color: var(--color-text-grey);
}
.termine-leer a { color: var(--accent); font-weight: 600; }

.termin-liste {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .9rem;
}
.termin {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .9rem 1.2rem;
  align-items: center;
  background: #fff;
  border: 1px solid var(--color-light);
  border-radius: var(--radius);
  padding: 1.1rem 1.3rem;
}
.termin-datum {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 4rem;
  padding: .5rem .6rem;
  background: color-mix(in srgb, var(--accent) 10%, #fff);
  border-radius: var(--radius);
  line-height: 1.05;
}
.termin-tag {
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--accent);
}
.termin-monat {
  font-size: .75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--color-headings);
}
.termin-titel {
  font-size: 1.05rem;
  margin: 0 0 .15rem;
}
.termin-meta {
  font-size: .9rem;
  color: var(--color-text-grey);
  margin: 0;
}
.termin-preis {
  font-weight: 600;
  color: var(--color-headings);
  white-space: nowrap;
}
.termin-status {
  font-size: .8rem;
  font-weight: 600;
  white-space: nowrap;
}
.termin-status.status-frei { color: #1e7d4f; }
.termin-status.status-wenige { color: #b4690e; }
.termin-status.status-ausgebucht,
.termin-status.status-geschlossen { color: var(--color-text-grey); }

.btn-buchen {
  display: inline-block;
  font-weight: 600;
  font-size: 1rem;
  padding: .7rem 1.5rem;
  border-radius: 999px;
  background: var(--accent);
  color: var(--accent-text, #fff);
  text-decoration: none;
  white-space: nowrap;
  transition: transform .15s;
}
.btn-buchen:hover { transform: translateY(-2px); }
.btn-buchen.ist-deaktiviert {
  background: var(--color-light);
  color: var(--color-text-grey);
  cursor: default;
}
.termin.ist-gesperrt { opacity: .72; }

@media screen and (min-width: 48rem) {
  .termin {
    grid-template-columns: auto 1fr auto auto auto;
    gap: 1.4rem;
  }
  .termin-datum { grid-row: span 1; }
}

@media screen and (min-width: 55rem) {
  .kurs-grid {
    grid-template-columns: 1.7fr 1fr;
    align-items: start;
  }
}
