.single-product .hp-product-primary {
  min-width: 0;
  grid-column: 1 / -1;
}

.single-product .hp-product-primary > .onsale {
  display: none;
}

.single-product .product-type-variable > .hp-product-primary > .hp-product-summary-column > .summary > .price {
  display: none;
}

.single-product .hp-product-summary-column,
.single-product .hp-product-purchase {
  min-width: 0;
}

.single-product .woocommerce-product-gallery {
  opacity: 1 !important;
  position: relative !important;
  display: flex;
  width: 100%;
  margin: 0;
  container-type: inline-size;
  flex-direction: column;
  gap: 0;
  --hp-gallery-gap: 12px;
  --hp-pack-ink: var(--hp-ink);
}

.single-product .woocommerce-product-gallery__image {
  box-sizing: border-box;
  overflow: hidden;
  border-radius: 8px;
  background: var(--hp-paper);
  border: 0;
  box-shadow: none;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs li {
  box-sizing: border-box;
  overflow: hidden;
  border: 0;
  border-radius: 8px;
  background: var(--hp-paper);
  box-shadow: none;
}

.single-product .woocommerce-product-gallery__image img,
.single-product .woocommerce-product-gallery .flex-control-thumbs img {
  display: block;
  border-radius: inherit;
}

.single-product .woocommerce-product-gallery__image img {
  background: var(--hp-soft);
}

.single-product .woocommerce-product-gallery .flex-control-thumbs img {
  background: var(--hp-soft);
}

.single-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active {
  outline: 2px solid var(--hp-pack-ink);
  outline-offset: -2px;
  box-shadow: none;
}

.single-product .woocommerce-product-gallery__trigger {
  border: 0;
  border-radius: 12px;
  box-shadow: none;
}

.single-product .woocommerce-product-gallery .hp-gallery-nav__button {
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  color: var(--hp-pack-ink);
}

.single-product .woocommerce-product-gallery .hp-gallery-nav__button svg {
  display: block;
  width: 34px;
  height: 34px;
}

.single-product .woocommerce-product-gallery .hp-gallery-nav__button svg path:last-child {
  stroke-width: 1.5;
}

.single-product .woocommerce-product-gallery .hp-gallery-nav {
  top: 0;
  right: 0;
  bottom: auto;
  left: 0;
  height: 100cqi;
  align-items: center;
  transform: none;
}

@media (max-width: 1023px) {
  /* Before FlexSlider wraps the track, keep a single square viewport usable without JS. */
  .single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper {
    display: flex;
    width: 100%;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper::-webkit-scrollbar {
    display: none;
  }

  .single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image {
    flex: 0 0 100%;
    scroll-snap-align: start;
  }

  .single-product .woocommerce-product-gallery .flex-viewport {
    overflow: hidden !important;
    border-radius: 8px;
    background: var(--hp-paper);
    border: 0;
    box-shadow: none;
  }

  .single-product .woocommerce-product-gallery__image {
    box-shadow: none;
    width: 100cqi !important;
    margin-right: 0 !important;
  }

  .single-product .woocommerce-product-gallery__image > a {
    box-sizing: border-box;
    display: block;
    width: 100%;
    height: 100%;
    padding-right: 0;
    padding-left: 0;
    transition: padding-right .5s ease, padding-left .5s ease;
  }

  .single-product .woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image:not(.flex-active-slide) > a {
    padding-right: var(--hp-gallery-gap);
    padding-left: var(--hp-gallery-gap);
  }

  .single-product .woocommerce-product-gallery__trigger::before {
    position: absolute;
    top: 12px;
    right: 12px;
    display: block;
    width: 20px;
    height: 20px;
    background: var(--hp-ink);
    content: "";
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M8 3H5a2 2 0 0 0-2 2v3M16 3h3a2 2 0 0 1 2 2v3M8 21H5a2 2 0 0 1-2-2v-3M16 21h3a2 2 0 0 0 2-2v-3'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M8 3H5a2 2 0 0 0-2 2v3M16 3h3a2 2 0 0 1 2 2v3M8 21H5a2 2 0 0 1-2-2v-3M16 21h3a2 2 0 0 0 2-2v-3'/%3E%3C/svg%3E") center / contain no-repeat;
  }
}

@media (min-width: 1024px) {
  .single-product .flex-control-thumbs li:first-child { display: none; }
}

@media (min-width: 1024px) {
  .single-product .woocommerce-product-gallery {
    position: sticky !important;
    top: 132px;
    width: 100% !important;
    align-self: start;
    gap: 32px;
    overflow: visible !important;
  }

  .single-product .woocommerce-product-gallery .hp-gallery-nav {
    display: none;
  }

  .single-product .hp-product-primary {
    display: grid;
    width: 100%;
    grid-template-columns: minmax(0, 1fr) minmax(0, 400px);
    column-gap: 40px;
    align-items: start;
  }

  .single-product .hp-product-primary > .woocommerce-product-gallery {
    grid-column: 1;
    grid-row: 1;
  }

  /* Stretch the containing column so the intact summary stays sticky within primary. */
  .single-product .hp-product-primary > .hp-product-summary-column {
    grid-column: 2;
    grid-row: 1;
    align-self: stretch;
  }

  .single-product .woocommerce-product-gallery .flex-viewport {
    height: auto !important;
    overflow: visible !important;
  }

  .single-product .woocommerce-product-gallery__wrapper {
    display: grid !important;
    width: 100% !important;
    height: auto !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    transform: none !important;
  }

  .single-product .woocommerce-product-gallery__image {
    float: none !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    margin-right: 0 !important;
  }

  .single-product .woocommerce-product-gallery__image:first-child {
    grid-column: 1 / -1;
  }

  .single-product .woocommerce-product-gallery__image img {
    display: block;
  }

  .single-product .woocommerce-product-gallery .flex-control-thumbs {
    display: none !important;
  }
}

@media (min-width: 1280px) {
  .single-product .hp-product-primary {
    grid-template-columns: minmax(0, 45fr) minmax(0, 55fr);
    column-gap: clamp(48px, 4.73vw, 90px);
  }
}

@media (max-width: 767px) {
  .single-product .hp-product-primary {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  /* Only generic divs lose their boxes; native headings, forms and controls keep theirs. */
  .single-product .hp-product-primary > .hp-product-summary-column,
  .single-product .hp-product-primary > .hp-product-summary-column > .summary {
    display: contents;
  }

  .single-product .hp-product-summary-column > .summary::before,
  .single-product .hp-product-summary-column > .summary::after {
    display: none;
  }

  .single-product .hp-product-summary-column > .summary > * {
    grid-column: 1;
    order: 0;
    min-width: 0;
    margin-inline: 20px;
  }

  .single-product .hp-product-primary > .woocommerce-product-gallery {
    grid-column: 1;
    order: 1;
    width: calc(100% - 40px);
    margin-inline: 20px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    row-gap: 10px;
  }

  /* Reserve the actual thumbnail track before FlexSlider creates its controls. */
  .single-product .hp-product-primary--has-gallery > .woocommerce-product-gallery {
    grid-template-rows: auto 105px;
  }

  .single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper,
  .single-product .woocommerce-product-gallery > .flex-viewport {
    grid-column: 1;
    grid-row: 1;
    aspect-ratio: 1;
  }

  .single-product .woocommerce-product-gallery > .flex-control-thumbs {
    grid-column: 1;
    grid-row: 2;
  }

  .single-product .hp-product-summary-column > .summary > .hp-product-purchase {
    display: flow-root;
    order: 2;
    padding-inline: 20px;
    margin-inline: 0;
  }

  .single-product .hp-product-purchase > form.cart:first-child {
    margin-top: 0;
  }

  .single-product div.product .woocommerce-product-gallery {
    margin-bottom: 16px;
  }

  .single-product .woocommerce-product-gallery .hp-gallery-nav {
    right: 0;
    left: 0;
  }

  .single-product .woocommerce-product-gallery .hp-gallery-nav__button {
    width: 44px;
    height: 44px;
  }

  .single-product .woocommerce-product-gallery .hp-gallery-nav__button svg {
    width: 34px;
    height: 34px;
  }

  .single-product .woocommerce-product-gallery .hp-gallery-nav__button:focus-visible {
    outline: 2px solid var(--hp-focus);
    outline-offset: 2px;
  }

  .single-product .woocommerce-product-gallery .flex-control-thumbs {
    gap: 12px;
    padding-top: 0;
  }

  .single-product .woocommerce-product-gallery__image {
    border-radius: 8px;
    box-shadow: none;
  }

  .single-product .woocommerce-product-gallery .flex-viewport {
    border-radius: 8px;
  }

  .single-product .woocommerce-product-gallery .flex-control-thumbs li {
    border-radius: 8px;
    box-shadow: none;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .single-product .woocommerce-product-gallery {
    gap: 32px;
  }

  .single-product .woocommerce-product-gallery .hp-gallery-nav {
    right: 0;
    left: 0;
  }

  .single-product .woocommerce-product-gallery .flex-control-thumbs {
    margin-top: -32px;
  }

  .single-product .hp-product-primary > .woocommerce-product-gallery {
    width: 100%;
    margin: 0;
  }
}
