.product-information {
  gap: var(--gap) 0;
}

.product-information__grid {
  display: grid;
  grid-template-columns: subgrid;
  grid-column: 1 / -1;
}

.product-details {
  order: 1;
}

.product-information__media {
  order: 0;
  width: 0;
  min-width: 100%;
}

.product-information__media .product-media-gallery__placeholder-image {
  width: 100%;
  height: 100%;
}

@media screen and (max-width: 749px) {
  .product-information__grid:has(.hw-product-media-gallery--extend-mobile) .product-information__media,
  .product-information__grid:has(.hw-product-media-gallery[data-extend-media-on-mobile='true']) .product-information__media {
    grid-column: 1 / -1;
  }

  /* Bleed to viewport: use util offset (matches theme page-width sections), not raw --page-margin alone. */
  .product-information__grid:has(.hw-product-media-gallery--extend-mobile) .product-information__media,
  .product-information__grid:has(.hw-product-media-gallery[data-extend-media-on-mobile='true']) .product-information__media {
    width: 100%;
    min-width: 0;
    max-width: none;
    padding-inline: 0;
    box-sizing: border-box;
  }

  .product-details {
    grid-column: 2 / 3;
  }
}

@media screen and (min-width: 750px) {
  .product-information__grid {
    grid-column: 2;
  }

  .product-information__grid.product-information--media-none .product-details {
    width: var(--narrow-content-width);
    margin: 0 auto;
  }

  .product-information__grid:not(.product-information--media-none):not(
      .product-information__grid--desktop-column-max
    ) {
    &.product-information--media-left {
      grid-template-columns: 1fr min(50vw, var(--sidebar-width));

      .product-information__media {
        padding-right: calc(var(--gap, 0) / 2);
      }

      .product-details {
        padding-left: calc(var(--gap, 0) / 2);
      }

      &:has(.media-gallery--extend) {
        grid-column: 1 / 3;
      }
    }

    &.product-information--media-right {
      grid-template-columns: min(50vw, var(--sidebar-width)) 1fr;

      .product-information__media {
        padding-left: calc(var(--gap, 0) / 2);
        order: 1;
      }

      .product-details {
        padding-right: calc(var(--gap, 0) / 2);
        order: 0;
      }

      &:has(.media-gallery--extend) {
        grid-column: 2 / -1;
      }
    }

    &.product-information__grid--half,
    &.product-information__grid--half:has(.media-gallery--extend) {
      grid-column: 1 / -1;
      grid-template-columns:
        var(--full-page-grid-margin) calc(var(--full-page-grid-central-column-width) / 2) calc(
          var(--full-page-grid-central-column-width) / 2
        )
        var(--full-page-grid-margin);

      &.product-information--media-left {
        .product-information__media {
          grid-column: 2 / 3;

          &:has(.media-gallery--extend) {
            grid-column: 1 / 3;
          }
        }

        .product-details {
          grid-column: 3 / 4;
        }
      }

      &.product-information--media-right {
        .product-information__media {
          grid-column: 3 / 4;

          &:has(.media-gallery--extend) {
            grid-column: 3 / -1;
          }
        }

        .product-details {
          grid-column: 2 / 3;
        }
      }
    }
  }

  .product-information__grid.product-information__grid--desktop-column-max:not(
      .product-information--media-none
    ) {
    column-gap: var(--hw-pdp-desktop-gap, var(--gap));
    grid-template-columns: minmax(0, var(--hw-pdp-media-max-width)) minmax(
        0,
        var(--hw-pdp-details-max-width)
      );
    justify-content: start;

    &.product-information--media-left {
      .product-information__media {
        width: 100%;
        min-width: 0;
        max-width: var(--hw-pdp-media-max-width);
        padding-right: 0;
      }

      .product-details {
        width: 100%;
        min-width: 0;
        max-width: var(--hw-pdp-details-max-width);
        padding-left: 0;
      }
    }

    &.product-information--media-right {
      grid-template-columns: minmax(0, var(--hw-pdp-details-max-width)) minmax(
          0,
          var(--hw-pdp-media-max-width)
        );

      .product-information__media {
        width: 100%;
        min-width: 0;
        max-width: var(--hw-pdp-media-max-width);
        padding-left: 0;
      }

      .product-details {
        width: 100%;
        min-width: 0;
        max-width: var(--hw-pdp-details-max-width);
        padding-right: 0;
      }
    }
  }

  .section--full-width .product-information__grid:not(.product-information--media-none) {
    &.product-information--media-left,
    &.product-information--media-right {
      grid-column: 1 / -1;
    }

    &.product-information--media-left .product-details {
      padding-inline-end: var(--padding-lg);
    }

    &.product-information--media-right .product-details {
      padding-inline-start: var(--padding-lg);
    }

    &.product-information__grid--half.product-information--media-left {
      .product-information__media {
        grid-column: 1 / 3;
      }

      .product-details {
        grid-column: 3 / -1;
      }
    }

    &.product-information__grid--half.product-information--media-right {
      .product-information__media {
        grid-column: 3 / -1;
      }

      .product-details {
        grid-column: 1 / 3;
      }
    }
  }
}

@media screen and (min-width: 1200px) {
  .product-information__grid:not(
      .product-information__grid--half,
      .product-information--media-none,
      .product-information__grid--desktop-column-max
    ).product-information--media-left {
    grid-template-columns: 2fr 1fr;
  }

  .product-information__grid:not(
      .product-information__grid--half,
      .product-information--media-none,
      .product-information__grid--desktop-column-max
    ).product-information--media-right {
    grid-template-columns: 1fr 2fr;
  }

  .product-information__grid.product-information__grid--desktop-column-max:not(
      .product-information--media-none
    ).product-information--media-left {
    grid-template-columns: minmax(0, var(--hw-pdp-media-max-width)) minmax(
        0,
        var(--hw-pdp-details-max-width)
      );
  }

  .product-information__grid.product-information__grid--desktop-column-max:not(
      .product-information--media-none
    ).product-information--media-right {
    grid-template-columns: minmax(0, var(--hw-pdp-details-max-width)) minmax(
        0,
        var(--hw-pdp-media-max-width)
      );
  }
}

.product-information__grid--limit-details .product-details > .group-block {
  --details-max-width: var(--sidebar-width);
  max-width: var(--details-max-width);
}

@media screen and (min-width: 1600px) {
  .product-information__grid--limit-details .product-details > .group-block {
    --details-max-width: 32rem;
  }
}

body:has(#header-group #header-component[data-sticky-state='active']) .product-details.sticky-content--desktop {
  --sticky-header-offset: var(--header-height);
}
