[product-grid-view='default'] .product-grid__item {
  margin: -1px 0 0 -1px;
}

.product-card {
  container-type: inline-size;
  container-name: product-card;
  border: 1px solid var(--color-border);

  &:not([product-grid-view='default'] &) {
    margin: -1px 0 0 -1px;
  }

  .product-card__content {
    padding: 0;

    @media screen and (width > 990px) {
      padding: var(--padding-5xl);
    }

    @container product-card (width <= 300px) {
      padding: 0;
    }
  }

  .card-gallery {
    flex-shrink: 0;
    transition: scale 0.25s ease-in-out;
  }

  .product-media {
    margin-block: var(--margin-xl) 0;

    @media screen and (min-width: 750px) {
      margin-block: 0 var(--margin-4xl);
    }

    @container product-card (width <= 300px) {
      margin-block: var(--margin-xl) 0;
    }

    img {
      height: 100%;
      object-fit: cover;
    }
  }

  .product-card__wrapper {
    flex-grow: 1;
    display: flex;
    flex-direction: column;

    @media screen and (max-width: 750px) {
      padding: var(--padding-lg);
    }

    @container product-card (width <= 300px) {
      padding: var(--padding-lg);
    }
  }

  .product-card__title {
    margin-block-end: 0;
    font-size: var(--font-size--lg);
    font-weight: var(--font-weight--bold);
    line-height: 1.2;
    transition: color 0.2s ease-in-out;

    @media screen and (width > 990px) {
      margin-block-end: 0.125rem;
      font-size: var(--font-size--2xl);
    }
  }

  .product-card__blocks {
    display: flex;
    flex-direction: column;
    gap: var(--gap-xl);

    .text-block {
      ul {
        list-style: none;
        margin: 0;
        padding-inline: 0;

        li {
          position: relative;
          margin-block-end: 4px;
          padding-inline-start: var(--padding-3xl);

          &::before {
            content: '';
            position: absolute;
            left: 0;
            top: 2px;
            display: inline-block;
            width: var(--icon-size-sm);
            height: var(--icon-size-sm);
          }
        }
      }

      p {
        color: var(--color-caption);
      }
    }
  }

  .product-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-block-start: var(--padding-xl);
  }

  .product-card__button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--padding-5xl);
    height: var(--padding-5xl);
    padding: 0;
    transition: all 0.25s ease-in-out;

    .svg-wrapper {
      width: var(--icon-size-lg);
      height: var(--icon-size-lg);
    }

    @media screen and (width > 990px) {
      width: var(--padding-6xl);
      height: var(--padding-6xl);

      .svg-wrapper svg {
        width: var(--icon-size-lg);
        height: var(--icon-size-lg);
      }
    }
  }

  .product-card__price {
    font-weight: var(--font-weight--bold);

    > div {
      display: flex;
      flex-direction: column-reverse;
    }

    .compare-at-price {
      opacity: 1;
      color: var(--color-caption);
      text-decoration-thickness: 1px;
    }

    .price {
      font-size: var(--font-size--lg);

      @media screen and (width > 990px) {
        font-size: var(--font-size--2xl);
      }
    }
  }
}

/* Hover state */
.product-card:has(.product-card__link:hover),
.product-card:has(.product-card__link:focus-visible) {
  .card-gallery {
    scale: 1.02;
  }

  .product-card__title {
    color: var(--color-primary-button-background);
  }

  .product-card__button {
    color: var(--color-primary-button-hover-text);
    background-color: var(--color-primary-button-hover-background);
    border-color: var(--color-primary-button-hover-border);
  }
}
