/**
 * ./assets/css/layout.css
 *
 * Main page layout, containers, archive layouts, and responsive structure.
 */

.site-main {
  width: 100%;
  max-width: none;
  margin: 0;
}

/**
 * Keep the homepage sticky-safe.
 * Do not set overflow hidden, auto, scroll, or clip on this ancestor because
 * it can prevent native position: sticky from working inside the program block.
 */
.festival-homepage {
  overflow: visible;
}

.festival-page,
.festival-archive,
.festival-single {
  padding: var(--daf-space-lg);
}

.festival-page__content,
.festival-single__article,
.festival-archive__header {
  max-width: var(--daf-content-width);
  margin: 0 auto;
}

.festival-page__title,
.festival-archive__title,
.festival-single__title {
  margin-bottom: var(--daf-space-lg);
}

.festival-page__body,
.festival-single__body {
  max-width: var(--daf-narrow-width);
}

.festival-archive__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--daf-space-md);
  max-width: var(--daf-content-width);
  margin: var(--daf-space-lg) auto 0;
}

.wp-site-blocks,
.site {
  min-height: 100%;
}

@media (max-width: 900px) {
  .festival-archive__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .festival-page,
  .festival-archive,
  .festival-single {
    padding: var(--daf-space-sm);
  }

  .festival-archive__grid {
    grid-template-columns: 1fr;
  }
}
