/* ============================================================
   CATEGORIES
   ============================================================ */

.home-categories {
  padding-top: 2rem;
  padding-bottom: 5rem;
}

.home-categories__action {
  flex-shrink: 0;
}


/* ============================================================
   HEADER
   ============================================================ */

.home-categories__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 2.25rem;
}


.home-categories__eyebrow {
  display: block;

  margin-bottom: 0.75rem;

  font-family: var(--font-body);

  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.12em;
  text-transform: uppercase;

  color: var(--color-accent-strong);
}


.home-categories__title {
  max-width: 42rem;

  margin: 0;

  font-family: var(--font-display);

  font-size: clamp(2.25rem, 4vw, 3.75rem);
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: -0.04em;

  color: var(--color-foreground);
}


.home-categories__intro {
  max-width: 30rem;

  margin: 0;

  align-self: end;

  font-size: 1rem;
  line-height: 1.65;

  color: var(--color-muted-foreground);
}


/* ============================================================
   GRID & CARDS
   ============================================================ */

.home-categories__grid {
  display: grid;

  grid-template-columns: 1fr;

  gap: 1rem;
}

.home-categories .category-card {
  min-height: 18.5rem;
  border-radius: var(--radius-lg, 1.25rem);
}

.home-categories .category-card__arrow {
  top: 1.125rem;
  right: 1.125rem;
  width: 2.375rem;
  height: 2.375rem;
}

.home-categories .category-card__arrow svg {
  width: 1.125rem;
  height: 1.125rem;
}

.home-categories .category-card__content {
  padding: 1.375rem;
}

.home-categories .category-card__title {
  font-size: 1.375rem;
  line-height: 1.15;
}

.home-categories .category-card__description {
  margin-top: 0.375rem;
  font-size: 0.875rem;
  line-height: 1.45;
}


/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (min-width: 640px) {

  .home-categories {
    padding-bottom: 5.5rem;
  }

  .home-categories__header {
    margin-bottom: 2.25rem;
  }

  .home-categories__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 1.25rem;
  }

  .home-categories .category-card {
    min-height: 20rem;
  }

  .home-categories .category-card__content {
    padding: 1.5rem;
  }

}


@media (min-width: 1024px) {

  .home-categories {
    padding-top: 2.5rem;
    padding-bottom: 6rem;
  }

  .home-categories__header {
    grid-template-columns: minmax(0, 1.5fr) minmax(18rem, 0.5fr);

    align-items: end;

    margin-bottom: 2.5rem;
  }

  .home-categories__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));

    gap: 1.25rem;
  }

  .home-categories .category-card {
    min-height: 21.5rem;
  }

  .home-categories .category-card__title {
    font-size: clamp(1.25rem, 1.3vw, 1.45rem);
  }

}


@media (min-width: 1280px) {

  .home-categories__grid {
    gap: 1.5rem;
  }

  .home-categories .category-card {
    min-height: 22.5rem;
  }

  .home-categories .category-card__content {
    padding: 1.625rem;
  }

  .home-categories .category-card__arrow {
    top: 1.25rem;
    right: 1.25rem;
    width: 2.5rem;
    height: 2.5rem;
  }

}


/* ============================================================
   COMPACT SCREENS / MACBOOK WITH LIMITED VERTICAL HEIGHT
   ============================================================ */

@media (min-width: 1024px) and (max-height: 780px) {

  .home-categories {
    padding-top: 1.75rem;
    padding-bottom: 3.5rem;
  }

  .home-categories__header {
    margin-bottom: 1.75rem;
  }

  .home-categories .category-card {
    min-height: 19.5rem;
  }

}