
/*
 * Spirit JH – Live Schedule Block CSS
 * Samostatný stylesheet – funguje v jakémkoliv WordPress tématu.
 * Barvy jsou přes CSS proměnné; přepište je v tématu nebo Customizeru.
 */

/* ── Design tokeny (přepište v tématu dle potřeby) ─────────── */
.lsb-wrap {
  --lsb-brand:        #8C7B6E;
  --lsb-brand-dark:   #6A5C51;
  --lsb-brand-light:  #C9B9AD;
  --lsb-bg:           #FAF8F5;
  --lsb-surface:      #FFFFFF;
  --lsb-border:       #DDD5CC;
  --lsb-text:         #2C2420;
  --lsb-muted:        #7A6E68;
  --lsb-ok:           #3a7c55;
  --lsb-low:          #c0531a;
  --lsb-font-display: 'Cormorant Garamond', Georgia, serif;
  --lsb-font-body:    'Inter', system-ui, sans-serif;
  --lsb-radius:       12px;
  --lsb-shadow:       0 4px 16px rgba(0,0,0,.07);
}

/* ── Obal sekce ─────────────────────────────────────────────── */
.lsb-wrap {
  padding-block: 4rem;
  font-family: var(--lsb-font-body);
  color: var(--lsb-text);
}

.lsb-inner {
  max-width: 1140px;
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 5vw, 2.5rem);
}

/* ── Hlavička ───────────────────────────────────────────────── */
.lsb-header { margin-bottom: 2.5rem; }

.lsb-label {
  display: inline-block;
  font-size: .75rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--lsb-brand);
  margin-bottom: .75rem;
}

.lsb-heading {
  font-family: var(--lsb-font-display);
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: 300;
  line-height: 1.2;
  margin: 0 0 .75rem;
  color: var(--lsb-text);
}

.lsb-sub {
  font-size: 1.1rem;
  color: var(--lsb-muted);
  line-height: 1.7;
  margin: 0;
  max-width: 560px;
}

/* ── Stav načítání / chyba ──────────────────────────────────── */
.lsb-loading {
  display: flex;
  align-items: center;
  gap: .75rem;
  font-size: .875rem;
  color: var(--lsb-muted);
  padding: 1.5rem 0;
}

.lsb-error {
  font-size: .875rem;
  color: var(--lsb-muted);
  padding: 1.5rem 0;
}
.lsb-error a { color: var(--lsb-brand); text-decoration: underline; }
.lsb-error[hidden] { display: none; }

.lsb-spinner {
  display: inline-block;
  width: 18px;
  height: 18px;
  border: 2px solid var(--lsb-border);
  border-top-color: var(--lsb-brand);
  border-radius: 50%;
  animation: lsb-spin .7s linear infinite;
  flex-shrink: 0;
}
@keyframes lsb-spin { to { transform: rotate(360deg); } }

/* ── Mřížka karet ───────────────────────────────────────────── */
.lsb-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
  gap: 1.25rem;
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
}

.lsb-empty {
  grid-column: 1 / -1;
  font-size: .875rem;
  color: var(--lsb-muted);
  padding: 1.5rem 0;
}
.lsb-empty a { color: var(--lsb-brand); text-decoration: underline; }

/* ── Karta lekce ────────────────────────────────────────────── */
.lsb-card {
  background: var(--lsb-surface);
  border: 1px solid var(--lsb-border);
  border-radius: var(--lsb-radius);
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: .625rem;
  transition: box-shadow .2s ease, transform .2s ease;
}
.lsb-card:hover {
  box-shadow: var(--lsb-shadow);
  transform: translateY(-2px);
}

.lsb-card__head {
  display: flex;
  align-items: center;
  gap: .5rem;
}

.lsb-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--lsb-brand-light);
}

.lsb-card__day {
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--lsb-muted);
}

.lsb-card__title {
  font-family: var(--lsb-font-display);
  font-size: 1.4rem;
  font-weight: 300;
  line-height: 1.2;
  margin: 0;
  color: var(--lsb-text);
}

.lsb-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem .625rem;
  font-size: .75rem;
  color: var(--lsb-muted);
}

/* Obsazenost */
.lsb-card__occupancy {
  display: flex;
  flex-direction: column;
  gap: .375rem;
}

.lsb-bar {
  height: 5px;
  background: var(--lsb-border);
  border-radius: 999px;
  overflow: hidden;
}
.lsb-bar__fill {
  height: 100%;
  background: var(--lsb-brand-light);
  border-radius: 999px;
  transition: width .4s ease;
}

.lsb-avail {
  font-size: .75rem;
  font-weight: 500;
}
.lsb-avail--ok  { color: var(--lsb-ok); }
.lsb-avail--low { color: var(--lsb-low); }

/* Tlačítko rezervace */
.lsb-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: auto;
  padding: .625rem 1.25rem;
  border-radius: 999px;
  background: var(--lsb-brand);
  color: #fff;
  font-size: .875rem;
  font-weight: 500;
  text-decoration: none;
  transition: background .2s ease, transform .2s ease;
}
.lsb-btn:hover { background: var(--lsb-brand-dark); transform: translateY(-1px); color: #fff; }

/* Patička – odkaz na celý rozvrh */
.lsb-footer { text-align: center; padding-top: .5rem; }

.lsb-btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .625rem 1.5rem;
  border-radius: 999px;
  border: 2px solid var(--lsb-brand);
  color: var(--lsb-brand);
  font-size: .875rem;
  font-weight: 500;
  text-decoration: none;
  transition: background .2s ease, color .2s ease;
}
.lsb-btn-outline:hover {
  background: var(--lsb-brand);
  color: #fff;
}

/* ── Responzivita ───────────────────────────────────────────── */
@media (max-width: 640px) {
  .lsb-grid { grid-template-columns: 1fr; }
  .lsb-wrap { padding-block: 2.5rem; }
}
