.festivals-hero__container {
  position: relative;
}

.festivals-hero__grid {
  align-items: center;
}

.festivals-hero__content {
  min-width: 0;
}

.festivals-hero__subtitle {
  max-width: 36rem;
}

.festivals-hero__actions .btn {
  max-width: 100%;
}

.festivals-hero__visual {
  min-width: 0;
}

.festivals-hero__media {
  max-width: 32rem;
  margin-left: auto;
}

.festivals-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.festivals-hero__floating-card {
  pointer-events: none;
}

.festivals-hero__meta {
  margin-top: var(--space-5);
}

.festivals-hero__meta .hero-shell__meta-item {
  min-width: min(8rem, 100%);
}

.festivals-offer__grid {
  align-items: stretch;
}

.festivals-offer__text,
.festivals-offer__media {
  min-width: 0;
}

.festivals-offer__lead {
  max-width: 34rem;
}

.festivals-offer__filters {
  margin-top: var(--space-4);
}

.festivals-offer__cards {
  margin-top: var(--space-5);
}

.festivals-offer__card {
  min-width: 0;
}

.festivals-offer__media-shell {
  max-width: 22rem;
}

.festivals-offer__media-shell-secondary {
  max-width: 22rem;
  margin-left: auto;
}

.festivals-offer__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.festivals-venues__grid {
  align-items: center;
}

.festivals-venues__media,
.festivals-venues__text {
  min-width: 0;
}

.festivals-venues__media-shell {
  max-width: 30rem;
}

.festivals-venues__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.festivals-venues__lead {
  max-width: 34rem;
}

.festivals-venues__timeline {
  margin-top: var(--space-4);
}

.festivals-venues__stats {
  margin-top: var(--space-4);
}

.festivals-venues__cta-row {
  margin-top: var(--space-4);
  gap: var(--space-3);
}

.festivals-venues__cta {
  max-width: 100%;
}

.festivals-artists__header {
  gap: var(--space-4);
}

.festivals-artists__lead {
  max-width: 32rem;
}

.festivals-artists__tabs {
  flex-shrink: 0;
}

.festivals-artists__grid {
  align-items: stretch;
}

.festivals-artists__card {
  min-width: 0;
}

.festivals-artists__media-shell {
  margin-bottom: var(--space-4);
}

.festivals-artists__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.festivals-artists__note {
  margin-top: var(--space-2);
}

.festivals-gallery__layout {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.4fr);
  gap: clamp(2rem, 4vw, 3.5rem);
  align-items: flex-start;
}

.festivals-gallery__timeline,
.festivals-gallery__media {
  min-width: 0;
}

.festivals-gallery__timeline-inner {
  padding-left: 1.25rem;
}

.festivals-gallery__media-shell {
  margin-bottom: var(--space-4);
}

.festivals-gallery__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.festivals-gallery__grid-item {
  min-width: 0;
}

.festivals-gallery__cta-row {
  gap: var(--space-3);
}

.festivals-gallery__cta-row .btn {
  max-width: 100%;
}

.festivals-gallery__timeline-item {
  cursor: pointer;
  transition: transform var(--transition-fast), opacity var(--transition-base);
}

.festivals-gallery__timeline-item.is-active {
  transform: translateX(4px);
}

.festivals-gallery__timeline-item.is-muted {
  opacity: 0.6;
}

.festivals-counter {
  position: relative;
}

@media (max-width: 1023.98px) {
  .festivals-hero__media {
    max-width: 100%;
  }
  .festivals-offer__media-shell,
  .festivals-offer__media-shell-secondary,
  .festivals-venues__media-shell {
    max-width: 100%;
  }
  .festivals-gallery__layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .festivals-gallery__timeline {
    order: 2;
  }
  .festivals-gallery__media {
    order: 1;
  }
}

@media (max-width: 767.98px) {
  .festivals-hero__actions {
    align-items: stretch;
  }
  .festivals-hero__meta {
    gap: var(--space-3);
  }
  .festivals-offer__filters {
    margin-top: var(--space-3);
  }
  .festivals-offer__cards {
    margin-top: var(--space-4);
  }
  .festivals-venues__cta-row {
    flex-direction: column;
    align-items: stretch;
  }
  .festivals-artists__header {
    flex-direction: column;
    align-items: flex-start;
  }
  .festivals-artists__tabs {
    width: 100%;
    justify-content: flex-start;
  }
  .festivals-gallery__cta-row {
    flex-direction: column;
    align-items: stretch;
  }
}
