/* ==========================================================================
   Barockreitzentrum Heimsheim — kurskalender.css
   Modul "Kurskalender" auf kurse-und-termine.html. Setzt tokens.css voraus.
   Eigenstaendig: keine gemeinsamen Klassen mit den Saal- und Besichtigungs-Kalendern.
   ========================================================================== */

.kk__kopf { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); margin-bottom: var(--sp-4); }
.kk__monat { margin: 0; font-family: var(--font-display); font-size: clamp(1.4rem, 1.2rem + 1vw, 2rem); line-height: 1.1; text-align: center; }
.kk__pfeil { flex: none; width: 2.75rem; height: 2.75rem; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: var(--r-pill);
  background: transparent; color: var(--ink); cursor: pointer; transition: background-color .15s, border-color .15s; }
.kk__pfeil svg { width: 1.2rem; height: 1.2rem; }
.kk__pfeil:hover:not(:disabled) { background: var(--brass-tint); border-color: var(--brass); }
.kk__pfeil:focus-visible { outline: 2px solid var(--brass); outline-offset: 2px; }
.kk__pfeil:disabled { opacity: .3; cursor: default; }

.kk__tabelle { width: 100%; table-layout: fixed; border-collapse: collapse; }
.kk__tabelle th { padding: var(--sp-2) 0; font-size: .8rem; font-weight: 600; letter-spacing: .04em; text-align: center; color: var(--ink); opacity: .7; }
.kk__tabelle td { height: 7rem; padding: .3rem; vertical-align: top; border: 1px solid var(--line); overflow: hidden; }
.kk__tabelle td.kk__leer { background: rgba(26, 24, 21, .025); }
.kk__tag { display: block; margin-bottom: .2rem; font-size: .85rem; line-height: 1.5; }
.kk__tabelle td.kk__vorbei .kk__tag { opacity: .45; }
.kk__tabelle td.kk__heute .kk__tag { display: inline-block; min-width: 1.5em; border-radius: var(--r-pill); background: var(--ink); color: var(--paper); text-align: center; font-weight: 600; }

.kk__chip { display: block; margin-top: .2rem; padding: .2rem .35rem; border-radius: var(--r-xs); background: var(--brass-tint); border-left: 3px solid var(--brass);
  color: var(--ink); font-size: .78rem; line-height: 1.25; overflow-wrap: anywhere; text-decoration: none; }
a.kk__chip:hover { background: var(--brass-light); }
a.kk__chip:focus-visible { outline: 2px solid var(--brass); outline-offset: 1px; }
.kk__chip small { display: block; font-size: .92em; opacity: .75; }
.kk__tabelle td.kk__vorbei .kk__chip { opacity: .55; }

.kk__liste-titel { margin: var(--sp-6) 0 var(--sp-3); font-size: 1.05rem; font-family: var(--font-ui); font-weight: 600; }
.kk__liste { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.kk__liste li { display: grid; grid-template-columns: minmax(7.5rem, auto) 1fr; gap: var(--sp-1) var(--sp-4); padding: var(--sp-3) 0; border-bottom: 1px solid var(--line); margin: 0; }
.kk__liste-datum { font-weight: 600; }
.kk__liste-zeit { display: block; font-size: .9rem; opacity: .75; }
.kk__leertext { margin: var(--sp-5) 0 0; }
.kk__naechster { margin-top: var(--sp-3); padding: 0; border: 0; background: none; color: inherit; font: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }

@media (max-width: 760px) {
  .kk__tabelle td { height: 4.75rem; padding: .12rem; }
  .kk__tabelle th { font-size: .72rem; }
  .kk__tag { font-size: .75rem; margin-bottom: 0; }
  .kk__chip { padding: .1rem .15rem; border-left-width: 2px; font-size: .6rem; line-height: 1.15; overflow-wrap: anywhere; hyphens: auto; }
  .kk__chip small { display: none; }
  .kk__liste li { grid-template-columns: 1fr; }
}

/* Sprung aus dem Kalender: Ziel unter dem festen Header und kurz hervorgehoben */
.offer { scroll-margin-top: 6rem; }
.offer:target { animation: kk-ziel 2.4s ease-out; }
@keyframes kk-ziel { 0%, 45% { background-color: var(--brass-tint); } 100% { background-color: transparent; } }
@media (prefers-reduced-motion: reduce) { .offer:target { animation: none; background-color: var(--brass-tint); } }
