/* Product Details Page — custom sections (title + image) */

.product-details-section {
  --pds-title-size: 48px;
  --pds-title-mb: 32px;
  --pds-anim-duration: 0.7s;
  --pds-anim-ease: cubic-bezier(0.22, 1, 0.36, 1);

  width: 100%;
  background-color: #ffffff;
}

/* Break out of product page inner container padding */
.products-details-page > .container .product-details-section {
  width: calc(100% + 200px);
  max-width: none;
  margin-inline: -100px;
}

.product-details-section > .container {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  padding: 50px 100px;
  box-sizing: border-box;
}

.product-details-section__title {
  margin: 0 0 var(--pds-title-mb);
  padding: 0;
  font-family: var(--font-heading);
  font-size: var(--pds-title-size);
  font-weight: 700;
  line-height: 1.15;
  color: #000000;
  text-align: start;
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity var(--pds-anim-duration) var(--pds-anim-ease),
    transform var(--pds-anim-duration) var(--pds-anim-ease);
}

.product-details-section__media {
  width: 100%;
  line-height: 0;
  opacity: 0;
  transform: scale(1.02);
  transition:
    opacity 1s var(--pds-anim-ease) 0.08s,
    transform 1.1s var(--pds-anim-ease) 0.08s;
}

.product-details-section__image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.product-details-section--visible .product-details-section__title,
.product-details-section--visible .product-details-section__media {
  opacity: 1;
  transform: translateY(0) scale(1);
}

@media (max-width: 1199px) {
  .product-details-section {
    --pds-title-size: 40px;
  }

  .products-details-page > .container .product-details-section {
    width: calc(100% + 80px);
    margin-inline: -40px;
  }

  .product-details-section > .container {
    padding: 40px 40px;
  }
}

@media (max-width: 991px) {
  .product-details-section {
    --pds-title-size: 36px;
    --pds-title-mb: 24px;
  }

  .products-details-page > .container .product-details-section {
    width: calc(100% + 48px);
    margin-inline: -24px;
  }

  .product-details-section > .container {
    padding: 36px 24px;
  }
}

@media (max-width: 575px) {
  .product-details-section {
    --pds-title-size: 32px;
    --pds-title-mb: 20px;
  }

  .products-details-page > .container .product-details-section {
    width: calc(100% + 32px);
    margin-inline: -16px;
  }

  .product-details-section > .container {
    padding: 28px 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .product-details-section__title,
  .product-details-section__media {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
