.hero__cta-group {
  margin-top: var(--space-4);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-3);
}

.themes-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-6);
}

.themes-grid--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.themes-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.themes-card--full {
  grid-column: 1 / -1;
}

.themes-card__media-wrap {
  border: 2px solid var(--color-border);
  background: var(--color-bg-muted);
}

.themes-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.themes-card__body {
  margin-top: var(--space-2);
}

.themes-card__list {
  margin-top: var(--space-3);
}

.themes-card__list li + li {
  margin-top: var(--space-2);
}

.themes-card__list--inline {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.themes-card__cta-row {
  margin-top: var(--space-4);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.themes-tags-list {
  margin-top: var(--space-4);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.themes-upcoming-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: var(--space-6);
  align-items: flex-start;
}

.themes-upcoming-overview {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.themes-upcoming-list {
  display: grid;
  gap: var(--space-4);
}

.themes-upcoming-item__title {
  text-transform: none;
  letter-spacing: 0.04em;
}

.themes-upcoming-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
}

.themes-reservation__form {
  margin-top: var(--space-4);
}

.section__header--compact {
  margin-bottom: var(--space-4);
}

.themes-steps-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
}

.themes-step {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.themes-step .btn {
  margin-top: auto;
}

@media (max-width: 960px) {
  .themes-grid--two {
    grid-template-columns: minmax(0, 1fr);
  }

  .themes-upcoming-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .themes-card--full {
    grid-column: auto;
  }
}

@media (max-width: 768px) {
  .themes-steps-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
