@layer components {
  .products {
    --product-max-inline-size: 9rem;

    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(var(--product-max-inline-size), 1fr));
    gap: var(--block-space);

    @media (width >= 32rem) {
      --product-max-inline-size: 12rem;
    }

    @media (width >= 48rem) {
      --product-max-inline-size: 18rem;
    }
  }

  .product__name, .product__type, .product__price {
    /* margin-block-end: var(--product-name-spacing, var(--block-space-responsive)); */
    margin-block-end: calc(pow(var(--responsive), 0.2) * 1rem);
    font-family: var(--font-header);
    line-height: var(--product-name-line-height, 1.15cap);
    text-box: var(--product-name-text-box, var(--text-box-font-header));
    text-transform: var(--product-name-text-transform, uppercase);
  }

  .product__name {
    font-size: var(--text-xxx-large-resp);
  }

  .product__type {
    font-size: var(--text-x-large-resp);
  }

  .product__price {
    font-size: var(--text-base-resp);
  }

  .product__price {
    &::after {
      content: "(loading...)";
      display: none;
      margin-inline: 0.5ch;
    }

    [busy] &::after {
      display: inline-block;
    }
  }
}
