/* Hagoma product page, converted from the Shopify theme's product template
   (sections/main-product.liquid, assets/pdp.css, snippets/product-gallery.liquid,
   snippets/pdp-sticky-bar.liquid and the product.json sections): a full-width
   gallery and info row split by a rule, the description under the gallery with
   its Gallery / Description anchors, the icon row, story and FAQ sections, the
   recommendations and recently viewed carousels and the sticky add-to-cart bar.

   Rules are scoped to the main product (.hg-pdp, see inc/product.php) and start
   with ".single-product div.product.hg-pdp" so they outrank the matching Ecomus
   rules and the site's Additional CSS, which prints after this sheet. The few
   !important flags answer !important rules in that Additional CSS. */

/* Page: the product row runs full width (inc/product.php swaps the container class). */
.single-product .site-content:has(> .hg-pdp-page) {
  padding-top: 0;
  padding-bottom: 0;
}
/* The container keeps Ecomus's .clearfix (display: table); without the
   .em-container width a table shrinks to its content, and the Swiper tracks
   inside report a near-infinite width. flow-root still contains floats. */
.single-product .hg-pdp-page {
  display: flow-root;
  width: 100%;
}
.single-product .hg-pdp-page .woocommerce-notices-wrapper:not(:empty) {
  padding: 15px 15px 0;
}

/* Breadcrumb */
.single-product div.product.hg-pdp .ecomus-breadcrumb-navigation-wrapper {
  display: flex;
  align-items: center;
  min-height: 50px;
  margin: 0;
  padding: 7px 16px;
}
.single-product div.product.hg-pdp nav.woocommerce-breadcrumb.site-breadcrumb {
  display: block;
  width: 100%;
  color: var(--hg-text);
  font-size: 14px;
  line-height: 22.4px;
  text-align: left !important;
}
.single-product div.product.hg-pdp .site-breadcrumb a,
.single-product div.product.hg-pdp .site-breadcrumb span {
  font-size: inherit;
}
.single-product div.product.hg-pdp .site-breadcrumb a {
  color: #111;
}
.single-product div.product.hg-pdp .site-breadcrumb a:hover {
  text-decoration: underline;
}
.single-product div.product.hg-pdp .site-breadcrumb .hg-crumb-sep {
  margin: 0 8px;
}
@media (max-width: 749px) {
  .single-product div.product.hg-pdp .ecomus-breadcrumb-navigation-wrapper {
    padding-inline: 12px;
  }
  /* Phones: the deepest category and the product's name only, on one line that ends in an
     ellipsis; the full name is the title right below (owner, 2026-10-20). */
  .single-product div.product.hg-pdp nav.woocommerce-breadcrumb.site-breadcrumb {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .single-product div.product.hg-pdp .site-breadcrumb a:not(:last-of-type),
  .single-product div.product.hg-pdp .site-breadcrumb .hg-crumb-sep:not(:last-of-type) {
    display: none;
  }
}

/* Columns. Phones stack gallery, info and description; from 768px the gallery
   and the description share the start column, split from the info by a rule,
   and the info column spans both rows and sticks (top set by assets/js/product.js:
   under the header, or by its bottom edge when taller than the window). */
.single-product div.product.hg-pdp > .product-gallery-summary {
  display: block;
  gap: 0;
}
.single-product div.product.hg-pdp > .product-gallery-summary > .woocommerce-product-gallery {
  position: relative;
  top: auto;
  width: auto;
  margin: 0;
  padding-inline: 10px 0;
}
.single-product div.product.hg-pdp > .product-gallery-summary > .entry-summary {
  position: relative;
  top: auto;
  width: auto;
  min-width: 0;
  padding: 20px 20px 0;
}
@media (min-width: 768px) {
  .single-product div.product.hg-pdp > .product-gallery-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    align-items: start;
  }
  .single-product div.product.hg-pdp > .product-gallery-summary > .woocommerce-product-gallery {
    grid-column: 1;
    grid-row: 1;
    align-self: stretch;
    padding-inline: 10px 0;
    border-inline-end: 1px solid rgb(0 0 0 / 0.1);
  }
  .single-product div.product.hg-pdp > .product-gallery-summary > .entry-summary {
    position: sticky;
    top: var(--hg-pdp-info-top, var(--hg-sticky-top, 0px));
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: start;
    padding: 30px 25px;
  }
  .single-product div.product.hg-pdp > .product-gallery-summary > .hg-feature {
    grid-column: 1;
    grid-row: 2;
    align-self: stretch;
    border-inline-end: 1px solid rgb(0 0 0 / 0.1);
  }
}
@media (min-width: 990px) {
  .single-product div.product.hg-pdp > .product-gallery-summary {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  }
  .single-product div.product.hg-pdp > .product-gallery-summary > .entry-summary {
    padding: 30px;
  }
}
@media (min-width: 1200px) {
  .single-product div.product.hg-pdp > .product-gallery-summary > .entry-summary {
    padding: 30px 36px;
  }
}
@media (min-width: 1441px) {
  .single-product div.product.hg-pdp > .product-gallery-summary {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  }
  .single-product div.product.hg-pdp > .product-gallery-summary > .entry-summary {
    padding: 40px 60px;
  }
}

/* Gallery: the main image contained on the page colour (the photos have frames of their own,
   owner 2026-10-19), 72x90 thumbnails with a 1px frame, round white arrows. Phones show the
   thumbnail row above the image; from 1200px the thumbnails form a column on the start side. */
.single-product div.product.hg-pdp .woocommerce-product-gallery__wrapper {
  margin: 0;
}
.single-product div.product.hg-pdp .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image {
  height: 400px;
  border-radius: 0;
  background: var(--hg-bg);
  cursor: zoom-in;
}
.single-product div.product.hg-pdp .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image > a {
  display: block;
  height: 100%;
}
.single-product div.product.hg-pdp .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image img {
  width: 100%;
  height: 100%;
  border-radius: 0;
  object-fit: contain;
}
.single-product div.product.hg-pdp .woocommerce-product-gallery--has-thumbnails .ecomus-product-gallery-thumbnails {
  order: -1;
  width: 100%;
  margin: 0 0 10px;
}
.single-product div.product.hg-pdp .ecomus-product-gallery-thumbnails .swiper-slide {
  width: 72px;
  border: 1px solid transparent;
  border-radius: 0;
  background: #f3f3f3;
  cursor: pointer;
}
.single-product div.product.hg-pdp .ecomus-product-gallery-thumbnails .swiper-slide::after {
  display: none;
}
.single-product div.product.hg-pdp .ecomus-product-gallery-thumbnails .swiper-slide-thumb-active {
  border-color: #000;
}
.single-product div.product.hg-pdp .ecomus-product-gallery-thumbnails .swiper-slide img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 70 / 90;
  border-radius: 0;
  object-fit: cover;
}
.single-product div.product.hg-pdp .woocommerce-product-gallery .swiper-button {
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background-color: #fff;
  box-shadow: none;
  color: var(--hg-text);
}
.single-product div.product.hg-pdp .woocommerce-product-gallery .swiper-button-prev {
  left: 10px;
}
.single-product div.product.hg-pdp .woocommerce-product-gallery .swiper-button-next {
  right: 10px;
}
/* The main image opens the lightbox itself (assets/js/product.js). */
.single-product div.product.hg-pdp .woocommerce-product-gallery .ecomus-button--product-lightbox {
  display: none;
}
@media (min-width: 750px) {
  .single-product div.product.hg-pdp .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image {
    height: 800px;
  }
}
@media (min-width: 768px) and (max-width: 1199px) {
  .single-product div.product.hg-pdp .woocommerce-product-gallery--has-thumbnails .ecomus-product-gallery-thumbnails {
    order: 0;
    margin: 10px 0 0;
  }
}
/* A fixed row: on its first frame the thumbnail slider measured 83px, and the image jumped 9px. */
@media (max-width: 1199px) {
  .single-product div.product.hg-pdp .woocommerce-product-gallery--has-thumbnails .ecomus-product-gallery-thumbnails {
    height: 92px;
  }
}
@media (min-width: 1200px) {
  .single-product div.product.hg-pdp .woocommerce-product-gallery--vertical.woocommerce-product-gallery--has-thumbnails .woocommerce-product-gallery__wrapper {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    margin: 0;
    margin-inline-start: 10px;
  }
  .single-product div.product.hg-pdp .woocommerce-product-gallery--vertical.woocommerce-product-gallery--has-thumbnails .ecomus-product-gallery-thumbnails {
    flex: 0 0 72px;
    order: 0;
    width: 72px;
    max-height: 720px;
    margin: 0;
  }
}

/* Before the gallery starts (Ecomus single-product.js waits for imagesLoaded, then moves the
   thumbnails out of the wrapper and builds both sliders) the thumbnails sit under the main image
   inside the wrapper. These rules give that state the started gallery's boxes at every width, so
   the start moves nothing (it caused the 0.27 phone CLS). The wrapper's own box counts too: where
   the thumbnails end up before the image, they are placed outside it, so it already starts at the
   image. Ecomus shows only the first slide; the thumbnails stay transparent until their slider
   fades them in, so their images are left out until then: laid out, those lazy images loaded at
   once (at 2x, "sizes: auto" picked the full-size originals) and took the hero's bandwidth. */
