.hero--events {
  position: relative;
}

.events-grid {
  margin-top: var(--space-8);
}

.events-card {
  height: 100%;
}

.events-card__media {
  margin: var(--space-4) 0 var(--space-3);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.events-card__media img {
  width: 100%;
  height: 220px;
  object-fit: cover;
}

.section--events-formats {
  background: radial-gradient(circle at top, rgba(22, 163, 74, 0.08), transparent 60%);
}

.events-list__item + .events-list__item {
  margin-top: var(--space-5);
}

.events-list__item h3 {
  margin-bottom: var(--space-2);
}

.events-community__card {
  margin-top: var(--space-4);
}

.events-community__list {
  margin-bottom: var(--space-4);
}

.events-community__list li + li {
  margin-top: var(--space-3);
}

.section--events-calendar {
  background: var(--color-surface-soft);
}

.events-calendar__layout {
  align-items: flex-start;
  gap: var(--space-10);
}

.events-calendar__items {
  margin-top: var(--space-4);
}

.events-calendar__item + .events-calendar__item {
  margin-top: var(--space-4);
}

.events-calendar__item h3 {
  margin-bottom: var(--space-2);
}

.events-calendar__figure {
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--color-border-subtle);
  box-shadow: var(--shadow-soft);
}

.events-calendar__figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.section--events-reservation {
  background: radial-gradient(circle at top, rgba(245, 199, 109, 0.08), transparent 55%);
}

.events-reservation__card {
  max-width: 100%;
}

.events-reservation__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: var(--space-8);
}

.events-reservation__intro {
  max-width: 520px;
}

.events-reservation__form-wrapper {
  align-self: stretch;
}

.events-form__footer {
  margin-top: var(--space-6);
}

.events-form__note {
  font-size: var(--font-size-xs);
  color: var(--color-text-soft);
  margin-top: var(--space-3);
}

@media (max-width: 1024px) {
  .events-reservation__inner {
    grid-template-columns: minmax(0, 1fr);
  }

  .events-reservation__intro {
    max-width: none;
  }
}

@media (max-width: 768px) {
  .events-card__media img {
    height: 190px;
  }

  .events-calendar__layout {
    gap: var(--space-6);
  }

  .events-reservation__card {
    padding: var(--space-4);
  }
}
