.banner-container {
  position: relative;

  .banners {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    white-space: nowrap;
    width: 100%;

    &::-webkit-scrollbar {
      display: none;
    }

    .banner {
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: var(--font-size-2xl);
      transition: transform var(--transition-base);
      min-width: 100%;
      height: 708px;
      scroll-snap-align: start;
      background-color: #fff;
      cursor: pointer;

      .banner-image {
        height: 100%;
        width: auto;
        object-fit: cover;
      }

      .banner-content {
        flex: 1;
        padding: 0 var(--spacing-lg);
        user-select: none;
        -webkit-user-select: none;

        .banner-title {
          font-size: var(--font-size-2xl);
          font-weight: 600;
        }

        .banner-summary {
          font-size: var(--font-size-base);
          margin: 16px 0 0;
        }
      }
    }
  }

  .dots {
    position: absolute;
    bottom: 1rem;
    left: 1rem;
    display: flex;
    gap: 8px;
    align-items: center;

    .dot {
      display: inline-block;
      width: 16px;
      height: 16px;
      border-radius: var(--border-radius-full);
      background-color: #FFF;
      cursor: pointer;
      transition: background-color var(--transition-base);

      &.active {
        background-color: var(--color-primary);
      }
    }
  }
}

.category-container {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 1rem;

  .categories {
    display: flex;
    gap: 1rem;

    .category-item {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: .5rem;
      cursor: pointer;

      &:hover {
        color: var(--color-primary);

        .category-icon {
          transform: scale(1.05);
        }
      }

      .category-icon {
        width: 132px;
        height: 132px;
        border-radius: var(--border-radius-full);
        object-fit: cover;
        transition: transform var(--transition-base);
      }

      .category-name {
        font-size: var(--font-size-base);
        transition: color var(--transition-base);
      }
    }
  }
}

.product-container {
  .products {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
  }

  .product-item {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 340px;

    .product-card {
      width: 100%;
      height: 400px;
      cursor: pointer;

      .product-image {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }
    }

    .product-content {
      display: flex;
      flex-direction: column;
      gap: 0.5rem;

      .product-title {
        cursor: pointer;
        transition: color var(--transition-base);

        &:hover {
          color: var(--color-primary);
        }
      }

      .product-price {
        color: var(--color-primary);
      }
    }
  }
}