.single-product div.product.hg-pdp .woocommerce-product-gallery__wrapper:not(.swiper) {
  display: flex;
  flex-direction: column;
}
.single-product div.product.hg-pdp .woocommerce-product-gallery__wrapper:not(.swiper) > .ecomus-product-gallery-thumbnails {
  display: flex;
  flex: none;
  gap: 8px;
  height: 92px;
  margin: 0;
  overflow: hidden;
}
.single-product div.product.hg-pdp .woocommerce-product-gallery__wrapper:not(.swiper) > .ecomus-product-gallery-thumbnails > .woocommerce-product-gallery__image {
  display: block;
  flex: 0 0 72px;
  box-sizing: border-box;
  height: auto;
  aspect-ratio: 72 / 92;
  border: 1px solid transparent;
  background: #f3f3f3;
}
.single-product div.product.hg-pdp .woocommerce-product-gallery__wrapper:not(.swiper) > .ecomus-product-gallery-thumbnails > .woocommerce-product-gallery__image img {
  display: none;
}
@media (max-width: 767px) {
  /* Started: the 92px row, a 10px gap, then the image (a one-image product has no row). */
  .single-product div.product.hg-pdp .woocommerce-product-gallery--has-thumbnails .woocommerce-product-gallery__wrapper:not(.swiper) {
    position: relative;
    margin-block-start: 102px;
  }
  .single-product div.product.hg-pdp .woocommerce-product-gallery__wrapper:not(.swiper) > .ecomus-product-gallery-thumbnails {
    position: absolute;
    top: -102px;
    inset-inline: 0;
  }
}
@media (min-width: 768px) and (max-width: 1199px) {
  /* Started, the wrapper's 10px bottom margin and the thumbnails' own 10px make the gap. */
  .single-product div.product.hg-pdp .woocommerce-product-gallery--has-thumbnails .woocommerce-product-gallery__wrapper:not(.swiper) {
    margin-bottom: 0;
  }
  .single-product div.product.hg-pdp .woocommerce-product-gallery__wrapper:not(.swiper) > .ecomus-product-gallery-thumbnails {
    margin: 20px 0 0;
  }
}
@media (min-width: 1200px) {
  .single-product div.product.hg-pdp .woocommerce-product-gallery.woocommerce-product-gallery--vertical.woocommerce-product-gallery--has-thumbnails .woocommerce-product-gallery__wrapper:not(.swiper) {
    position: relative;
    margin: 0;
    margin-inline-start: 82px;
  }
  .single-product div.product.hg-pdp .woocommerce-product-gallery__wrapper:not(.swiper) > .ecomus-product-gallery-thumbnails {
    position: absolute;
    top: 0;
    inset-inline-start: -82px;
    flex-direction: column;
    width: 72px;
    height: auto;
    max-height: 720px;
    margin: 0;
  }
  .single-product div.product.hg-pdp .woocommerce-product-gallery__wrapper:not(.swiper) > .ecomus-product-gallery-thumbnails > .woocommerce-product-gallery__image {
    flex: none;
  }
}

/* Title and price */
.single-product div.product.hg-pdp .product-gallery-summary h1.product_title {
  margin: 0 0 15px !important;
  color: var(--hg-text);
  font-family: var(--hg-font-heading);
  font-size: 23px;
  font-style: normal;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.025em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}
.single-product div.product.hg-pdp .ecomus-product-price {
  margin: 0;
}
.single-product div.product.hg-pdp .ecomus-product-price .price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 10px;
  margin: 0 0 30px;
  color: var(--hg-text);
  font-family: var(--hg-font-heading);
  font-size: 23px;
  font-weight: 700;
  line-height: 1.2;
}
/* Sale price first, then the struck-through price (both aria-hidden; the
   screen-reader text keeps WooCommerce's spoken order). */
.single-product div.product.hg-pdp .ecomus-product-price .price ins {
  order: -1;
  color: inherit;
  text-decoration: none;
}
.single-product div.product.hg-pdp .ecomus-product-price .price del {
  color: #9a9a9a;
  font-family: var(--hg-font-heading);
  font-size: 16px;
  font-weight: 500;
}
@media (min-width: 750px) {
  .single-product div.product.hg-pdp .product-gallery-summary h1.product_title,
  .single-product div.product.hg-pdp .ecomus-product-price .price {
    font-size: 39px;
  }
}

/* Not on the Shopify page: rating badges, the stock and sale pills, the
   product navigation and the empty Ecomus extras. The Ecomus sticky bar is
   replaced by .hg-sticky below; its module stays on, as WCPA's price update
   needs the bar's copy of the form (inc/asset-scope.php part 12). */
.single-product div.product.hg-pdp .star-rating-outline,
.single-product div.product.hg-pdp .jdgm-preview-badge,
.single-product div.product.hg-pdp .woocommerce-badges--single,
.single-product div.product.hg-pdp .ecomus-product-price .sale-off,
.single-product div.product.hg-pdp .product-navigation,
.single-product div.product.hg-pdp .meta-cat,
.single-product div.product.hg-pdp .ecomus-product-extra-link,
.single-product div.product.hg-pdp .single-product-extra-content,
.single-product #ecomus-sticky-add-to-cart {
  display: none !important;
}

/* Size guide link from Ecomus. */
.single-product div.product.hg-pdp .product-size-guide {
  margin: 12px 0 0;
}
.single-product div.product.hg-pdp .product-size-guide .size-guide-button {
  padding: 0;
  border-radius: 0;
  background: none;
  color: var(--hg-text);
  font-size: 14px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Add to cart group: options, quantity, then the button, each full width. */
.single-product div.product.hg-pdp form.cart {
  margin: 0;
}
.single-product div.product.hg-pdp .ecomus-product-atc-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  margin: 0;
}
.single-product div.product.hg-pdp .ecomus-product-atc-group > .wcpa_form_outer {
  flex: 1 1 100%;
  min-width: 0;
  margin: 0;
}

/* WCPA options. Phones: name above outlined chips. From 768px: rows split by
   rules, the name on the start side and underlined values on the end side; a
   long list wraps under its first value, the first line level with the name.
   The names read "Select Size: M" (or "Choose Size: M" when the name already
   starts with a verb) through data attributes set by assets/js/product.js. */
.single-product div.product.hg-pdp .wcpa_wrap {
  padding: 0;
}
.single-product div.product.hg-pdp .wcpa_wrap .wcpa_section {
  margin: 0;
}
.single-product div.product.hg-pdp .wcpa_wrap .wcpa_field_wrap {
  min-width: 0;
  margin: 0 0 25px;
  padding: 0;
  border: 0;
}
.single-product div.product.hg-pdp .wcpa_wrap .wcpa_field_label {
  display: block;
  width: auto;
  margin: 0 0 5px;
  padding: 0 0 4px;
  color: var(--hg-text);
  font-family: var(--hg-font-heading);
  font-size: 14px !important;
  font-weight: 800;
  line-height: 22.4px;
  letter-spacing: normal;
  text-transform: uppercase;
}
.single-product div.product.hg-pdp .wcpa_wrap .wcpa_field_label[data-hg-prefix]::before {
  content: attr(data-hg-prefix) " ";
}
.single-product div.product.hg-pdp .wcpa_wrap .wcpa_field_label[data-hg-value]::after {
  content: ": " attr(data-hg-value);
}
.single-product div.product.hg-pdp .wcpa_wrap .wcpa_required_ast {
  display: none;
}
/* WCPA's own chosen value would repeat the one product.js puts after the label. */
.single-product div.product.hg-pdp .wcpa_wrap .wcpa_field_label[data-hg-value] .wcpa_selected_items {
  display: none;
}
.single-product div.product.hg-pdp .wcpa_wrap .wcpa_selected_items span {
  color: var(--hg-text) !important;
  font-size: 14px !important;
  font-weight: inherit;
}
/* WCPA's placeholder until its script draws the form (one row per field) takes the box of a
   one-line option row: the name above a row of chips on phones, a ruled row from 768px. Its own
   2em margins and 96px rows moved the button and the panels under it once the form came (CLS). */
.single-product div.product.hg-pdp .wcpa_skeleton_loader_area {
  margin: 0;
}
.single-product div.product.hg-pdp .wcpa_skeleton_loader_area .wcpa_skeleton_loader {
  margin: 0 0 25px;
}
.single-product div.product.hg-pdp .wcpa_skeleton_loader_area .wcpa_skeleton_label {
  width: 120px;
  height: 22.4px;
  margin: 0 0 9px;
}
.single-product div.product.hg-pdp .wcpa_skeleton_loader_area .wcpa_skeleton_field {
  height: 36px;
}
@media (min-width: 768px) {
  .single-product div.product.hg-pdp .wcpa_skeleton_loader_area .wcpa_skeleton_loader {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    align-items: center;
    gap: 20px;
    margin: 0;
    padding: 16px 0 18px;
    border-top: 1px solid rgb(0 0 0 / 0.1);
  }
  .single-product div.product.hg-pdp .wcpa_skeleton_loader_area .wcpa_skeleton_label {
    width: auto;
    margin: 0;
  }
  .single-product div.product.hg-pdp .wcpa_skeleton_loader_area .wcpa_skeleton_field {
    height: 26px;
  }
}

/* Radio groups (both WCPA radio styles) become chips. */
.single-product div.product.hg-pdp .wcpa_type_radio-group .wcpa_group_field {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}
.single-product div.product.hg-pdp .wcpa_type_radio-group .wcpa_radio {
  margin: 0;
}
.single-product div.product.hg-pdp .wcpa_type_radio-group .wcpa_radio label {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 50px;
  min-height: 36px;
  margin: 0;
  padding: 10px 15px;
  border: 0;
  border-radius: 6px;
  outline: 0;
  background: transparent;
  box-shadow: inset 0 0 0 1px currentColor;
  color: var(--hg-text);
  font-size: 14px;
  font-weight: 400;
  line-height: 15.4px;
  text-align: center;
  text-transform: none;
  cursor: pointer;
}
.single-product div.product.hg-pdp .wcpa_type_radio-group .wcpa_radio label input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.single-product div.product.hg-pdp .wcpa_type_radio-group .wcpa_radio_custom,
.single-product div.product.hg-pdp .wcpa_type_radio-group .wcpa_check {
  display: none;
}
.single-product div.product.hg-pdp .wcpa_type_radio-group .wcpa_radio label span {
  margin: 0;
  padding: 0;
}
.single-product div.product.hg-pdp .wcpa_type_radio-group .wcpa_radio label:has(input:checked) {
  background: #000;
  box-shadow: inset 0 0 0 1px #000;
  color: #fff;
}
.single-product div.product.hg-pdp .wcpa_type_radio-group .wcpa_radio label:has(input:focus-visible) {
  outline: 2px solid var(--hg-text);
  outline-offset: 2px;
}
.single-product div.product.hg-pdp .wcpa_type_radio-group .wcpa_radio label:has(input:disabled) {
  opacity: 0.4;
  cursor: not-allowed;
}

/* Colour groups used as text chips keep their WCPA colours; only the shape follows the chips. */
.single-product div.product.hg-pdp .wcpa_type_color-group .wcpa_group_field {
  gap: 9px;
}
.single-product div.product.hg-pdp .wcpa_type_color-group .wcpa_color_bg {
  min-height: 36px;
  padding-inline: 15px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 400;
}

