.schedule-hero-media {
  display: flex;
  align-items: center;
  justify-content: center;
}

.schedule-hero-figure {
  max-width: 480px;
  margin: 0 auto;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border-subtle);
  box-shadow: var(--shadow-soft);
}

.schedule-hero-image {
  width: 100%;
  height: auto;
}

.schedule-hero-caption {
  padding: var(--space-3);
  font-size: var(--font-size-xs);
  color: var(--color-text-soft);
}

.schedule-legend {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.schedule-table-wrapper {
  overflow-x: auto;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border-subtle);
  background: var(--color-surface-soft);
}

.schedule-table {
  min-width: 640px;
}

.schedule-hint {
  font-size: var(--font-size-sm);
  color: var(--color-text-soft);
}

.schedule-featured-aside {
  display: flex;
  flex-direction: column;
}

.schedule-featured-figure {
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.schedule-featured-image {
  width: 100%;
  height: auto;
}

.schedule-featured-caption {
  padding-top: var(--space-2);
  font-size: var(--font-size-xs);
  color: var(--color-text-soft);
}

.schedule-streams-media {
  max-width: 420px;
  margin-left: auto;
}

.schedule-streams-figure {
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border-subtle);
}

.schedule-streams-image {
  width: 100%;
  height: auto;
}

.schedule-streams-caption {
  padding: var(--space-3);
  font-size: var(--font-size-xs);
  color: var(--color-text-soft);
}

.schedule-cta {
  justify-content: flex-start;
}

.schedule-faq {
  display: grid;
  gap: var(--space-4);
}

.schedule-faq-item {
  border-radius: var(--radius-lg);
  padding: var(--space-4);
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border-subtle);
}

.schedule-faq-question {
  margin-bottom: var(--space-2);
}

.schedule-faq-answer {
  margin-bottom: 0;
}

@media (max-width: 767px) {
  .schedule-table {
    min-width: 520px;
  }

  .schedule-featured-aside {
    order: -1;
  }

  .schedule-streams-media {
    max-width: none;
    margin-left: 0;
  }

  .schedule-legend {
    margin-top: var(--space-4);
  }
}
