@layer components {
  .product-card {
    display: block;
    height: 100%;
    padding: 1rem;
    border-radius: 1rem;
    background-color: var(--theme-surface-secondary);
  }
  @media (min-width: 1024px) {
    .product-card {
      padding: 1.5rem;
    }
  }
  .product-card__image-container {
    position: relative;
    display: block;
  }
  .product-card__image-link {
    display: block;
    text-decoration: none;
  }
  .product-card__image-link.focus, .product-card__image-link:focus-visible {
    outline: 0.125rem solid var(--theme-focus-primary);
    outline-offset: 0.25rem;
  }
  .product-card__image-area {
    position: relative;
    aspect-ratio: 1/1;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background-color: var(--theme-surface-primary);
    border-radius: 0.5rem;
    padding: 1rem 4rem;
  }
  @media (min-width: 1024px) {
    .product-card__image-area {
      padding: 1rem 5rem;
    }
  }
  .product-card__image-area picture,
  .product-card__image-area img {
    display: block;
    width: 100%;
    object-fit: contain;
  }
  .product-card__banner-left {
    position: absolute;
    top: 1rem;
    left: 1rem;
    z-index: 1;
    padding: 0.5rem 0.75rem;
    border-radius: 0.5rem;
    background-color: var(--theme-surface-secondary);
    color: var(--theme-text-secondary);
  }
  .product-card__banner-right {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 1;
  }
  .product-card__banner-bottom {
    position: absolute;
    bottom: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
    color: var(--theme-text-secondary);
    width: 90%;
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1.2;
  }
  .product-card__variants {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0.5rem;
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
  }
  @media (min-width: 1024px) {
    .product-card__variants {
      display: flex;
      flex-wrap: wrap;
    }
  }
  .product-card__variant-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: auto;
    aspect-ratio: 1/1;
    padding: 0;
    border: none;
    border-radius: 0.25rem;
    background-color: var(--theme-surface-primary);
    cursor: pointer;
    overflow: hidden;
  }
  @media (min-width: 1024px) {
    .product-card__variant-btn {
      width: 2.25rem;
      height: 2.25rem;
      aspect-ratio: auto;
    }
  }
  .product-card__variant-btn[aria-pressed=true] {
    border: 1.5px solid var(--theme-border-primary);
    background-color: var(--theme-surface-secondary);
  }
  .product-card__variant-btn.focus, .product-card__variant-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 0.125rem var(--theme-focus-primary);
  }
  .product-card__variant-btn picture,
  .product-card__variant-btn img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
  .product-card__swatch {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    box-shadow: inset 0 0 0 1.5px var(--theme-border-secondary);
  }
  .product-card__overflow-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: auto;
    aspect-ratio: 1/1;
    border: 1.5px solid var(--theme-border-secondary);
    border-radius: 0.25rem;
    text-decoration: none;
    color: var(--theme-text-primary);
    font-family: var(--font-primary);
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0;
  }
  @media (min-width: 1024px) {
    .product-card__overflow-link {
      width: 2.25rem;
      height: 2.25rem;
      aspect-ratio: auto;
    }
  }
  .product-card__overflow-link.focus, .product-card__overflow-link:focus-visible {
    outline: none;
    box-shadow: 0 0 0 0.125rem var(--theme-focus-primary);
  }
  .product-card__body-link {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 1.5rem;
    padding-right: 1rem;
    text-decoration: none;
  }
  .product-card__body-link.focus, .product-card__body-link:focus-visible {
    outline: 0.125rem solid var(--theme-focus-primary);
    outline-offset: 0.25rem;
  }
  .product-card__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--theme-text-secondary);
  }
  .product-card__badge .icon {
    flex-shrink: 0;
    margin: 0;
    --icon-color: var(--theme-text-secondary);
  }
  .product-card__badge-text {
    color: inherit;
  }
  .product-card__name {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: var(--theme-text-primary);
  }
  .product-card__description {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: var(--theme-text-primary);
  }
  .product-card__price {
    display: flex;
    flex-direction: column;
  }
  .product-card__price-skeleton {
    height: 2.5rem;
    width: 5rem;
    border-radius: 0.5rem;
  }
  .product-card__starting-at {
    color: var(--theme-text-secondary);
    margin: 0;
  }
  .product-card__price-value {
    color: var(--theme-text-primary);
    margin: 0;
  }
  .product-card--no-details {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }
  .product-card--no-details .product-card__name {
    text-align: center;
    display: block;
    -webkit-line-clamp: unset;
    overflow: visible;
  }
  .product-card__ctas {
    display: flex;
    gap: 0.75rem;
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .product-card__ctas > li {
    flex: 1;
  }
  .product-card__ctas > li .button {
    width: 100%;
  }
  .product-card__ctas--stacked {
    flex-direction: column;
  }
}