/* -------------------------------------------------------------------------- */
/* Projects page                                                             */
/* -------------------------------------------------------------------------- */

.projects-page {
  --projects-grid-gap: clamp(1rem, 1.65vw, 1.45rem);
}

.projects-page .ex-section {
  scroll-margin-top: 2rem;
}

.projects-page__hero {
  padding-top: clamp(5.5rem, 10vw, 8rem);
}

.projects-page__hero-card {
  min-height: clamp(31rem, 68vh, 48rem);
}

.projects-page__hero-card .ex-hero-copy {
  width: min(70%, 760px);
}

.projects-page__hero-card .ex-lead {
  max-width: 54ch;
}

.projects-page__grid {
  gap: var(--projects-grid-gap);
}

.projects-page__grid .ex-project-card {
  min-height: 100%;
}

.projects-page__grid .ex-photo-card__media {
  aspect-ratio: 16 / 10;
}

.projects-page__grid .ex-card__content {
  min-height: 13rem;
}

.projects-page__grid .ex-card__content h3 {
  margin-bottom: .75rem;
}

.projects-page__grid .ex-card__content > p:not(.ex-tag) {
  max-width: 34ch;
}

.projects-page__grid .ex-text-link {
  margin-top: auto;
}

.projects-page__cta {
  padding-top: clamp(3rem, 7vw, 6rem);
}

.projects-page__cta .ex-final-card {
  min-height: clamp(25rem, 48vw, 35rem);
}

.projects-page__cta .ex-final-card .ex-card__content {
  width: min(68%, 780px);
}

@media (max-width: 980px) {
  .projects-page__hero-card .ex-hero-copy {
    width: min(78%, 700px);
  }

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

  .projects-page__grid > .ex-card,
  .projects-page__grid > .ex-span-6 {
    grid-column: span 1;
  }
}

@media (max-width: 620px) {
  .projects-page__hero {
    padding-top: 4.5rem;
  }

  .projects-page__hero-card .ex-hero-copy,
  .projects-page__cta .ex-final-card .ex-card__content {
    width: 100%;
  }

  .projects-page__grid {
    grid-template-columns: 1fr;
  }

  .projects-page__grid > .ex-card,
  .projects-page__grid > .ex-span-6 {
    grid-column: 1 / -1;
  }
}
