/* Events & classes component and tickets. Reads the website's theme tokens. */
.events-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: clamp(12px, 2vw, 20px);
}
.event-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  padding: clamp(14px, 2.5vw, 22px);
  border: 1px solid var(--module-line);
  border-radius: var(--module-radius);
  background: var(--module-surface);
  min-width: 0;
}
.event-card.is-sold-out {
  opacity: 0.7;
}
.event-photo {
  grid-column: 1 / -1;
  width: 100%;
  max-height: 280px;
  object-fit: cover;
  border-radius: calc(var(--module-radius) * 0.7);
}
.event-date {
  display: grid;
  place-items: center;
  align-content: center;
  width: 64px;
  height: 64px;
  border-radius: calc(var(--module-radius) * 0.7);
  background: var(--accent, #333);
  color: var(--on-accent, #fff);
  line-height: 1.1;
}
.event-date strong {
  font-size: 24px;
}
.event-date span {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.event-body {
  display: grid;
  gap: 6px;
  min-width: 0;
}
.event-body h3,
.event-body p {
  margin: 0;
}
.event-when,
.event-meta {
  color: var(--quiet, #6b7080);
}
.event-reserve summary {
  list-style: none;
  display: inline-flex;
  margin-top: 6px;
  cursor: pointer;
}
.event-reserve summary::-webkit-details-marker {
  display: none;
}
.event-reserve form {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}
.event-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
  gap: 12px;
}
.event-reserve .field {
  display: grid;
  gap: 6px;
}
.event-reserve input,
.event-reserve select {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--module-line);
  border-radius: calc(var(--module-radius) * 0.6);
  background: transparent;
  color: inherit;
  font: inherit;
}
.ticket-qr svg {
  width: min(70vw, 220px);
  height: auto;
  margin: 12px auto;
  display: block;
}
@media (max-width: 480px) {
  .event-card {
    grid-template-columns: 1fr;
  }
}