@media (min-width: 768px) {
  .single-product div.product.hg-pdp .wcpa_wrap .wcpa_field_wrap {
    margin: 0;
    padding: 16px 0 18px;
    border-top: 1px solid rgb(0 0 0 / 0.1);
  }
  /* Baseline: the name sits on the values' first line, however many lines they wrap to.
     Every group shares the same columns (two fifths for the name, which wraps inside
     it, the rest for the values), so the values of all groups start at one edge and a
     longer chosen value in the name never moves them. */
  .single-product div.product.hg-pdp .wcpa_wrap .wcpa_field_wrap:is(.wcpa_type_radio-group, .wcpa_type_color-group) {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    align-items: baseline;
    gap: 10px 20px;
  }
  /* Floated, the legend leaves the fieldset border and becomes a grid item. */
  .single-product div.product.hg-pdp .wcpa_wrap .wcpa_field_wrap:is(.wcpa_type_radio-group, .wcpa_type_color-group) > .wcpa_field_label {
    float: inline-start;
    min-width: 0;
    margin: 0;
    padding: 0;
    overflow-wrap: anywhere;
  }
  /* From the column's start edge; once the values wrap, every line starts under the first value. */
  .single-product div.product.hg-pdp .wcpa_wrap .wcpa_field_wrap:is(.wcpa_type_radio-group, .wcpa_type_color-group) > .wcpa_group_field {
    justify-self: stretch;
    justify-content: flex-start;
    min-width: 0;
  }
  .single-product div.product.hg-pdp .wcpa_wrap .wcpa_field_wrap:is(.wcpa_type_radio-group, .wcpa_type_color-group) > :not(.wcpa_field_label, .wcpa_group_field) {
    grid-column: 1 / -1;
  }
  /* An empty error row would still add a row gap under the values. */
  .single-product div.product.hg-pdp .wcpa_wrap .wcpa_field_wrap:is(.wcpa_type_radio-group, .wcpa_type_color-group) > .wcpa_field_bottom:not(:has(> :not(:empty))) {
    display: none;
  }
  /* No minimum width: centred in one, a short value ("S1") began 5px after the column edge. */
  .single-product div.product.hg-pdp .wcpa_type_radio-group .wcpa_radio label {
    min-width: 0;
    min-height: 26px;
    padding: 0 1px;
    border-radius: 0;
    box-shadow: none;
  }
  /* The hidden radio takes the click: 4px wider on each side, still inside the 9px gap. */
  .single-product div.product.hg-pdp .wcpa_type_radio-group .wcpa_radio label input {
    inset: 0 -4px;
    width: auto;
  }
  .single-product div.product.hg-pdp .wcpa_type_radio-group .wcpa_radio label:has(input:checked) {
    background: transparent;
    box-shadow: inset 0 -1px 0 currentColor;
    color: inherit;
  }
}

/* Text and upload fields */
.single-product div.product.hg-pdp .wcpa_wrap input[type="text"],
.single-product div.product.hg-pdp .wcpa_wrap textarea,
.single-product div.product.hg-pdp .wcpa_wrap select {
  min-height: 44px;
  border: 1px solid var(--hg-line-strong);
  border-radius: 6px;
  background-color: #fff;
  color: var(--hg-text);
}
/* WCPA draws its upload box from these variables; its default is a blue button. */
.single-product div.product.hg-pdp .wcpa_wrap {
  --wcpabuttoncolor: var(--hg-text);
  --wcpabuttontextcolor: #fff;
  --wcpabordercolor: var(--hg-line-strong);
  --wcpabordercolorfocus: var(--hg-text);
  --wcpaborderradius: 6px;
}
.single-product div.product.hg-pdp .wcpa_wrap .awpca_custom_file {
  overflow: hidden;
}
.single-product div.product.hg-pdp .wcpa_wrap .wcpa_choose_button {
  font-family: var(--hg-font-heading);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}
/* The file input is transparent over the box, so the box shows its focus. */
.single-product div.product.hg-pdp .wcpa_wrap .wcpa_file_style:has(input:focus-visible) .awpca_custom_file {
  outline: 2px solid var(--hg-text);
  outline-offset: 2px;
}
.single-product div.product.hg-pdp .wcpa_price_summary:empty {
  display: none;
}

/* Quantity: label above the pill on phones, beside it between rules from 768px. */
.single-product div.product.hg-pdp .ecomus-product-atc-group > .em-product-quantity {
  display: block;
  flex: 1 1 100%;
  margin: 0 0 30px;
  padding: 0;
  border: 0;
}
.single-product div.product.hg-pdp .em-product-quantity .quantity__label {
  display: block;
  margin: 0 0 5px;
  padding: 0 0 4px;
  color: var(--hg-text);
  font-family: var(--hg-font-heading);
  font-size: 14px;
  font-weight: 800;
  line-height: 22.4px;
  text-transform: uppercase;
}
.single-product div.product.hg-pdp .em-product-quantity .quantity {
  --em-quantity-height: 40px;
  display: flex;
  align-items: stretch;
  width: 120px;
  height: 40px;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgb(0 0 0 / 0.3);
  border-radius: 30px;
  background: transparent;
}
.single-product div.product.hg-pdp .em-product-quantity .ecomus-qty-button {
  display: flex;
  flex: 0 0 40px;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 100%;
  padding: 2px 7px;
  color: var(--hg-text);
  cursor: pointer;
}
.single-product div.product.hg-pdp .em-product-quantity .quantity .qty {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--hg-text);
  font-size: 16px;
  font-weight: 400;
  text-align: center;
}
@media (min-width: 750px) {
  .single-product div.product.hg-pdp .em-product-quantity .quantity {
    --em-quantity-height: 45px;
    width: 135px;
    height: 45px;
  }
}
@media (min-width: 768px) {
  .single-product div.product.hg-pdp .ecomus-product-atc-group > .em-product-quantity {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 20px;
    margin: 0 0 25px;
    padding: 16px 0 17px;
    border-block: 1px solid rgb(0 0 0 / 0.1);
  }
  .single-product div.product.hg-pdp .em-product-quantity .quantity__label {
    margin: 0;
    padding: 0;
  }
}

/* Add to cart */
.single-product div.product.hg-pdp .ecomus-product-atc-group .single_add_to_cart_button {
  --em-button-bg-color: var(--hg-accent);
  --em-button-border-color: var(--hg-accent);
  --em-button-color: #fff;
  --em-button-bg-color-hover: var(--hg-text);
  --em-button-border-color-hover: var(--hg-text);
  --em-button-color-hover: #fff;
  flex: 1 1 100%;
  max-width: none;
  height: auto;
  min-height: 48px;
  margin: 0 -5px;
  padding: 8px 15px;
  border-radius: 4px;
  font-family: var(--hg-font-heading);
  font-size: 14px;
  font-weight: 800;
  line-height: 14px;
  text-transform: uppercase;
}
.single-product div.product.hg-pdp .ecomus-product-atc-group .single_add_to_cart_button .text {
  font-size: inherit;
  font-weight: inherit;
}
.single-product div.product.hg-pdp .ecomus-product-atc-group .single_add_to_cart_button:focus-visible {
  outline: 2px solid var(--hg-text);
  outline-offset: 2px;
}
.single-product div.product.hg-pdp .ecomus-product-atc-group .single_add_to_cart_button.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
@media (min-width: 750px) {
  .single-product div.product.hg-pdp .ecomus-product-atc-group .single_add_to_cart_button {
    min-height: 50px;
    margin: 0;
    padding: 10px 20px;
  }
}

/* Variable products: attribute labels like the option names. */
.single-product div.product.hg-pdp table.variations .label label {
  color: var(--hg-text);
  font-family: var(--hg-font-heading);
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
}

/* Trust panel (product.json "trust_badges": panel, row of three). The row wraps
   like pdp.css .pdp-trust: in the narrow tablet info column the 120px items
   drop the third badge to a second line instead of running past the page. */
.single-product div.product.hg-pdp .hg-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: 20px -20px;
  padding: 20px 10px;
  list-style: none;
  border-radius: 15px;
  background: #efe8de;
}
.single-product div.product.hg-pdp .hg-trust__item {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  align-items: center;
  min-width: 0;
  margin: 0;
  padding: 0 10px;
  color: var(--hg-text);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.6;
  text-align: center;
}
.single-product div.product.hg-pdp .hg-trust__icon {
  display: block;
  flex: none;
  width: 32px;
  height: 32px;
  margin: 0 auto 6px;
}
@media (min-width: 750px) {
  .single-product div.product.hg-pdp .hg-trust {
    margin-inline: 0;
  }
  .single-product div.product.hg-pdp .hg-trust__item {
    min-width: 120px;
  }
}

/* Info accordions ("spaced" style: no rules, 40px apart, plus and minus signs) */
.single-product div.product.hg-pdp .hg-accordions {
  margin: 0;
  border: 0;
}
.single-product div.product.hg-pdp .hg-accordion {
  margin: 25px 0 0;
  border: 0;
}
.single-product div.product.hg-pdp .hg-accordion__title {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 0 20px;
  color: var(--hg-text);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  list-style: none;
  cursor: pointer;
}
.single-product div.product.hg-pdp .hg-accordion__title::-webkit-details-marker {
  display: none;
}
.single-product div.product.hg-pdp .hg-accordion__heading {
  min-width: 0;
  font-family: var(--hg-font-heading);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.025em;
}
.single-product div.product.hg-pdp .hg-accordion__title::after {
  content: "+";
  content: "+" / "";
  flex: none;
  margin-left: auto;
  font-size: 18px;
  font-weight: 400;
  line-height: 1;
}
.single-product div.product.hg-pdp .hg-accordion[open] > .hg-accordion__title::after {
  content: "\2212";
  content: "\2212" / "";
}
.single-product div.product.hg-pdp .hg-accordion__title:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}
.single-product div.product.hg-pdp .hg-accordion__content {
  overflow-x: auto;
  padding: 0 0 16px;
  font-size: 14px;
  line-height: 1.6;
}
.single-product div.product.hg-pdp .hg-accordion__content :is(h1, h2, h3) {
  margin: 0 0 10px;
  font-size: 16px;
  line-height: 1.3;
}
.single-product div.product.hg-pdp .hg-accordion__content :is(h4, h5, h6) {
  margin: 0 0 8px;
  font-size: 14px;
}
/* A list is followed by a paragraph's spacing: the parent theme pads the bottom of every list
   by 1.5em on top of its 1em margin, which left 35px under the last item instead of 21px. */
