.product-page {
  display: grid;
  gap: var(--sp-6);
  padding-bottom: var(--sp-8);
}

.product-page__image,
.product-page__placeholder {
  width: 100%;
  aspect-ratio: 1;
  border-radius: var(--r-lg);
  object-fit: cover;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
}

.product-page__title {
  font-size: var(--fs-h2);
  margin-bottom: var(--sp-3);
}

.product-page__price {
  display: flex;
  align-items: baseline;
  gap: var(--sp-3);
  margin-bottom: var(--sp-4);
}

.product-page__current-price {
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  color: var(--c-accent-dark);
}

.product-page__old-price {
  color: var(--c-text-muted);
  text-decoration: line-through;
}

.product-page__short {
  color: var(--c-text-secondary);
  margin-bottom: var(--sp-4);
}

.product-page__desc {
  color: var(--c-text-secondary);
  margin-bottom: var(--sp-5);
}

.product-page__actions {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}

.product-page__cart-form {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}

.product-related {
  padding-bottom: var(--sp-8);
}

@media (min-width: 768px) {
  .product-page {
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }
}

@media (min-width: 960px) {
  .product-page {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: var(--sp-8);
    padding-block: var(--sp-6);
  }

  .product-page__info {
    position: sticky;
    top: calc(var(--header-h) + var(--sp-4));
    align-self: start;
    padding: var(--sp-6);
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--r-lg);
  }

  .product-page__title {
    font-size: clamp(1.5rem, 2vw, 2rem);
  }

  .product-page__current-price {
    font-size: 1.75rem;
  }

  .product-page__actions {
    padding-top: var(--sp-4);
    border-top: 1px solid var(--c-border);
  }

  .product-related {
    margin-top: var(--sp-8);
    padding-top: var(--sp-8);
    border-top: 1px solid var(--c-border);
  }
}

@media (max-width: 767px) {
  .product-page__actions {
    position: sticky;
    bottom: calc(var(--bottom-nav-h) + var(--safe-bottom));
    background: var(--c-bg);
    padding: var(--sp-3) 0;
    margin-inline: calc(var(--container-pad) * -1);
    padding-inline: var(--container-pad);
    border-top: 1px solid var(--c-border);
  }
}