.single-product div.product.hg-pdp .hg-accordion__content :is(ul, ol) {
  margin-block-end: 1.5em;
  padding-block-end: 0;
}
.single-product div.product.hg-pdp .hg-accordion__content li > :is(ul, ol) {
  margin-block-end: 0;
}
.single-product div.product.hg-pdp .hg-accordion__content img {
  height: auto;
  max-width: 100%;
}
/* Links in the tab copy (the full policy links), underlined like the size guide link. */
.single-product div.product.hg-pdp .hg-accordion__content a {
  color: var(--hg-text);
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (min-width: 768px) {
  .single-product div.product.hg-pdp .hg-accordion {
    margin-top: 40px;
  }
  .single-product div.product.hg-pdp .hg-accordion__heading {
    font-size: 23px;
  }
}

/* SalesGen "Buy more save more" tiers */
.single-product div.product.hg-pdp .salesgen-bmsm-wrapper.bmsm-layout-style4 {
  margin-top: 24px;
  overflow: hidden;
  border-radius: 10px;
  background: var(--hg-card-media-bg);
}
.single-product div.product.hg-pdp .salesgen-bmsm-wrapper .salesgen-bmsm-heading-style4 {
  margin: 0;
  padding: 8px 12px;
  background-color: var(--hg-accent) !important;
  color: #fff;
  font-family: var(--hg-font-heading);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.single-product div.product.hg-pdp .bmsm-layout-style4 .salesgen-bmsm-items {
  margin: 0;
  padding: 14px 6px 4px;
}
.single-product div.product.hg-pdp .bmsm-layout-style4 .salesgen-bmsm-item-label {
  color: var(--hg-accent-text);
  font-family: var(--hg-font-heading);
  font-size: 40px;
  font-weight: 800;
  line-height: 44px;
}
.single-product div.product.hg-pdp .bmsm-layout-style4 .salesgen-bmsm-item-label strong {
  font-size: 14px;
  font-weight: 800;
  line-height: 28px;
}
.single-product div.product.hg-pdp .bmsm-layout-style4 sup {
  margin-top: 6px;
  font-size: 14px;
  line-height: 14px;
}
.single-product div.product.hg-pdp .bmsm-layout-style4 .salesgen-bmsm-item-title {
  color: var(--hg-text);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}

/* SalesGen "Frequently bought together" (the plugin's bundle layout 2). The photos
   scroll sideways once they outgrow the column. assets/js/product-fbt.js adds .hg-fbt
   and lays each item out as one row: checkbox, short name and price, then the chosen
   options and a "Show details" button opening .hg-fbt-sheet. Without the script the
   plugin's own controls stay (owner, 2026-10-19). */
.single-product div.product.hg-pdp .salesgen-upsell-bundle {
  display: block;
  max-width: none;
  margin-top: 28px;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle h2 {
  margin: 0 0 14px;
  color: var(--hg-text);
  font-family: var(--hg-font-heading);
  font-size: 16px;
  font-weight: 800;
  text-transform: uppercase;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle img {
  border-radius: 10px;
  background: var(--hg-card-media-bg);
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle .sg-bundle-preview-wrp {
  padding: 0;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle .salesgen-upsell-items {
  flex-wrap: nowrap;
  gap: 28px;
  padding-block: 2px 6px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}
/* Three photos share the row at every width; a 140px cap left wide screens half empty (owner, 2026-10-20). */
.single-product div.product.hg-pdp .salesgen-upsell-bundle .salesgen-upsell-items .salesgen-upsell-item {
  flex: 0 0 calc((100% - 56px) / 3);
  max-width: none;
  padding: 0;
}
/* The plus sign sits in the gap after each chosen photo; the empty alternative text keeps
   screen readers from reading it out between the names. */
.single-product div.product.hg-pdp .salesgen-upsell-bundle .salesgen-upsell-items .salesgen-upsell-selected::after {
  content: "+";
  content: "+" / "";
  right: auto;
  inset-inline-end: -28px;
  width: 28px;
  height: 28px;
  margin-top: -14px;
  color: var(--hg-muted);
  font-size: 22px;
  font-weight: 400;
  line-height: 28px;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle .salesgen-upsell-items .box-image a {
  display: block;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle .salesgen-upsell-items img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  aspect-ratio: 1;
  object-fit: cover;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle .salesgen-total {
  color: var(--hg-text);
  font-weight: 600;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle .salesgen-total .amount {
  color: var(--hg-accent-text);
  font-family: var(--hg-font-heading);
  font-weight: 800;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle .button.salesgen-add-bundle {
  --em-button-bg-color: var(--hg-text);
  --em-button-border-color: var(--hg-text);
  --em-button-color: #fff;
  --em-button-bg-color-hover: var(--hg-accent);
  --em-button-border-color-hover: var(--hg-accent);
  --em-button-color-hover: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 46px;
  margin-top: 10px;
  border-radius: 4px;
  font-family: var(--hg-font-heading);
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle .salesgen-saved {
  margin: 0;
  padding: 0;
  background: none;
  color: var(--hg-accent-text);
  font-size: 13px;
  font-weight: 600;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle .button.salesgen-add-bundle:focus-visible {
  outline: 2px solid var(--hg-text);
  outline-offset: 2px;
}
/* The plugin marks a missing field yellow. */
.single-product div.product.hg-pdp .salesgen-upsell-bundle .sg-is-invalid {
  border-color: var(--hg-accent) !important;
  background: #fff !important;
}

/* One row per item */
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .sg-checkboxes-wrapper {
  margin-top: 18px;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .sg-checkboxes-wrapper ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt li.hg-fbt__item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: start;
  gap: 4px 12px;
  width: auto;
  margin: 0;
  padding: 12px 0;
  border-top: 1px solid var(--hg-line);
  color: var(--hg-text);
  font-size: 14px;
  line-height: 1.4;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt li.hg-fbt__item:last-child {
  border-bottom: 1px solid var(--hg-line);
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__item .salesgen-upsell-item-list-heading-wrp {
  display: contents;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__check {
  position: relative;
  display: flex;
  grid-row: 1 / span 2;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  margin: 0;
  cursor: pointer;
}
/* A 44px target round the 18px box. */
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__check::after {
  content: "";
  position: absolute;
  inset: -12px;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__check input[type="checkbox"] {
  position: static;
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--hg-text);
  cursor: pointer;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__item a.hg-fbt__name {
  display: block;
  grid-column: 2;
  max-width: none;
  max-height: none;
  margin: 0;
  overflow: visible;
  color: var(--hg-text);
  font-weight: 500;
  white-space: normal;
  text-overflow: clip;
  overflow-wrap: anywhere;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__name strong {
  font-weight: 700;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__price {
  grid-row: 1;
  grid-column: 3;
  color: var(--hg-text);
  font-weight: 700;
  white-space: nowrap;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__item .sgbmsm-price-checkbox,
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__item .salesgen-select-options {
  display: none;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__item .sgbmsm-price-checkbox-wrp {
  display: flex;
  grid-column: 2 / -1;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 16px;
  margin: 0;
  padding: 0;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__item .sgbmsm-price-checkbox-wrp[hidden] {
  display: none;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__summary {
  flex: 1 1 12em;
  min-width: 0;
  margin: 0;
  color: var(--hg-muted);
  font-size: 13px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__summary:empty {
  display: none;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__edit {
  position: relative;
  width: auto;
  height: auto;
  min-height: 0;
  margin: 0;
  margin-inline-start: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: var(--hg-text);
  font-family: var(--hg-font-body);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: normal;
  text-decoration: underline;
  text-transform: none;
  text-underline-offset: 3px;
  cursor: pointer;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__edit[hidden] {
  display: none;
}
/* A 44px tall target without spacing the row out. */
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__edit::after {
  content: "";
  position: absolute;
  inset: -12px -8px;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__edit:focus-visible {
  outline: 2px solid var(--hg-text);
  outline-offset: 3px;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__item--missing .hg-fbt__edit {
  color: var(--hg-accent-text);
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .hg-fbt__item:not(.salesgen-upsell-item-list-selected) :is(.hg-fbt__name, .hg-fbt__price) {
  color: var(--hg-muted);
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .salesgen-total-wrp {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px 16px;
  margin-top: 14px;
  padding: 0;
  text-align: start;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .salesgen-total {
  font-size: 15px;
}
.single-product div.product.hg-pdp .salesgen-upsell-bundle.hg-fbt .button.salesgen-add-bundle {
  flex: 1 1 100%;
  width: 100%;
}

/* Until product-fbt.js has run: hg_product_fbt_wait() (inc/product.php) marks the page, and
   the plugin's own markup takes the rows above, so its "Select Options" rows no longer show
   first and then jump. The price, the options line and the total stay blank until the script
   writes them with the option prices; the mark goes at load (owner, 2026-10-20). */
.hg-fbt-wait .single-product div.product.hg-pdp .salesgen-upsell-bundle:not(.hg-fbt) .sg-checkboxes-wrapper {
  margin-top: 18px;
}
.hg-fbt-wait .single-product div.product.hg-pdp .salesgen-upsell-bundle:not(.hg-fbt) .sg-checkboxes-wrapper ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.hg-fbt-wait .single-product div.product.hg-pdp .salesgen-upsell-bundle:not(.hg-fbt) li.salesgen-upsell-item-list {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: start;
  gap: 4px 12px;
  width: auto;
  margin: 0;
  padding: 12px 0;
  border-top: 1px solid var(--hg-line);
  color: var(--hg-text);
  font-size: 14px;
  line-height: 1.4;
}
.hg-fbt-wait .single-product div.product.hg-pdp .salesgen-upsell-bundle:not(.hg-fbt) li.salesgen-upsell-item-list:last-child {
  border-bottom: 1px solid var(--hg-line);
}
.hg-fbt-wait .single-product div.product.hg-pdp .salesgen-upsell-bundle:not(.hg-fbt) .salesgen-upsell-item-list-heading-wrp {
  display: contents;
}
/* The 18px box in the middle of the 20px .hg-fbt__check. */
.hg-fbt-wait .single-product div.product.hg-pdp .salesgen-upsell-bundle:not(.hg-fbt) .salesgen-upsell-item-checkbox {
  position: static;
  grid-row: 1 / span 2;
  width: 18px;
  height: 18px;
  margin: 1px;
  accent-color: var(--hg-text);
}
.hg-fbt-wait .single-product div.product.hg-pdp .salesgen-upsell-bundle:not(.hg-fbt) .salesgen-upsell-item-list-heading-wrp > a {
  display: block;
  grid-column: 2;
  max-width: none;
  max-height: none;
  margin: 0;
  overflow: visible;
  color: var(--hg-text);
  font-weight: 500;
  white-space: normal;
  text-overflow: clip;
  overflow-wrap: anywhere;
}
.hg-fbt-wait .single-product div.product.hg-pdp .salesgen-upsell-bundle:not(.hg-fbt) .salesgen-upsell-item-list-heading-wrp > a strong {
  font-weight: 700;
}
.hg-fbt-wait .single-product div.product.hg-pdp .salesgen-upsell-bundle:not(.hg-fbt) li:not(.salesgen-upsell-item-list-selected) .salesgen-upsell-item-list-heading-wrp > a {
  color: var(--hg-muted);
}
.hg-fbt-wait .single-product div.product.hg-pdp .salesgen-upsell-bundle:not(.hg-fbt) span.sgbmsm-price-checkbox {
  grid-row: 1;
  grid-column: 3;
  width: auto;
  padding: 0;
  font-weight: 700;
  white-space: nowrap;
  visibility: hidden;
}
/* One line of the 13px summary that replaces the plugin's button. */
.hg-fbt-wait .single-product div.product.hg-pdp .salesgen-upsell-bundle:not(.hg-fbt) .sgbmsm-price-checkbox-wrp {
  display: block;
  grid-column: 2 / -1;
  min-height: calc(13px * 1.4);
  margin: 0;
  padding: 0;
}
.hg-fbt-wait .single-product div.product.hg-pdp .salesgen-upsell-bundle:not(.hg-fbt) .sgbmsm-price-checkbox-wrp > * {
  display: none;
}
/* An item with nothing to choose keeps its name and price only. */
.hg-fbt-wait .single-product div.product.hg-pdp .salesgen-upsell-bundle:not(.hg-fbt) .sgbmsm-price-checkbox-wrp:not(:has(.salesgen-upsell-options form :is(.wcpa_form_outer, select, textarea, input:not([type="hidden"])))) {
  display: none;
}
.hg-fbt-wait .single-product div.product.hg-pdp .salesgen-upsell-bundle:not(.hg-fbt) .salesgen-total-wrp {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px 16px;
  margin-top: 14px;
  padding: 0;
  text-align: start;
}
.hg-fbt-wait .single-product div.product.hg-pdp .salesgen-upsell-bundle:not(.hg-fbt) .salesgen-total {
  font-size: 15px;
}
.hg-fbt-wait .single-product div.product.hg-pdp .salesgen-upsell-bundle:not(.hg-fbt) .salesgen-total .amount {
  visibility: hidden;
}
.hg-fbt-wait .single-product div.product.hg-pdp .salesgen-upsell-bundle:not(.hg-fbt) .button.salesgen-add-bundle {
  flex: 1 1 100%;
  width: 100%;
}

/* Options dialog: a sheet from the foot on phones, centred from 768px. It sits
   inside the item, so the plugin's row styles are reset here. */
.single-product div.product.hg-pdp .hg-fbt-sheet {
  inset: auto 0 0;
  width: 100%;
  max-width: none;
  height: auto;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: visible;
  background: transparent;
  color: var(--hg-text);
  font-size: 14px;
  line-height: 1.5;
  text-align: start;
}
.single-product div.product.hg-pdp .hg-fbt-sheet::backdrop {
  background: rgb(0 0 0 / 0.5);
}
.single-product div.product.hg-pdp .hg-fbt-sheet__panel {
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 48px);
  max-height: calc(100dvh - 48px);
  border-radius: 10px 10px 0 0;
  background: #fff;
}
.single-product div.product.hg-pdp .hg-fbt-sheet[open] .hg-fbt-sheet__panel {
  animation: hg-fbt-sheet-up 0.3s ease;
}
.single-product div.product.hg-pdp .hg-fbt-sheet[open]::backdrop {
  animation: hg-fbt-fade 0.25s ease;
}
.single-product div.product.hg-pdp .hg-fbt-sheet__head {
  position: relative;
  display: flex;
  flex: none;
  gap: 12px;
  align-items: center;
  padding: 16px 18px 14px;
  padding-inline-end: 56px;
  border-bottom: 1px solid var(--hg-line);
}
.single-product div.product.hg-pdp .hg-fbt-sheet__thumb {
  flex: none;
  width: 64px;
}
.single-product div.product.hg-pdp .hg-fbt-sheet__thumb img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  border-radius: 6px;
  aspect-ratio: 1;
  object-fit: cover;
}
.single-product div.product.hg-pdp .hg-fbt-sheet__summary {
  flex: 1 1 auto;
  min-width: 0;
}
.single-product div.product.hg-pdp .hg-fbt-sheet .hg-fbt-sheet__title {
  display: -webkit-box;
  margin: 0 0 4px;
  overflow: hidden;
  color: var(--hg-text);
  font-family: var(--hg-font-body);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: normal;
  text-transform: none;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.single-product div.product.hg-pdp .hg-fbt-sheet__price {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
}
.single-product div.product.hg-pdp .hg-fbt-sheet .hg-fbt-sheet__close {
  position: absolute;
  top: 8px;
  inset-inline-end: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--hg-text);
  cursor: pointer;
}
.single-product div.product.hg-pdp .hg-fbt-sheet__close svg {
  width: 20px;
  height: 20px;
}
.single-product div.product.hg-pdp .hg-fbt-sheet__close:focus-visible {
  outline: 2px solid var(--hg-text);
  outline-offset: -2px;
}
.single-product div.product.hg-pdp .hg-fbt-sheet__fields {
  flex: 1 1 auto;
  min-height: 0;
  padding: 16px 18px 2px;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.single-product div.product.hg-pdp .hg-fbt-sheet__fields form {
  margin: 0;
}
/* The plugin's options popover, moved in whole. */
.single-product div.product.hg-pdp .hg-fbt-sheet .salesgen-upsell-options {
  position: static;
  min-width: 0;
  padding: 0;
  background: none;
  box-shadow: none;
}
.single-product div.product.hg-pdp .hg-fbt-sheet__foot {
  flex: none;
  padding: 12px 18px calc(16px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--hg-line);
}
.single-product div.product.hg-pdp .hg-fbt-sheet__error {
  margin: 0 0 10px;
  color: var(--hg-accent-text);
  font-size: 13px;
}
.single-product div.product.hg-pdp .hg-fbt-sheet__error:empty {
  display: none;
}
.single-product div.product.hg-pdp .hg-fbt-sheet .hg-fbt-sheet__done {
  width: 100%;
}
/* Links in option notes; the plugin styles every link in an item as its name. */
.single-product div.product.hg-pdp .hg-fbt-sheet__fields a {
  display: inline;
  max-width: none;
  max-height: none;
  margin: 0;
  overflow: visible;
  white-space: normal;
}

/* Fields in the dialog: names above the values, as in the cart drawer's sheet. */
.single-product div.product.hg-pdp .hg-fbt-sheet .wcpa_form_outer {
  margin: 0;
}
.single-product div.product.hg-pdp .hg-fbt-sheet .wcpa_wrap .wcpa_row {
  display: block;
}
.single-product div.product.hg-pdp .hg-fbt-sheet .wcpa_wrap .wcpa_field_wrap {
  width: auto;
  max-width: none;
  margin: 0 0 18px;
  padding: 0;
  border: 0;
}
.single-product div.product.hg-pdp .hg-fbt-sheet .wcpa_wrap .wcpa_field_label,
.single-product div.product.hg-pdp .hg-fbt-sheet__fields form > label {
  display: block;
  margin: 0 0 8px;
  padding: 0;
  color: var(--hg-text);
  font-family: var(--hg-font-heading);
  font-size: 14px !important;
  font-weight: 800;
  line-height: 1.4;
  text-transform: uppercase;
}
.single-product div.product.hg-pdp .hg-fbt-sheet .wcpa_wrap .wcpa_field_desc {
  margin: -2px 0 10px;
  color: var(--hg-muted);
  font-size: 13px;
  line-height: 1.45;
}
.single-product div.product.hg-pdp .hg-fbt-sheet :is(.wcpa_type_content, .wcpa_type_paragraph, .wcpa_price_summary),
.single-product div.product.hg-pdp .hg-fbt-sheet select[data-hg-chipped] {
  display: none;
}
.single-product div.product.hg-pdp .hg-fbt-sheet__fields :is(input[type="text"], input[type="email"], input[type="number"], textarea, select) {
  width: 100%;
  max-width: none;
  height: auto;
  min-height: 44px;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid var(--hg-line-strong);
  border-radius: 6px;
  background-color: #fff;
  box-shadow: none;
  color: var(--hg-text);
  font: inherit;
}
.single-product div.product.hg-pdp .hg-fbt-sheet__fields form > .hg-fbt-chips {
  margin-bottom: 18px;
}
.single-product div.product.hg-pdp :is(.hg-fbt-sheet, .hg-sticky-sheet) .wcpa_wrap :is(.wcpa_field_error, .wcpa_form_error) {
  color: var(--hg-accent-text);
  font-size: 13px;
}
.single-product div.product.hg-pdp .hg-fbt-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.single-product div.product.hg-pdp .hg-fbt-sheet .hg-fbt-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 44px;
  height: auto;
  min-height: 44px;
  margin: 0;
  padding: 8px 12px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  box-shadow: inset 0 0 0 1px currentColor;
  color: var(--hg-text);
  font-family: var(--hg-font-body);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: normal;
  text-align: center;
  text-transform: none;
  cursor: pointer;
}
.single-product div.product.hg-pdp .hg-fbt-sheet .hg-fbt-chip[aria-checked="true"] {
  background: #000;
  box-shadow: inset 0 0 0 1px #000;
  color: #fff;
}
.single-product div.product.hg-pdp .hg-fbt-sheet .hg-fbt-chip:focus-visible {
  outline: 2px solid var(--hg-text);
  outline-offset: 2px;
}
.single-product div.product.hg-pdp .hg-fbt-sheet .hg-fbt-chip:disabled {
  opacity: 0.4;
  text-decoration: line-through;
  cursor: not-allowed;
}
/* A required option Add all or Done found empty. */
.single-product div.product.hg-pdp .hg-fbt-sheet [aria-invalid="true"] > .hg-fbt-chip {
  box-shadow: inset 0 0 0 1px var(--hg-accent);
}
@media (hover: hover) {
  .single-product div.product.hg-pdp .hg-fbt-sheet .hg-fbt-chip:not(:disabled, [aria-checked="true"]):hover {
    box-shadow: inset 0 0 0 2px currentColor;
  }
}
@media (max-width: 767px) {
  /* Phones zoom in on smaller text in a focused field. */
  .single-product div.product.hg-pdp .hg-fbt-sheet__fields :is(input[type="text"], input[type="email"], input[type="number"], textarea, select) {
    font-size: 16px;
  }
}
@media (min-width: 768px) {
  .single-product div.product.hg-pdp .hg-fbt-sheet {
    inset: 0;
    width: min(480px, calc(100% - 32px));
    height: fit-content;
    margin: auto;
  }
  .single-product div.product.hg-pdp .hg-fbt-sheet__panel {
    max-height: calc(100vh - 64px);
    max-height: calc(100dvh - 64px);
    border-radius: 10px;
  }
  .single-product div.product.hg-pdp .hg-fbt-sheet[open] .hg-fbt-sheet__panel {
    animation-name: hg-fbt-sheet-pop;
  }
  .single-product div.product.hg-pdp .hg-fbt-sheet .hg-fbt-chip {
    min-height: 40px;
  }
}
@keyframes hg-fbt-sheet-up {
  from {
    transform: translateY(100%);
  }
}
@keyframes hg-fbt-sheet-pop {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
}
@keyframes hg-fbt-fade {
  from {
    opacity: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .single-product div.product.hg-pdp .hg-fbt-sheet[open] .hg-fbt-sheet__panel,
  .single-product div.product.hg-pdp .hg-fbt-sheet[open]::backdrop,
  .single-product div.product.hg-pdp .salesgen-upsell-bundle .sgshake {
    animation: none;
  }
  .single-product div.product.hg-pdp .salesgen-upsell-bundle .salesgen-upsell-item {
    transition: none;
  }
}

/* Description with the Gallery / Description anchors (scroll-spy in assets/js/product.js) */
.single-product div.product.hg-pdp .hg-feature {
  min-width: 0;
}
.single-product div.product.hg-pdp .hg-feature__bar {
  position: sticky;
  top: var(--hg-sticky-top, 0px);
  z-index: 1;
  margin: 0 0 35px;
  border-bottom: 1px solid rgb(0 0 0 / 0.1);
  background: var(--hg-bg);
}
.single-product div.product.hg-pdp .hg-feature__list {
  display: flex;
  flex-wrap: wrap;
  max-width: 740px;
  margin: 0 auto;
  padding: 0 30px;
  list-style: none;
}
.single-product div.product.hg-pdp .hg-feature__item {
  margin: 0;
}
.single-product div.product.hg-pdp .hg-feature__link {
  position: relative;
  display: inline-block;
  margin-inline-end: 30px;
  padding: 16px 0;
  color: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  text-decoration: none;
}
.single-product div.product.hg-pdp .hg-feature__link::after {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  bottom: 0;
  width: 0;
  height: 3px;
  background: currentColor;
  transition: width 0.8s;
}
.single-product div.product.hg-pdp .hg-feature__item.is-active .hg-feature__link::after {
  width: 100%;
}
.single-product div.product.hg-pdp .hg-feature__link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: -2px;
}
.single-product div.product.hg-pdp .hg-feature__panel {
  max-width: 740px;
  margin: 0 auto;
  padding: 0 30px 40px;
  scroll-margin-top: 162px;
}
.single-product div.product.hg-pdp .hg-feature__panel:focus {
  outline: none;
}
.single-product div.product.hg-pdp .hg-feature__title {
  margin: 0 0 10px;
  color: var(--hg-text);
  font-family: var(--hg-font-heading);
  font-size: 25px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}
.single-product div.product.hg-pdp .hg-feature__body {
  overflow-x: auto;
  font-size: 14px;
  line-height: 1.6;
  overflow-wrap: break-word;
}
.single-product div.product.hg-pdp .hg-feature__body > :last-child {
  margin-bottom: 0;
}
.single-product div.product.hg-pdp .hg-feature__body p {
  margin: 0 0 10px;
}
.single-product div.product.hg-pdp .hg-feature__body :is(ul, ol) {
  margin: 0 0 10px;
  padding-inline-start: 14px;
}
.single-product div.product.hg-pdp .hg-feature__body li {
  margin: 0;
}
.single-product div.product.hg-pdp .hg-feature__body img {
  height: auto;
  max-width: 100%;
}
.single-product div.product.hg-pdp .hg-feature__body table {
  margin: 0 0 20px;
  border: 1px solid rgb(0 0 0 / 0.1);
  border-collapse: collapse;
}
.single-product div.product.hg-pdp .hg-feature__body thead {
  background: rgb(0 0 0 / 0.1);
}
.single-product div.product.hg-pdp .hg-feature__body th {
  padding: 13px 20px;
  font-weight: 700;
  text-align: start;
}
.single-product div.product.hg-pdp .hg-feature__body td {
  padding: 16px 10px;
  border: 1px solid rgb(0 0 0 / 0.1);
  line-height: 1;
}
/* Wide screens: the bar and the description widen with the media column, as in the Shopify pdp.css (owner, 2026-10-20). */
@media (min-width: 1600px) {
  .single-product div.product.hg-pdp .hg-feature__bar {
    margin-bottom: 50px;
  }
  .single-product div.product.hg-pdp .hg-feature__list,
  .single-product div.product.hg-pdp .hg-feature__panel {
    max-width: 1120px;
  }
  .single-product div.product.hg-pdp .hg-feature__link {
    padding: 18px 0;
  }
  .single-product div.product.hg-pdp .hg-feature__panel {
    padding-bottom: 70px;
  }
}
@media (max-width: 989px) {
  .single-product div.product.hg-pdp .hg-feature__bar {
    margin-bottom: 25px;
  }
  .single-product div.product.hg-pdp .hg-feature__list,
  .single-product div.product.hg-pdp .hg-feature__panel {
    max-width: none;
    padding-inline: 15px;
  }
  .single-product div.product.hg-pdp .hg-feature__link {
    padding: 12px 0;
  }
}
@media (max-width: 767px) {
  .single-product div.product.hg-pdp .hg-feature {
    margin-top: 25px;
    padding: 0 20px;
  }
  .single-product div.product.hg-pdp .hg-feature__bar {
    position: static;
    margin: 0;
    border: 0;
    background: none;
  }
  .single-product div.product.hg-pdp .hg-feature__list {
    padding: 0;
    border-bottom: 1px solid rgb(0 0 0 / 0.1);
  }
  .single-product div.product.hg-pdp .hg-feature__item--gallery {
    display: none;
  }
  .single-product div.product.hg-pdp .hg-feature__item--description .hg-feature__link::after {
    width: 100%;
  }
  .single-product div.product.hg-pdp .hg-feature__panel {
    padding: 20px 0;
  }
  .single-product div.product.hg-pdp .hg-feature__title {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
}
@media (prefers-reduced-motion: reduce) {
  .single-product div.product.hg-pdp .hg-feature__link::after {
    transition: none;
  }
}

/* Sections under the product (product.json order): spacer, icon row, story, FAQ. */
.single-product div.product.hg-pdp .hg-pdp-spacer {
  height: 60px;
}

/* Story: framed image-with-text (image on the start side over an offset frame) */
.single-product div.product.hg-pdp .hg-pdp-story {
  padding: 30px 0;
  background: var(--hg-bg);
  color: var(--hg-text);
}
.single-product div.product.hg-pdp .hg-pdp-story__container {
  box-sizing: border-box;
  width: 96%;
  margin-inline: auto;
  padding-inline: 20px;
}
.single-product div.product.hg-pdp .hg-pdp-story__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-inline: -10px;
}
.single-product div.product.hg-pdp :is(.hg-pdp-story__media, .hg-pdp-story__copy) {
  box-sizing: border-box;
  flex: 0 0 100%;
  max-width: 100%;
  min-width: 0;
  padding: 0 10px;
}
.single-product div.product.hg-pdp .hg-pdp-story__media {
  margin-bottom: 30px;
}
.single-product div.product.hg-pdp .hg-pdp-story__frame {
  position: relative;
  padding-block-end: 20px;
  padding-inline-start: 20px;
}
.single-product div.product.hg-pdp .hg-pdp-story__frame::before {
  content: "";
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 0;
  width: calc(100% - 20px);
  height: calc(100% - 20px);
  border-radius: 20px;
  background: #410407;
}
.single-product div.product.hg-pdp .hg-pdp-story__img {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  border-radius: 20px;
  object-fit: cover;
}
.single-product div.product.hg-pdp .hg-pdp-story__copy > * {
  margin: 0 0 30px;
}
.single-product div.product.hg-pdp .hg-pdp-story__copy > :last-child {
  margin-bottom: 0;
}
.single-product div.product.hg-pdp .hg-pdp-story__heading {
  margin: 0 0 20px;
  color: inherit;
  font-family: var(--hg-font-heading);
  font-size: 26px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.025em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}
.single-product div.product.hg-pdp .hg-pdp-story__text {
  font-size: 16px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.single-product div.product.hg-pdp .hg-pdp-story__text p {
  margin: 0 0 10px;
}
.single-product div.product.hg-pdp .hg-pdp-story__text > :last-child {
  margin-bottom: 0;
}
.single-product div.product.hg-pdp .hg-pdp-story__signature {
  font-weight: 700;
  text-transform: uppercase;
}
@media (min-width: 576px) {
  .single-product div.product.hg-pdp .hg-pdp-story__container {
    padding-inline: 15px;
  }
}
@media (min-width: 768px) {
  .single-product div.product.hg-pdp .hg-pdp-story__container {
    width: 100%;
    max-width: 950px;
  }
  .single-product div.product.hg-pdp :is(.hg-pdp-story__media, .hg-pdp-story__copy) {
    flex-basis: 50%;
    max-width: 50%;
  }
  .single-product div.product.hg-pdp .hg-pdp-story__media {
    margin-bottom: 0;
  }
  .single-product div.product.hg-pdp .hg-pdp-story__copy {
    padding-inline: 30px;
  }
  .single-product div.product.hg-pdp .hg-pdp-story__heading {
    font-size: 43.5px;
  }
}
@media (min-width: 990px) {
  .single-product div.product.hg-pdp .hg-pdp-story {
    padding: 60px 0 30px;
  }
  .single-product div.product.hg-pdp .hg-pdp-story__container {
    max-width: 1120px;
  }
  .single-product div.product.hg-pdp .hg-pdp-story__copy {
    padding-inline: 50px;
  }
}
@media (min-width: 1200px) {
  .single-product div.product.hg-pdp .hg-pdp-story__container {
    max-width: 1080px;
  }
  .single-product div.product.hg-pdp .hg-pdp-story__heading {
    font-size: 49.3px;
  }
}
@media (min-width: 1280px) {
  .single-product div.product.hg-pdp .hg-pdp-story__container {
    max-width: 1170px;
  }
}

/* FAQ: black section, one answer open at a time (assets/js/product.js) */
.single-product div.product.hg-pdp .hg-pdp-faq {
  padding: 30px 0;
  background: #000;
  color: #fff;
}
.single-product div.product.hg-pdp .hg-pdp-faq__container {
  width: min(1000px, calc(95% - 30px));
  margin-inline: auto;
}
.single-product div.product.hg-pdp .hg-pdp-faq__heading {
  margin: 0 0 40px;
  color: inherit;
  font-family: var(--hg-font-heading);
  font-size: 40.6px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}
.single-product div.product.hg-pdp .hg-pdp-faq__item {
  margin: 0 0 20px;
  overflow: hidden;
  border: 1px solid #000;
  border-radius: 10px;
}
.single-product div.product.hg-pdp .hg-pdp-faq__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 25px;
  color: inherit;
  list-style: none;
  cursor: pointer;
}
.single-product div.product.hg-pdp .hg-pdp-faq__toggle::-webkit-details-marker {
  display: none;
}
.single-product div.product.hg-pdp .hg-pdp-faq__toggle::marker {
  content: "";
}
.single-product div.product.hg-pdp .hg-pdp-faq__toggle:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: -4px;
}
.single-product div.product.hg-pdp .hg-pdp-faq__question {
  min-width: 0;
  margin: 0;
  padding-inline-end: 20px;
  color: inherit;
  font-family: var(--hg-font-heading);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: normal;
  text-transform: uppercase;
}
.single-product div.product.hg-pdp .hg-pdp-faq__icon {
  flex: none;
  width: 14px;
  height: 13px;
  fill: currentColor;
}
.single-product div.product.hg-pdp .hg-pdp-faq__item[open] .hg-pdp-faq__icon-v {
  opacity: 0;
}
.single-product div.product.hg-pdp .hg-pdp-faq__answer {
  padding: 20px;
  font-size: 14px;
  line-height: 1.6;
}
.single-product div.product.hg-pdp .hg-pdp-faq__answer p {
  margin: 0 0 10px;
}
@media (max-width: 1199px) {
  .single-product div.product.hg-pdp .hg-pdp-faq__container {
    width: min(850px, calc(95% - 30px));
  }
  .single-product div.product.hg-pdp .hg-pdp-faq__heading {
    margin-bottom: 20px;
    font-size: 37.7px;
  }
}
@media (max-width: 989px) {
  .single-product div.product.hg-pdp .hg-pdp-faq__container {
    width: min(700px, calc(95% - 30px));
  }
  .single-product div.product.hg-pdp .hg-pdp-faq__toggle {
    padding: 13px 20px;
  }
}
@media (max-width: 767px) {
  .single-product div.product.hg-pdp .hg-pdp-faq__container {
    width: auto;
    margin-inline: 20px;
  }
  .single-product div.product.hg-pdp .hg-pdp-faq__heading {
    font-size: 22px;
  }
  .single-product div.product.hg-pdp .hg-pdp-faq__icon {
    width: 12px;
    height: 11px;
  }
}

/* Judge.me reviews, between the FAQ and the recommendations. */
.single-product div.product.hg-pdp > #judgeme_product_reviews {
  margin: 0;
  padding: 30px 20px 0;
}
@media (min-width: 576px) {
  .single-product div.product.hg-pdp > #judgeme_product_reviews {
    padding: 60px 15px 0;
  }
}

/* Recommendations ("You may also like", sections/product-recommendations.liquid
   with the product.json "recommendations" settings) and the Ecomus recently viewed
   list, laid out alike. The Shopify product page has no recently viewed section
   showing, so that list takes the recommendations' layout and the spacing of
   sections/recently-viewed.liquid (28px, 48px from 750px).
   Each section is the Shopify .pdp-recs__container: 20px sides (15px from 576px)
   and at most 1170 / 1300 / 1400 / 1730px wide from 1200 / 1280 / 1441 / 1800px.
   Swiper shows 2.5 / 4 / 5 / 6 cards 20px apart (inc/product.php, assets/js/product.js);
   the cards come from product-card.css. */
.single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) {
  box-sizing: border-box;
  width: 100%;
  margin: 0 auto;
  padding-inline: 20px;
}
.single-product div.product.hg-pdp > section.related.products {
  padding-block: 30px;
}
.single-product div.product.hg-pdp > section.recently-viewed-products {
  padding-block: 28px;
}
.single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) > h2 {
  margin: 0 0 15px;
  padding: 0;
  color: var(--hg-text);
  font-family: var(--hg-font-heading);
  font-size: 23px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.025em;
  text-align: left;
  text-transform: uppercase;
}
/* The track runs 7.5px past the content edges and each card keeps half of the
   20px gap on both sides (.pdp-recs__track, .pdp-recs__slide), so the cards start
   2.5px in and the next card is cut 7.5px out. The 15px above and below keep the
   Ecomus room for the card hover. */
.single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) .products-carousel {
  margin: -15px -7.5px;
  padding: 15px 10px;
}
/* Ecomus clips the list unless the Swiper is the section's child; assets/js/product.js
   moves it into a frame with the arrows (.pdp-recs__carousel), so they can sit
   outside the clipped track. */
.single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) .swiper ul.products {
  overflow: visible;
}
.single-product div.product.hg-pdp .hg-recs__carousel {
  position: relative;
}
/* No pagination, quick view or arrows on phones (show_quick off, arrows from 768px). */
.single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) :is(.swiper-pagination, .ecomus-swiper-button),
.single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) ul.products li.product .product-featured-icons--primary {
  display: none;
}
/* Card text as in the section: the price in the heading face (card_price_font). */
.single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) ul.products li.product .price {
  font-family: var(--hg-font-heading);
}
@media (max-width: 767px) {
  .single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) ul.products li.product .woocommerce-loop-product__title {
    line-height: 1.28;
  }
}
@media (min-width: 576px) {
  .single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) {
    padding-inline: 15px;
  }
}
/* Recommendations spacing: 30px, 60px from 750px, but 30px again from 768px to
   989px (the section's tablet rule). */
@media (min-width: 750px) {
  .single-product div.product.hg-pdp > section.related.products {
    padding-block: 60px;
  }
  .single-product div.product.hg-pdp > section.recently-viewed-products {
    padding-block: 48px;
  }
}
@media (min-width: 768px) and (max-width: 989px) {
  .single-product div.product.hg-pdp > section.related.products {
    padding-block: 30px;
  }
}
@media (min-width: 768px) {
  /* Tablets use 88% of the 39px desktop heading. */
  .single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) > h2 {
    font-size: calc(39px * 0.882);
  }
  /* Arrows centred on the track, nudged up by about half the card text; outside
     the cards while the page margin has room, otherwise just inside the screen. */
  .single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) .ecomus-swiper-button {
    position: absolute;
    top: calc(50% - 33px);
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin: 0;
    padding: 0;
    border: 1px solid #e3ddd3;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgb(0 0 0 / 0.15);
    color: #0b0b0b;
    opacity: 1;
    transform: translateY(-50%);
    transition: opacity 0.4s ease;
  }
  .single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) .ecomus-swiper-button.swiper-button-prev {
    right: auto;
    left: max(calc(-3% - 8px), calc((100% - 100vw) / 2 + 10px));
  }
  .single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) .ecomus-swiper-button.swiper-button-next {
    right: max(calc(-3% - 8px), calc((100% - 100vw) / 2 + 10px));
    left: auto;
  }
  .single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) .ecomus-swiper-button.swiper-button-disabled {
    opacity: 0.4;
    cursor: default;
  }
  /* All cards in view: no arrows (.pdp-recs__carousel.is-static). */
  .single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) .ecomus-swiper-button.swiper-button-lock {
    display: none;
  }
}
@media (min-width: 1200px) {
  .single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) {
    max-width: 1170px;
  }
  .single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) > h2 {
    font-size: 39px;
  }
}
@media (min-width: 1280px) {
  .single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) {
    max-width: 1300px;
  }
}
@media (min-width: 1441px) {
  .single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) {
    max-width: 1400px;
  }
}
@media (min-width: 1800px) {
  .single-product div.product.hg-pdp > :is(section.related.products, section.recently-viewed-products) {
    max-width: 1730px;
  }
}

/* Sticky add-to-cart bar (inc/product.php, wp_footer): fades in under the header
   once the main button has scrolled away (assets/js/product.js). It follows the
   header's foot by transform: animating top made each move a layout shift (CLS). */
.single-product .hg-sticky {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 30;
  padding: 16px 0;
  background: var(--hg-bg);
  box-shadow: 0 2px 2px rgb(0 0 0 / 0.05);
  color: var(--hg-text);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(var(--hg-sticky-bar-top, var(--hg-sticky-top, 0px)));
  transition: opacity 0.3s, visibility 0s linear 0.3s, transform 0.3s;
}
.single-product .hg-sticky.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.3s, visibility 0s, transform 0.3s;
}
.single-product .hg-sticky__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 auto;
  padding: 0 15px;
}
.single-product .hg-sticky__product {
  display: flex;
  flex: 0 1 auto;
  align-items: center;
  min-width: 0;
}
.single-product .hg-sticky__thumb {
  flex: 0 0 auto;
  width: 40px;
  margin-inline-end: 10px;
  overflow: hidden;
  border-radius: 6px;
  background: #fff;
}
.single-product .hg-sticky__thumb img {
  display: block;
  width: 100%;
  height: auto;
}
.single-product .hg-sticky__title {
  min-width: 0;
  margin: 0;
  padding-inline-end: 15px;
  color: inherit;
  font-family: var(--hg-font-heading);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.025em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
  /* Long names stop at three lines; the full name heads the page. */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}
.single-product .hg-sticky__actions {
  display: flex;
  flex: 0 1 auto;
  align-items: center;
  justify-content: flex-end;
}
.single-product .hg-sticky__options,
.single-product .hg-sticky__price {
  display: none;
}
.single-product .hg-sticky__option {
  margin-inline-end: 15px;
}
.single-product .hg-sticky__select {
  display: block;
  height: 31px;
  min-width: 90px;
  max-width: 150px;
  min-height: 0;
  margin: 0;
  padding: 7px 25px 7px 12px;
  border: 1px solid rgb(0 0 0 / 0.3);
  border-radius: 10px;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat 88% 50% / 9px auto;
  color: inherit;
  font-size: 12px;
  line-height: normal;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
}
/* A sale reads as on the main price: the sale price first, then the struck-through price, muted;
   no yellow from the parent theme's ins style. */
.single-product .hg-sticky__price {
  align-items: baseline;
  gap: 10px;
  padding: 0 25px 0 10px;
  font-family: var(--hg-font-heading);
  font-size: 29.9px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
.single-product .hg-sticky__price del {
  color: var(--hg-muted);
  font-size: 16px;
  font-weight: 500;
}
.single-product .hg-sticky__price ins {
  order: -1;
  background: none;
  color: inherit;
  text-decoration: none;
}
.single-product .hg-sticky__atc {
  flex: 0 0 auto;
  min-height: 34px;
  height: auto;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid var(--hg-accent);
  border-radius: 4px;
  background: var(--hg-accent);
  color: #fff;
  font-family: var(--hg-font-heading);
  font-size: 12px;
  font-weight: 800;
  line-height: 12px;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
}
.single-product .hg-sticky__atc:hover {
  border-color: var(--hg-text);
  background: var(--hg-text);
  color: #fff;
}
.single-product .hg-sticky__atc:focus-visible,
.single-product .hg-sticky__close:focus-visible {
  outline: 2px solid var(--hg-text);
  outline-offset: 2px;
}
/* After the button in the row (inc/product.php), so it never covers the page under the bar. */
.single-product .hg-sticky__close {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  min-height: 0;
  margin: 0;
  margin-inline-start: 12px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #000;
  color: #fff;
  cursor: pointer;
}
.single-product .hg-sticky__close svg {
  width: 12px;
  height: 10px;
}
@media (min-width: 768px) {
  .single-product .hg-sticky__inner {
    padding: 0 30px;
  }
  .single-product .hg-sticky__title {
    font-size: 25.3px;
  }
  .single-product .hg-sticky__price {
    display: flex;
  }
}
@media (min-width: 990px) {
  .single-product .hg-sticky__inner {
    padding: 0 15px;
  }
  .single-product .hg-sticky__options {
    display: flex;
  }
}
@media (min-width: 1200px) {
  .single-product .hg-sticky__inner {
    max-width: 1170px;
  }
  .single-product .hg-sticky__thumb {
    width: 60px;
    margin-inline-end: 15px;
  }
  .single-product .hg-sticky__price {
    font-size: 32.2px;
  }
}
@media (min-width: 1280px) {
  .single-product .hg-sticky__inner {
    max-width: 1300px;
  }
}
@media (min-width: 1441px) {
  .single-product .hg-sticky__inner {
    max-width: 1400px;
  }
}

/* Options sheet (inc/product.php template, assets/js/product.js): below 990px the
   bar's button drops it down from the bar when a required option is empty. The
   product form moves in while it is open, so the option styles above apply; the
   sheet's own button presses the form's, which stays hidden here. */
html.hg-sticky-sheet-open {
  overflow: hidden;
  overflow-anchor: none;
  scrollbar-gutter: stable;
}
.single-product div.product.hg-pdp .hg-sticky-sheet {
  inset: var(--hg-sheet-top, 0px) 0 auto;
  width: 100%;
  max-width: none;
  height: auto;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: visible;
  background: transparent;
  color: var(--hg-text);
  font-size: 14px;
  line-height: 1.5;
  text-align: start;
}
.single-product div.product.hg-pdp .hg-sticky-sheet::backdrop {
  background: rgb(0 0 0 / 0.5);
}
.single-product div.product.hg-pdp .hg-sticky-sheet[open]::backdrop {
  animation: hg-fbt-fade 0.25s ease;
}
.single-product div.product.hg-pdp .hg-sticky-sheet__panel {
  display: flex;
  flex-direction: column;
  max-height: min(80vh, calc(100vh - var(--hg-sheet-top, 0px) - 16px));
  max-height: min(80dvh, calc(100dvh - var(--hg-sheet-top, 0px) - 16px - env(safe-area-inset-bottom)));
  border-radius: 0 0 10px 10px;
  background: var(--hg-bg);
  box-shadow: 0 8px 24px rgb(0 0 0 / 0.15);
  transition: transform 0.2s ease;
}
.single-product div.product.hg-pdp .hg-sticky-sheet[open] .hg-sticky-sheet__panel {
  animation: hg-sticky-sheet-down 0.3s ease;
}
.single-product div.product.hg-pdp .hg-sticky-sheet__panel.is-dragging {
  transition: none;
}
/* The bar's row: thumbnail, name and price, close. */
.single-product div.product.hg-pdp .hg-sticky-sheet__head {
  display: flex;
  flex: none;
  gap: 10px;
  align-items: center;
  padding-block: 12px;
  padding-inline: 15px 6px;
  border-bottom: 1px solid var(--hg-line);
  touch-action: none;
}
.single-product div.product.hg-pdp .hg-sticky-sheet__thumb {
  flex: none;
  width: 40px;
  overflow: hidden;
  border-radius: 6px;
  background: #fff;
}
.single-product div.product.hg-pdp .hg-sticky-sheet__thumb img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
}
.single-product div.product.hg-pdp .hg-sticky-sheet__summary {
  flex: 1 1 auto;
  min-width: 0;
}
.single-product div.product.hg-pdp .hg-sticky-sheet .hg-sticky-sheet__title {
  display: -webkit-box;
  margin: 0 0 4px;
  overflow: hidden;
  color: inherit;
  font-family: var(--hg-font-heading);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.025em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}
.single-product div.product.hg-pdp .hg-sticky-sheet__title:focus:not(:focus-visible) {
  outline: 0;
}
.single-product div.product.hg-pdp .hg-sticky-sheet__price {
  display: flex;
  flex-wrap: wrap;
  gap: 0 8px;
  align-items: baseline;
  margin: 0;
  font-family: var(--hg-font-heading);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
}
.single-product div.product.hg-pdp .hg-sticky-sheet__price del {
  color: var(--hg-muted);
  font-size: 13px;
  font-weight: 500;
}
.single-product div.product.hg-pdp .hg-sticky-sheet .hg-sticky-sheet__close {
  display: flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--hg-text);
  cursor: pointer;
}
.single-product div.product.hg-pdp .hg-sticky-sheet__close svg {
  width: 20px;
  height: 20px;
}
.single-product div.product.hg-pdp .hg-sticky-sheet__close:focus-visible {
  outline: 2px solid var(--hg-text);
  outline-offset: -2px;
}
.single-product div.product.hg-pdp .hg-sticky-sheet__body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 18px 15px 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  /* WCPA scrolls its first message's field to the top: not flush under the head. */
  scroll-padding-top: 14px;
}
.single-product div.product.hg-pdp .hg-sticky-sheet .ecomus-product-atc-group .single_add_to_cart_button {
  display: none;
}
.single-product div.product.hg-pdp .hg-sticky-sheet .ecomus-product-atc-group > .em-product-quantity {
  margin-bottom: 18px;
}
.single-product div.product.hg-pdp .hg-sticky-sheet__foot {
  flex: none;
  padding: 12px 15px;
  border-top: 1px solid var(--hg-line);
}
.single-product div.product.hg-pdp .hg-sticky-sheet__error {
  margin: 0 0 10px;
  color: var(--hg-accent-text);
  font-size: 13px;
}
/* Empty, the alert keeps its (zero-height) box, so a message put in it is announced. */
.single-product div.product.hg-pdp .hg-sticky-sheet__error:empty {
  margin: 0;
}
.single-product div.product.hg-pdp .hg-sticky-sheet .hg-sticky-sheet__add {
  width: 100%;
}
.single-product div.product.hg-pdp .hg-sticky-sheet__grip {
  display: flex;
  flex: none;
  justify-content: center;
  padding: 0 0 10px;
  touch-action: none;
  cursor: grab;
}
.single-product div.product.hg-pdp .hg-sticky-sheet__grip::before {
  content: "";
  width: 40px;
  height: 4px;
  border-radius: 2px;
  background: var(--hg-line-strong);
}
/* Revealed downwards from the bar's place (clip-path none would not animate). */
@keyframes hg-sticky-sheet-down {
  from {
    clip-path: inset(0 0 100% 0);
  }
  to {
    clip-path: inset(0);
  }
}
@media (min-width: 768px) {
  .single-product div.product.hg-pdp .hg-sticky-sheet__head {
    padding-inline-start: 30px;
    padding-inline-end: 21px;
  }
  .single-product div.product.hg-pdp .hg-sticky-sheet__body,
  .single-product div.product.hg-pdp .hg-sticky-sheet__foot {
    padding-inline: 30px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .single-product .hg-sticky,
  .single-product .hg-sticky.is-visible,
  .single-product div.product.hg-pdp .hg-sticky-sheet__panel {
    transition: none;
  }
  .single-product div.product.hg-pdp .hg-sticky-sheet[open] .hg-sticky-sheet__panel,
  .single-product div.product.hg-pdp .hg-sticky-sheet[open]::backdrop {
    animation: none;
  }
}
