/** Shopify CDN: Minification failed

Line 147:8 Expected identifier but found whitespace
Line 147:10 Unexpected "{"
Line 147:19 Expected ":"
Line 159:20 Expected identifier but found whitespace
Line 159:22 Unexpected "{"
Line 159:31 Expected ":"
Line 159:56 Expected identifier but found "%"
Line 289:2 Unexpected "{"
Line 289:3 Expected identifier but found "%"
Line 290:10 Unexpected "'s own CSS isn'"
... and 1 more hidden warnings

**/
/* SHOPIFY_STYLESHEETS_VERSION: 1.0 */


/* CSS from section stylesheet tags */
/* START_SECTION:custom-section (INDEX:11) */
.custom-section {
    position: relative;
    display: grid;
    width: 100%;
  }
  .custom-section__background,
  .custom-section__content {
    grid-column: 1;
    grid-row: 1;
  }
  .custom-section__background {
    z-index: -1;
  }
  .custom-section__background:not(.media--fixed-ratio) {
    position: absolute;
    inset: 0;
  }
  .custom-section__background .media__image,
  .custom-section__background .media__video {
    height: 100%;
    object-fit: cover;
  }
  .custom-section__content {
    display: grid;
    grid-template-columns: var(--content-grid);
  }
  .custom-section__content > * {
    grid-column: 2;
  }
/* END_SECTION:custom-section */

/* START_SECTION:product (INDEX:33) */
product-page {
    display: block;
  }

  .product-template {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 48px;

    .product-info {
      display: grid;
      grid-template-columns: repeat(6, minmax(0, 1fr));

      .product-info__inner.size-wide {
        grid-column: span 6 / span 6;
      }
      .product-info__inner.size-normal {
        grid-column: span 5 / span 5;
      }
    }
  }

  .product-template.size-equal {
    .product-gallery {
      grid-column: span 6 / span 6;
    }
    .product-info {
      grid-column: span 6 / span 6;
    }
  }

  .product-template.size-large_media {
    .product-gallery {
      grid-column: span 7 / span 7;
    }
    .product-info {
      grid-column: span 5 / span 5;
    }
  }

  .product-template.size-small_media {
    .product-gallery {
      grid-column: span 5 / span 5;
    }
    .product-info {
      grid-column: span 7 / span 7;
    }
  }

  @media screen and (max-width: 767px) {
    .product-template {
      gap: 12px;

      .product-info {
        .product-info__inner.size-normal {
          grid-column: span 6 / span 6;
        }
      }
    }

    .product-template.size-equal,
    .product-template.size-large_media,
    .product-template.size-small_media {
      .product-gallery,
      .product-info {
        grid-column: span 12 / span 12;
      }
    }
  }

  .visually-hidden-select {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .product-gallery__placeholder {
    background: var(--color-border);
  }

  .product-gallery__placeholder svg {
    width: 100%;
    height: auto;
  }

  .product-gallery__tiles {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: {{ section.settings.product_gallery_gap }};

    .product-gallery__item.full {
       grid-column: span 2 / span 2;
    }

    .product-gallery__item.half {
       grid-column: span 1 / span 1;
    }

    .product-gallery__item {
      overflow: hidden;
      border-radius: {{ section.settings.image_radius }}%;
    }
  }

  .product-gallery__swiper-wrap--mobile-only {
    display: none;
  }

  .product-gallery__swiper-wrap {
    position: relative;
  }

  .product-gallery__swiper {
    position: relative;
    overflow: hidden;
  }

  .product-gallery__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: var(--color-background);
    color: var(--color-foreground);
    cursor: pointer;
    box-shadow: 0 1px 4px rgb(0 0 0 / 0.2);
  }

  .product-gallery__arrow:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .product-gallery__arrow--prev {
    left: 12px;
  }

  .product-gallery__arrow--next {
    right: 12px;
  }

  .product-gallery__arrow.swiper-button-disabled {
    opacity: 0.4;
    cursor: default;
  }

  .product-gallery__swiper .swiper-wrapper {
    display: flex;
    flex-direction: row;
  }

  .product-gallery__swiper .swiper-slide {
    width: 100%;
    flex-shrink: 0;
    overflow: hidden;
  }

  /* Thumbnails are always shown as squares, regardless of the source photo's
     own aspect ratio - the image snippet renders at its natural ratio
     otherwise, so it's cropped here via object-fit. The main swiper image's
     own height is set per-breakpoint below instead (square on mobile, but
     filling the available width/height on desktop). */
  .product-gallery__nav--thumbnails .product-image {
    aspect-ratio: 1 / 1;
  }

  .product-gallery__swiper .product-image .image__clip img,
  .product-gallery__nav--thumbnails .product-image .image__clip img {
    height: 100%;
    object-fit: cover;
  }

  .product-gallery__nav {
    display: none;
    margin-top: 12px;
  }

  .product-gallery__thumbnails-swiper {
    /* clip only the horizontal overflow the row scrolls on - overflow-y stays
       genuinely visible (this specific pairing is exempt from the usual
       "non-visible sibling forces auto" rule) so the active thumbnail's
       outline (drawn outside the box via outline-offset) isn't cut off
       top/bottom. The first/last thumbnail still has nowhere to bleed
       horizontally though, since the row has zero side padding - the
       margin/padding pair below carves out a 4px buffer (2px outline +
       2px outline-offset) inside the clip boundary for that, while the
       negative margin keeps the row's visible edges flush with the main
       image above it rather than shifting the whole row inward. */
    overflow-x: clip;
    overflow-y: visible;
    margin: 0 -4px;
    padding: 0 4px;
  }

  .product-gallery__nav--thumbnails .swiper-wrapper {
    display: flex;
  }

  .product-gallery__nav--thumbnails .swiper-slide {
    width: 64px;
    flex-shrink: 0;
    margin-right: 8px;
    overflow: hidden;
    border-radius: 4px;
    cursor: pointer;
    opacity: 0.6;
  }

  .product-gallery__nav--thumbnails .swiper-slide-thumb-active {
    opacity: 1;
    outline: 2px solid var(--color-foreground);
    outline-offset: 2px;
  }

  .product-gallery__nav--pips {
    justify-content: center;
  }

  .product-gallery__pips {
    position: relative;
  }

  {% comment %}
    Swiper's own CSS isn't loaded in this theme (only the JS modules are), so
    bullets get no base styling at all - without an explicit `display` here,
    the <span> stays inline and its width/height are ignored by the browser,
    making every bullet invisible.
  {% endcomment %}
  .product-gallery__pips .swiper-pagination-bullet {
    display: inline-block;
    width: 12px !important;
    height: 12px !important;
    margin: 0 4px;
    border-radius: 50%;
    background: #000;
    opacity: 0.5;
    cursor: pointer;
  }

  .product-gallery__pips .swiper-pagination-bullet-active {
    opacity: 1;
  }

  @media screen and (max-width: 767px) {
    .product-gallery__tiles {
      display: none;
    }

    .product-gallery__swiper-wrap--mobile-only {
      display: block;
    }

    .product-gallery[data-nav-mobile="thumbnails"] .product-gallery__nav--thumbnails {
      display: block;
    }

    .product-gallery[data-nav-mobile="pips"] .product-gallery__nav--pips {
      display: flex;
    }

    /* Main image stays square on mobile (no sticky viewport budget to fill
       instead, unlike desktop below). object-fit: cover (set above) already
       centers the crop within whichever ratio is active - compact just
       swaps the ratio itself. */
    .product-gallery__swiper .product-image {
      aspect-ratio: 1 / 1;
    }

    .product-gallery[data-gallery-size-mobile="compact"] .product-gallery__swiper .product-image {
      aspect-ratio: 4 / 3;
    }
  }

  @media screen and (min-width: 768px) {
    .product-gallery[data-gallery-style="swiper"][data-nav-desktop="thumbnails"] .product-gallery__nav--thumbnails {
      display: block;
    }

    .product-gallery[data-gallery-style="swiper"][data-nav-desktop="pips"] .product-gallery__nav--pips {
      display: flex;
    }

    /* Main swiper is a square, sized to whatever's left of the viewport
       height (minus the sticky header and some breathing room for the
       thumbnail row below it), capped to the gallery column's own width so
       it never overflows sideways. The whole block - main swiper plus the
       thumbnail row, which shares its width - is then pushed to the right
       edge of the column via margin-left: auto, so any leftover horizontal
       space (when the square is narrower than the column) falls on the
       left instead of being centered or left-aligned. */
    .product-gallery[data-gallery-style="swiper"] .product-gallery__swiper-wrap {
      width: min(100%, min(70vh, calc(100vh - var(--sticky-header-offset, 0px) - 140px)));
      margin-left: auto;
    }

    .product-gallery[data-gallery-style="swiper"] .product-gallery__swiper .product-image {
      width: 100%;
      height: auto;
      aspect-ratio: 1 / 1;
    }

    /* Keeps the gallery in view as the visitor scrolls a taller product-info
       column beside it. align-self: start stops the grid from stretching the
       gallery to match product-info's height, which would otherwise leave it
       no room to stick within its own row. */
    .product-gallery {
      position: sticky;
      align-self: start;
      top: calc(var(--sticky-header-offset, 0px) + 16px);
    }
  }

  .product-gallery[data-media-source="variant"][data-single-option="true"] [data-media-id].is-active {
    outline: 2px solid var(--color-foreground);
    outline-offset: 2px;
  }
/* END_SECTION:product */

/* CSS from block stylesheet tags */
/* START_BLOCK:_accelerated-checkout (INDEX:41) */
.accelerated-checkout {
    display: block;
  }
/* END_BLOCK:_accelerated-checkout */

/* START_BLOCK:_add-to-cart (INDEX:42) */
.add-to-cart {
    display: block;
  }

  .add-to-cart__submit {
    width: 100%;
    box-shadow: 0 1px 2px rgb(var(--color-shadow-rgb) / 0.08), 0 6px 16px rgb(var(--color-shadow-rgb) / 0.1);
  }

  .add-to-cart__submit:disabled {
    cursor: not-allowed;
    opacity: 0.5;
    pointer-events: none;
    box-shadow: none;
  }

  /* Purchase-type-selector present but nothing chosen yet - stays clickable
     (unlike :disabled) so clicking it can prompt the customer to choose,
     see product.js's form 'submit' listener. */
  .add-to-cart__submit.is-awaiting-selection {
    opacity: 0.6;
  }

  .add-to-cart__submit:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }
/* END_BLOCK:_add-to-cart */

/* START_BLOCK:_buy-buttons (INDEX:43) */
.buy-buttons {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .buy-buttons__row {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  @media screen and (min-width: 768px) {
    .buy-buttons__row {
      flex-direction: row;
    }

    .buy-buttons__row .add-to-cart {
      flex: 1;
    }
  }
/* END_BLOCK:_buy-buttons */

/* START_BLOCK:_product-description (INDEX:44) */
.product-description {
    color: var(--color-foreground);
  }

  .product-description p {
    margin: 0 0 12px;
  }

  .product-description p:last-child {
    margin-bottom: 0;
  }

  .product-description ul,
  .product-description ol {
    margin: 0 0 12px;
    padding-left: 1.25em;
  }

  .product-description ul:last-child,
  .product-description ol:last-child {
    margin-bottom: 0;
  }

  .product-description ul {
    list-style: disc;
  }

  .product-description ol {
    list-style: decimal;
  }

  .product-description li {
    margin-bottom: 4px;
  }

  .product-description li:last-child {
    margin-bottom: 0;
  }

  .product-description li > ul,
  .product-description li > ol {
    margin-top: 4px;
  }

  .product-description__placeholder {
    color: var(--color-foreground-muted);
    font-style: italic;
  }
/* END_BLOCK:_product-description */

/* START_BLOCK:_product-price (INDEX:45) */
.product-price {
    display: inline-flex;
    align-items: baseline;
    gap: 10px;
  }

  .product-price__value {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--color-foreground-heading);
  }

  .product-price--sale .product-price__value {
    color: var(--color-primary);
  }

  .product-price__compare-at {
    margin: 0;
    font-size: 0.9375rem;
    color: var(--color-foreground-muted);
    text-decoration: line-through;
  }
/* END_BLOCK:_product-price */

/* START_BLOCK:_product-title (INDEX:46) */
.product-title__heading {
    margin: 0;
    color: var(--color-foreground-heading);
  }
/* END_BLOCK:_product-title */

/* START_BLOCK:_purchase-type-selector (INDEX:47) */
purchase-types {
    display: flex;
    flex-direction: column;
    gap: 16px;
    background: var(--pdp-surface-background);
    border: var(--pdp-surface-border);
    border-radius: var(--pdp-surface-radius);
    box-shadow: var(--pdp-surface-shadow);
  }

  /* Applied by product.js when add-to-cart is submitted with no purchase
     type chosen yet - cleared again as soon as the customer picks one. */
  purchase-types.is-invalid {
    box-shadow: 0 0 0 2px var(--color-error, #d02e2e);
    animation: purchase-types-shake 0.4s ease;
  }

  @keyframes purchase-types-shake {
    10%, 90% { transform: translateX(-1px); }
    20%, 80% { transform: translateX(2px); }
    30%, 50%, 70% { transform: translateX(-4px); }
    40%, 60% { transform: translateX(4px); }
  }

  .purchase-types__prompt {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-error, #d02e2e);
  }

  .purchase-types__consent-note {
    display: none;
    margin: 0;
    font-size: 0.8125rem;
    color: var(--color-foreground-muted);
  }

  .purchase-type-selector:has(purchase-types [data-purchase-type-option="subscription"].is-active) .purchase-types__consent-note {
    display: block;
  }

  .purchase-types--no-border,
  .purchase-types--no-border .purchase-option {
    border: 0;
  }

  .purchase-types--no-shadow {
    box-shadow: none;
  }

  .purchase-types__info-link-wrap {
    display: flex;
    justify-content: flex-end;
    margin-top: 8px;
  }

  .purchase-types__info-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.75rem;
    color: var(--color-primary);
    text-decoration: none;
  }

  .purchase-types__info-link:hover {
    text-decoration: underline;
  }

  .purchase-types__info-link:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  /* Shared: switch + benefit list bits used by both layouts */
  .purchase-types__badge,
  .purchase-option__badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    background: var(--color-primary);
    border-radius: 999px;
    font-size: 0.625rem;
    font-weight: 600;
    line-height: 1.4;
    color: var(--color-primary-button-text);
    white-space: nowrap;
  }

  .purchase-types__benefits,
  .purchase-option__benefits {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .purchase-types__benefits li,
  .purchase-option__benefits li {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--color-foreground);
  }

  .purchase-types__benefits .icon,
  .purchase-option__benefits .icon {
    color: var(--color-primary);
  }

  /* Toggle layout */
  .purchase-types__switch {
    display: inline-flex;
    align-self: flex-start;
    gap: 4px;
    padding: 4px;
  }

  .purchase-types__option {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    background: none;
    border: 0;
    border-radius: calc(var(--pdp-surface-radius) - 4px);
    font: inherit;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-foreground-muted);
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
  }

  .purchase-types__option .purchase-types__badge {
    position: absolute;
    top: -10px;
    right: -8px;
    box-shadow: 0 1px 2px rgb(var(--color-shadow-rgb) / 0.2);
  }

  .purchase-types__option-check {
    display: none;
    flex-shrink: 0;
    color: var(--color-primary);
  }

  .purchase-types__option:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .purchase-types__option.is-active {
    background: var(--purchase-option-active-bg, var(--color-background));
    color: var(--color-foreground-heading);
    font-weight: 600;
    box-shadow: 0 0 0 1px var(--purchase-option-active-border, var(--color-primary)), 0 1px 2px rgb(var(--color-shadow-rgb) / 0.1);
  }

  .purchase-types__option.is-active .purchase-types__option-check {
    display: inline-flex;
  }

  .purchase-types--toggle .purchase-types__details {
    display: none;
    flex-direction: column;
    gap: 16px;
    padding: 16px;
  }

  .purchase-types--toggle:has(.purchase-types__option[data-purchase-type-option="one_time"].is-active) .purchase-types__details[data-purchase-type-panel="one_time"],
  .purchase-types--toggle:has(.purchase-types__option[data-purchase-type-option="subscription"].is-active) .purchase-types__details[data-purchase-type-panel="subscription"] {
    display: flex;
  }

  .purchase-types__details-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin: 0;
  }

  .purchase-types__details-subheading {
    color: var(--color-foreground-muted);
    font-size: 0.875rem;
  }

  .purchase-types__details-price {
    font-weight: 600;
    color: var(--color-foreground-heading);
  }

  /* Radio layout */
  .purchase-types__radios {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .purchase-types--radio {
    gap: 12px;
    background: none;
    border: 0;
    box-shadow: none;
  }

  .purchase-option {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 16px;
    background: var(--purchase-option-bg, var(--pdp-surface-background));
    border: 1px solid var(--purchase-option-border, var(--color-border));
    border-radius: var(--pdp-surface-radius);
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
  }

  .purchase-option:has(.purchase-option__radio.is-active) {
    background: var(--purchase-option-active-bg, rgb(var(--color-primary-rgb) / var(--opacity-subtle)));
    border-color: var(--purchase-option-active-border, var(--color-primary));
    box-shadow: 0 0 0 1px var(--purchase-option-active-border, var(--color-primary));
  }

  .purchase-option__row {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .purchase-option__radio {
    width: 18px;
    height: 18px;
    accent-color: var(--color-primary);
    flex-shrink: 0;
  }

  .purchase-option__radio:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .purchase-option__heading {
    font-weight: 600;
    color: var(--color-foreground-heading);
  }

  .purchase-option__price {
    margin-left: auto;
    font-weight: 600;
    color: var(--color-foreground-heading);
  }

  .purchase-option__subheading {
    padding-left: 28px;
    color: var(--color-foreground-muted);
    font-size: 0.875rem;
  }

  .purchase-option__expanded {
    display: none;
    flex-direction: column;
    gap: 12px;
    padding-left: 28px;
  }

  .purchase-option:has(.purchase-option__radio.is-active) .purchase-option__expanded {
    display: flex;
  }
/* END_BLOCK:_purchase-type-selector */

/* START_BLOCK:_quantity-selector (INDEX:48) */
.quantity-selector-wrapper {
    display: flex;
    /* Match the height of a sibling like Add to cart when both sit in a
       horizontal group block - has no effect outside a flex/grid row. */
    align-self: stretch;
  }

  .quantity-selector {
    display: inline-flex;
    align-items: stretch;
    background: var(--pdp-surface-background);
    border: var(--pdp-surface-border);
    border-radius: var(--pdp-surface-radius);
    box-shadow: var(--pdp-surface-shadow);
    overflow: hidden;
  }

  .quantity-selector--no-border {
    border: 0;
  }

  .quantity-selector--no-shadow {
    box-shadow: none;
  }

  .quantity-selector__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    background: none;
    border: 0;
    font-size: 1rem;
    line-height: 1;
    color: var(--color-foreground);
    cursor: pointer;
    transition: background-color 0.15s ease;
  }

  .quantity-selector__button:hover {
    background: rgb(var(--color-foreground-rgb) / 0.06);
  }

  .quantity-selector__button:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: -2px;
  }

  .quantity-selector__input {
    width: 48px;
    padding: 8px 4px;
    background: none;
    border: 0;
    font: inherit;
    text-align: center;
    color: var(--color-foreground);
    appearance: textfield;
    -moz-appearance: textfield;
  }

  .quantity-selector--normal .quantity-selector__input {
    width: 64px;
    padding: 10px 12px;
    border-radius: var(--pdp-surface-radius);
  }

  .quantity-selector__input::-webkit-outer-spin-button,
  .quantity-selector__input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
  }

  .quantity-selector--area .quantity-selector__button {
    width: 52px;
    font-size: 1.25rem;
  }

  .quantity-selector--area .quantity-selector__input {
    width: 56px;
  }
/* END_BLOCK:_quantity-selector */

/* START_BLOCK:_showcase-add-to-cart-form (INDEX:49) */
.showcase-add-to-cart__row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
  }

  .showcase-add-to-cart__submit {
    flex: 1;
    min-width: 160px;
  }
/* END_BLOCK:_showcase-add-to-cart-form */

/* START_BLOCK:_showcase-product-description (INDEX:50) */
.showcase-product-description {
    color: var(--color-foreground);
  }

  .showcase-product-description p {
    margin: 0 0 12px;
  }

  .showcase-product-description p:last-child {
    margin-bottom: 0;
  }

  .showcase-product-description ul,
  .showcase-product-description ol {
    margin: 0 0 12px;
    padding-left: 1.25em;
  }

  .showcase-product-description ul:last-child,
  .showcase-product-description ol:last-child {
    margin-bottom: 0;
  }

  .showcase-product-description ul {
    list-style: disc;
  }

  .showcase-product-description ol {
    list-style: decimal;
  }

  .showcase-product-description li {
    margin-bottom: 4px;
  }

  .showcase-product-description li:last-child {
    margin-bottom: 0;
  }
/* END_BLOCK:_showcase-product-description */

/* START_BLOCK:_showcase-product-price (INDEX:51) */
.showcase-product-price {
    display: inline-flex;
    align-items: baseline;
    gap: 10px;
  }

  .showcase-product-price__value {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--color-foreground-heading);
  }

  .showcase-product-price--sale .showcase-product-price__value {
    color: var(--color-primary);
  }

  .showcase-product-price__compare-at {
    margin: 0;
    font-size: 0.9375rem;
    color: var(--color-foreground-muted);
    text-decoration: line-through;
  }
/* END_BLOCK:_showcase-product-price */

/* START_BLOCK:_showcase-product-title (INDEX:52) */
.showcase-product-title__heading {
    margin: 0;
    color: var(--color-foreground-heading);
  }
/* END_BLOCK:_showcase-product-title */

/* START_BLOCK:_variant-picker (INDEX:54) */
.variant-picker {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 16px;
    background: var(--pdp-surface-background);
    border: var(--pdp-surface-border);
    border-radius: var(--pdp-surface-radius);
    box-shadow: var(--pdp-surface-shadow);
  }

  .variant-picker--no-border {
    border: 0;
  }

  .variant-picker--no-shadow {
    box-shadow: none;
  }

  @media screen and (max-width: 767px) {
    .variant-picker {
      padding: 8px;
    }
  }

  .variant-picker__option {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 0;
    margin: 0;
    border: 0;
  }

  .variant-picker__legend {
    padding: 0;
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: 8px;
  }

  .variant-picker__values {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  .variant-picker__value {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    padding: 8px 14px;
    background: var(--color-background);
    border: 1px solid var(--color-border);
    border-radius: 8px;
    font-size: 0.875rem;
    cursor: pointer;
    user-select: none;
    transition: border-color 0.15s ease, background-color 0.15s ease;
  }

  .variant-picker__value input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
  }

  .variant-picker__value:has(input:checked) {
    background: var(--color-foreground);
    border-color: var(--color-foreground);
    color: var(--color-background);
  }

  .variant-picker__value:has(input:disabled) {
    color: var(--color-foreground-muted);
    text-decoration: line-through;
    cursor: not-allowed;
  }

  .variant-picker__value:has(input:disabled) input {
    cursor: not-allowed;
  }

  .variant-picker__value:has(input:focus-visible) {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .variant-picker__values--with-savings {
    display: grid;
    grid-template-columns: repeat(var(--variant-picker-columns), minmax(44px, auto));
    align-items: start;
    gap: 6px 8px;
    overflow-x: auto;
  }

  .variant-picker__values--with-savings .variant-picker__value--pills {
    width: 100%;
  }

  .variant-picker__savings {
    grid-row: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0 2px;
    font-size: 0.75rem;
    color: var(--color-foreground-muted);
    text-align: center;
    white-space: nowrap;
  }

  .variant-picker__savings--spanning::before,
  .variant-picker__savings--spanning::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--color-border);
  }

  .variant-picker__select {
    width: 100%;
    padding: 8px 12px;
    background: var(--color-background);
    border: 1px solid var(--color-border);
    border-radius: 8px;
    font-size: 0.875rem;
    cursor: pointer;
  }

  .variant-picker__select:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .variant-picker__value--swatch {
    min-width: 0;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 50%;
  }

  .variant-picker__value--swatch:has(input:checked) {
    background: none;
    border-color: var(--color-foreground);
  }

  .variant-picker__value--swatch:has(input:disabled) {
    text-decoration: none;
    opacity: 0.4;
  }

  .variant-picker__swatch {
    display: block;
    width: 100%;
    height: 100%;
    border: 2px solid var(--color-background);
    border-radius: 50%;
    background-color: var(--color-border);
    background-size: cover;
    background-position: center;
  }

  .variant-picker__visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
/* END_BLOCK:_variant-picker */

/* START_BLOCK:accordion-list (INDEX:55) */
.accordion-list {
    display: flex;
    flex-direction: column;
  }
/* END_BLOCK:accordion-list */

/* START_BLOCK:accordion (INDEX:56) */
.accordion-item {
    display: block;
    border-bottom: 1px solid var(--color-border);
  }

  .accordion-item__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding: 16px 4px;
    background: none;
    border: 0;
    font: inherit;
    font-weight: 600;
    text-align: left;
    color: inherit;
    cursor: pointer;
  }

  .accordion-item__trigger:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .accordion-item__icon {
    flex-shrink: 0;
    transition: transform 0.2s ease;
  }

  .accordion-item__trigger[aria-expanded="true"] .accordion-item__icon {
    transform: rotate(180deg);
  }

  .accordion-item__content {
    padding: 0 4px 16px;
  }
/* END_BLOCK:accordion */

/* START_BLOCK:advanced_dropdown (INDEX:57) */
.header__mega-trigger {
    background: none;
    border: 0;
    font: inherit;
    cursor: pointer;
  }

  .header__mega-trigger:focus-visible,
  .header__mega-link:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .header__nav-item--mega:hover .header__dropdown-caret,
  .header__nav-item--mega:focus-within .header__dropdown-caret {
    transform: rotate(180deg);
  }

  .header__mega-panel {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 40;
  }

  .header__nav-item--mega:hover .header__mega-panel,
  .header__nav-item--mega:focus-within .header__mega-panel {
    display: block;
  }

  .header__mega-panel-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    padding-top: 24px;
    padding-bottom: 24px;
    background: var(--color-background);
    border-top: 1px solid var(--color-border);
  }

  .header__mega-links {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .header__mega-link {
    color: inherit;
    text-decoration: none;
  }

  .header__mega-content[data-mode="cards"] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 16px;
    align-content: start;
  }

  .header__mega-content[data-mode="image_per_link"] {
    position: relative;
    aspect-ratio: 4 / 3;
  }

  .header__mega-content[data-mode="image_per_link"] .hover-image {
    position: absolute;
    inset: 0;
  }

  .header__mega-content[data-mode="cards"] .hover-image {
    display: none;
  }

  .header__mega-content[data-mode="image_per_link"] .dropdown-card {
    display: none;
  }
/* END_BLOCK:advanced_dropdown */

/* START_BLOCK:button (INDEX:59) */
.text {
    text-align: var(--text-align);
  }

  .text--muted {
    color: var(--color-foreground-muted);
  }

  .text--eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 0.875em;
  }
/* END_BLOCK:button */

/* START_BLOCK:coloured-text (INDEX:61) */
.coloured-text {
    line-height: 1.4;
  }
/* END_BLOCK:coloured-text */

/* START_BLOCK:group (INDEX:65) */
.group {
    display: flex;
    flex-wrap: nowrap;
    overflow: hidden;
    width: 100%;
    gap: var(--gap);
  }

  .group--horizontal {
    flex-direction: row;
    justify-content: var(--justify-content, space-between);
    align-items: var(--align-items, center);
    padding: 0 var(--padding);
  }

  .group--vertical {
    flex-direction: column;
    align-items: var(--alignment);
    padding: var(--padding) 0;
  }
/* END_BLOCK:group */

/* START_BLOCK:heading (INDEX:66) */
.text {
    text-align: var(--text-align);
  }

  .text--muted {
    color: var(--color-foreground-muted);
  }

  .text--eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 0.875em;
  }
/* END_BLOCK:heading */

/* START_BLOCK:hover-image (INDEX:67) */
.hover-image[hidden] {
    display: none;
  }

  .hover-image .media {
    height: 100%;
  }

  .hover-image .media__image,
  .hover-image .media__video {
    height: 100%;
    object-fit: cover;
  }
/* END_BLOCK:hover-image */

/* START_BLOCK:line (INDEX:70) */
.line {
    display: block;
    align-self: stretch;
    flex: 1 1 auto;
    min-width: 0;
    height: 0;
    border: none;
    border-top-width: var(--thickness);
    border-top-color: var(--color-border);
    margin: 0;
  }

  .line--solid {
    border-top-style: solid;
  }

  .line--dotted {
    border-top-style: dotted;
  }
/* END_BLOCK:line */

/* START_BLOCK:link (INDEX:71) */
.link-block {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-primary);
    text-decoration: none;
    font-weight: 600;
  }

  .link-block--underline {
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .link-block__arrow {
    display: inline-flex;
    transition: transform 0.2s ease;
  }

  a.link-block:hover .link-block__arrow {
    transform: translateX(3px);
  }
/* END_BLOCK:link */

/* START_BLOCK:spacer (INDEX:75) */
.spacer {
    width: 100%;
    height: var(--height-mobile);
  }

  @media screen and (min-width: 768px) {
    .spacer {
      height: var(--height-desktop);
    }
  }
/* END_BLOCK:spacer */

/* START_BLOCK:text (INDEX:76) */
.text--muted {
    color: var(--color-foreground-muted);
  }

  .text--eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 0.875em;
  }
/* END_BLOCK:text */

/* START_BLOCK:upsell-card (INDEX:77) */
.upsell-card-block__form {
    display: block;
  }

  .upsell-card {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 8px;
    background: var(--color-background);
    border: 0;
    color: var(--color-foreground);
    text-decoration: none;
    text-align: left;
    font: inherit;
    cursor: pointer;
  }

  .upsell-card--style-border {
    border: 1px solid var(--color-border);
  }

  .upsell-card--style-shadow {
    box-shadow: 0 1px 2px rgb(var(--color-shadow-rgb) / 0.1), 0 4px 8px rgb(var(--color-shadow-rgb) / 0.1);
  }

  .upsell-card:disabled {
    opacity: 0.5;
    cursor: not-allowed;
  }

  .upsell-card:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .upsell-card__media {
    flex: 0 0 auto;
    display: block;
    width: 4.5rem;
  }

  .upsell-card__placeholder {
    display: block;
  }

  .upsell-card__placeholder svg {
    width: 100%;
    height: auto;
  }

  .upsell-card__content {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .upsell-card__title {
    display: block;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .upsell-card__price {
    display: block;
    color: var(--color-foreground-muted);
  }

  .upsell-card__price s {
    margin-right: 4px;
  }

  .upsell-card__button {
    margin-top: 4px;
    padding: 6px 12px;
    font-size: 0.8125rem;
  }

  .upsell-card--empty {
    padding: 12px;
    color: var(--color-foreground-muted);
    text-align: center;
    border: 1px dashed var(--color-border);
  }
/* END_BLOCK:upsell-card */

/* CSS from snippet stylesheet tags */
/* START_SNIPPET:article-card (INDEX:82) */
.article-card-frame {
    container-type: inline-size;
    display: flex;
    flex-direction: column;
    height: 100%;
  }

  .article-card {
    display: flex;
    flex-direction: column;
    flex: 1;
    overflow: hidden;
    background: var(--color-background);
  }

  .article-card__image-link {
    display: block;
  }

  .article-card__placeholder svg {
    width: 100%;
    height: auto;
  }

  .article-card__content {
    margin-top: 12px;
    padding: 0 12px 12px;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 4px;
  }

  .article-card__date {
    color: var(--color-foreground-muted);
    font-size: 0.875rem;
  }

  .article-card__title {
    margin: 0;
    color: inherit;
    font-weight: 600;
    text-decoration: none;
  }

  .article-card__title a {
    color: inherit;
    text-decoration: none;
  }

  .article-card__excerpt {
    color: var(--color-foreground-muted);
  }

  .article-card--tile {
    position: relative;
    display: block;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    color: #fff;
    text-decoration: none;
  }

  .article-card--tile .article-card__tile-image {
    height: 100%;
  }

  .article-card--tile .article-card__tile-image.image img {
    height: 100%;
    object-fit: cover;
  }

  .article-card--tile .article-card__placeholder.article-card__tile-image {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-border);
  }

  .article-card--tile .article-card__placeholder.article-card__tile-image svg {
    width: 60%;
    height: auto;
  }

  .article-card__tile-overlay {
    position: absolute;
    inset: 0;
    background: rgb(0 0 0 / 0.35);
  }

  .article-card__tile-title {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 16px;
    color: inherit;
    font-weight: 600;
    text-align: center;
  }

  .article-card--shadow-small.article-card--shadow-style-soft {
    box-shadow: 0 1px 2px rgb(var(--color-shadow-rgb) / 0.1), 0 1px 3px rgb(var(--color-shadow-rgb) / 0.15);
  }

  .article-card--shadow-medium.article-card--shadow-style-soft {
    box-shadow: 0 2px 4px rgb(var(--color-shadow-rgb) / 0.1), 0 4px 8px rgb(var(--color-shadow-rgb) / 0.15);
  }

  .article-card--shadow-big.article-card--shadow-style-soft {
    box-shadow: 0 4px 8px rgb(var(--color-shadow-rgb) / 0.12), 0 12px 24px rgb(var(--color-shadow-rgb) / 0.18);
  }

  .article-card--shadow-small.article-card--shadow-style-solid {
    box-shadow: 2px 2px 0 0 var(--color-shadow);
  }

  .article-card--shadow-medium.article-card--shadow-style-solid {
    box-shadow: 4px 4px 0 0 var(--color-shadow);
  }

  .article-card--shadow-big.article-card--shadow-style-solid {
    box-shadow: 8px 8px 0 0 var(--color-shadow);
  }
/* END_SNIPPET:article-card */

/* START_SNIPPET:article-product-card (INDEX:83) */
.article-product-card {
    display: flex;
    gap: 12px;
    align-items: flex-start;
  }

  .article-product-card__image-link {
    display: block;
    flex: 0 0 80px;
    width: 80px;
  }

  .article-product-card__placeholder svg {
    width: 100%;
    height: auto;
  }

  .article-product-card__content {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
  }

  .article-product-card__title {
    color: inherit;
    font-weight: 600;
  }

  .article-product-card__price s {
    color: var(--color-foreground-muted);
  }

  .article-product-card__cta {
    font-size: 0.875rem;
    text-decoration: underline;
    margin-top: 4px;
  }
/* END_SNIPPET:article-product-card */

/* START_SNIPPET:cart-drawer-items (INDEX:87) */
.flyout-cart__items {
    display: flex;
    flex-direction: column;
    gap: 20px;

    a {
      text-decoration: none;
    }
  }

  .cart-item__info {
    min-height: 56px;
    justify-content: end;
  }

  .flyout-cart__item {
    display: flex;
    gap: 12px;
  }

  .image-wrapper {
    width: 80px;
  }

  .flyout-cart__item-image {
    width: 6rem;
    flex-shrink: 0;
  }

  .flyout-cart__item-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .flyout-cart__item-title {
    font-weight: 600;
    color: inherit;
  }

  .flyout-cart__item-variant {
    color: var(--color-foreground-muted);
    font-size: 0.875rem;
  }

  .flyout-cart__item-selling-plan {
    margin: 0;
    color: var(--color-primary);
    font-size: 0.8125rem;
    font-weight: 600;
  }

  .flyout-cart__item-qty {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    width: fit-content;
    padding: 2px 8px;
  }

  .flyout-cart__item-qty button {
    background: none;
    border: none;
    cursor: pointer;
    color: inherit;
    font-size: 1rem;
    line-height: 1;
    padding: 4px;
  }

  .flyout-cart__item-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    font-weight: 800;
  }

  .flyout-cart__item-price-compare {
    color: var(--color-foreground-muted);
    text-decoration: line-through;
    font-size: 0.8125rem;
  }

  .flyout-cart__item-price--sale .flyout-cart__item-price-final {
    color: var(--color-primary);
  }

  .flyout-cart__item-price-free {
    color: var(--color-primary);
    font-weight: 600;
    text-transform: uppercase;
  }

  .flyout-cart__item-remove {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--color-foreground-muted);
    text-decoration: underline;
    align-self: flex-start;
    padding: 0;
    font-size: 0.875rem;
  }

  .flyout-cart__item-qty button:focus-visible,
  .flyout-cart__item-remove:focus-visible,
  .flyout-cart__item-title:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .flyout-cart__empty {
    text-align: center;
    color: var(--color-foreground-muted);
    padding: 40px 0;
  }

  .flyout-cart__item--gift-fade {
    position: relative;
    z-index: 1;
  }

  .flyout-cart__item--gift-fade::before {
    content: '';
    position: absolute;
    inset: -8px;
    z-index: -1;
    border-radius: 10px;
    pointer-events: none;
    animation: flyout-cart-gift-fade 4.2s ease-out forwards;
  }

  .flyout-cart__item--gift-fade::after {
    content: '';
    position: absolute;
    inset: -8px;
    border-radius: 10px;
    pointer-events: none;
    background: linear-gradient(
      100deg,
      transparent 30%,
      rgb(var(--color-primary-rgb) / 0.35) 46%,
      rgb(255 255 255 / 0.65) 50%,
      rgb(var(--color-primary-rgb) / 0.35) 54%,
      transparent 70%
    );
    background-size: 250% 100%;
    background-position: -150% 0;
    background-repeat: no-repeat;
    opacity: 0;
    animation: flyout-cart-gift-shine 4.2s ease-out forwards;
  }

  @keyframes flyout-cart-gift-fade {
    0% {
      background-color: rgb(var(--color-primary-rgb) / 0);
      box-shadow: 0 0 0 0 rgb(var(--color-primary-rgb) / 0);
    }
    10% {
      background-color: rgb(var(--color-primary-rgb) / 0.18);
      box-shadow: 0 0 0 1px rgb(var(--color-primary-rgb) / 0.55);
    }
    80% {
      background-color: rgb(var(--color-primary-rgb) / 0.18);
      box-shadow: 0 0 0 1px rgb(var(--color-primary-rgb) / 0.55);
    }
    100% {
      background-color: rgb(var(--color-primary-rgb) / 0);
      box-shadow: 0 0 0 0 rgb(var(--color-primary-rgb) / 0);
    }
  }

  @keyframes flyout-cart-gift-shine {
    0% {
      opacity: 0;
      background-position: -150% 0;
    }
    8% {
      opacity: 1;
    }
    45% {
      opacity: 1;
      background-position: 150% 0;
    }
    58%,
    100% {
      opacity: 0;
      background-position: 150% 0;
    }
  }

  .flyout-cart__item-price-free {
    background-image: linear-gradient(
      100deg,
      var(--color-primary) 35%,
      rgb(255 255 255 / 0.5) 50%,
      var(--color-primary) 65%
    );
    background-size: 220% 100%;
    background-position: 180% 0;
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: flyout-cart-free-shine 5s ease-in-out infinite;
  }

  @keyframes flyout-cart-free-shine {
    0% {
      background-position: 180% 0;
    }
    60% {
      background-position: -60% 0;
    }
    100% {
      background-position: -60% 0;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .flyout-cart__item--gift-fade::before,
    .flyout-cart__item--gift-fade::after {
      animation: none;
    }

    .flyout-cart__item-price-free {
      animation: none;
      background-image: none;
      -webkit-text-fill-color: currentColor;
    }
  }
/* END_SNIPPET:cart-drawer-items */

/* START_SNIPPET:cart-rewards-progress (INDEX:88) */
.cart-rewards {
    padding: 0px 12px 12px 12px;
    border-bottom: 1px solid black;
  }

  .cart-rewards__message {
    font-size: 0.875rem;
    text-align: center;
    margin-bottom: 14px;
  }

  .cart-rewards__track {
    position: relative;
    height: 6px;
    border-radius: 999px;
    background: #E5E5E5;
    margin: 0 10px 22px;
  }

  .cart-rewards__bar {
    position: absolute;
    inset: 0;
    width: 0%;
    border-radius: inherit;
    background: var(--color-primary);
    transition: width 0.3s ease;
  }

  .cart-rewards__marker {
    position: absolute;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translate(-50%, -50%);
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #E5E5E5;
    border: 2px solid #E5E5E5;
  }

  .cart-rewards__marker--reached {
    background: var(--color-primary);
    border-color: var(--color-primary);
  }

  .cart-rewards__marker-label {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 6px;
    white-space: nowrap;
    font-size: 0.75rem;
    color: var(--color-foreground-muted);
  }
/* END_SNIPPET:cart-rewards-progress */

/* START_SNIPPET:dropdown-card (INDEX:91) */
.dropdown-card {
    display: block;
    color: inherit;
    text-decoration: none;
  }

  .dropdown-card__subheading {
    display: block;
    margin-top: 8px;
    font-size: 0.875rem;
  }
/* END_SNIPPET:dropdown-card */

/* START_SNIPPET:filter-drawer (INDEX:93) */
.filter-drawer {
    position: fixed;
    inset: 0;
    z-index: 100;
    background-color: transparent;
  }

  .filter-drawer[hidden] {
    display: none;
  }

  .filter-drawer__backdrop {
    position: absolute;
    inset: 0;
    background: rgb(0 0 0 / 40%);
  }

  .filter-drawer__panel {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    background: var(--color-background);
    color: var(--color-foreground);
    display: flex;
    flex-direction: column;
    width: min(380px, 100%);
  }

  .filter-drawer__loading-overlay {
    display: none;
    position: absolute;
    inset: 0;
    z-index: 5;
    align-items: center;
    justify-content: center;
    background: rgb(var(--color-background-rgb, 255 255 255) / 70%);
  }

  .filter-drawer.loading .filter-drawer__loading-overlay {
    display: flex;
  }

  .filter-drawer__spinner {
    width: 32px;
    height: 32px;
    border: 3px solid var(--color-border);
    border-top-color: var(--color-primary);
    border-radius: 50%;
    animation: filter-drawer-spin 0.7s linear infinite;
  }

  @keyframes filter-drawer-spin {
    to {
      transform: rotate(360deg);
    }
  }

  .filter-drawer__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--color-border);
  }

  .filter-drawer__header h4 {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.9rem;
  }

  .filter-drawer__close {
    background: none;
    border: none;
    cursor: pointer;
    color: inherit;
    display: flex;
    padding: 4px;
  }

  .filter-drawer__close:focus-visible,
  .filter-drawer__panel:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .filter-drawer__form {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
  }

  .filter-drawer__form > [data-filter-drawer-refresh] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
  }

  .filter-drawer__body {
    flex: 1;
    overflow-y: auto;
    padding: 4px 20px 20px;
  }

  .filter-drawer__group {
    border-bottom: 1px solid var(--color-border);
    padding: 16px 0;
  }

  .filter-drawer__group:first-child {
    padding-top: 20px;
  }

  .filter-drawer__group-heading {
    margin: 0 0 8px;
    font-size: 0.9rem;
    font-weight: 600;
  }

  .filter-drawer__group-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: none;
    border: none;
    padding: 0;
    margin-bottom: 8px;
    font: inherit;
    font-weight: 600;
    font-size: 0.9rem;
    color: inherit;
    cursor: pointer;
  }

  .filter-drawer__group-icon {
    flex-shrink: 0;
    transition: transform 0.15s ease;
  }

  .filter-drawer__group-toggle[aria-expanded="false"] .filter-drawer__group-icon {
    transform: rotate(-90deg);
  }

  .filter-drawer__group-toggle[aria-expanded="false"] + .filter-drawer__group-body {
    display: none;
  }

  .filter-drawer__group-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .filter-drawer__select {
    width: 100%;
    padding: 8px;
    border: 1px solid var(--color-input-border);
    border-radius: var(--style-border-radius-inputs, 4px);
    background: var(--color-input-background);
    color: var(--color-input-text);
    font: inherit;
  }

  .filter-drawer__option {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.9rem;
    cursor: pointer;
    text-decoration: none;
    color: inherit;
  }

  .filter-drawer__option--disabled {
    opacity: 0.45;
    cursor: not-allowed;
  }

  .filter-drawer__option input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: var(--color-primary);
    flex-shrink: 0;
  }

  .filter-drawer__option-count {
    color: var(--color-foreground-muted);
  }

  .filter-drawer__option-radio {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    border-radius: 50%;
    border: 1px solid var(--color-input-border);
  }

  .filter-drawer__option--active .filter-drawer__option-radio {
    border-color: var(--color-primary);
    border-width: 5px;
  }

  .filter-drawer__option--active .filter-drawer__option-label {
    font-weight: 600;
  }

  .filter-drawer__price-range {
    display: block;
  }

  .filter-drawer__price-fields {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    margin-bottom: 20px;
  }

  .filter-drawer__price-field {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 0.8rem;
    color: var(--color-foreground-muted);
  }

  .filter-drawer__price-input {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 0 8px;
    border: 1px solid var(--color-input-border);
    border-radius: var(--style-border-radius-inputs, 4px);
    background: var(--color-input-background);
  }

  .filter-drawer__price-currency {
    color: var(--color-foreground-muted);
  }

  .filter-drawer__price-input input {
    flex: 1;
    width: 100%;
    min-width: 0;
    padding: 8px 0;
    border: none;
    background: transparent;
    color: var(--color-input-text);
    font: inherit;
  }

  .filter-drawer__price-input input:focus {
    outline: none;
  }

  .filter-drawer__price-input input::-webkit-outer-spin-button,
  .filter-drawer__price-input input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
  }

  .filter-drawer__price-input input[type="number"] {
    -moz-appearance: textfield;
    appearance: textfield;
  }

  .filter-drawer__price-slider {
    position: relative;
    height: 20px;
  }

  .filter-drawer__price-slider-track {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 2px;
    transform: translateY(-50%);
    background: var(--color-border);
    border-radius: 2px;
  }

  .filter-drawer__price-slider-range {
    position: absolute;
    top: 50%;
    height: 2px;
    transform: translateY(-50%);
    background: var(--color-foreground);
    border-radius: 2px;
  }

  .filter-drawer__price-slider-input {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 20px;
    margin: 0;
    background: transparent;
    pointer-events: none;
    -webkit-appearance: none;
    appearance: none;
  }

  .filter-drawer__price-slider-input:focus {
    outline: none;
  }

  .filter-drawer__price-slider-input::-webkit-slider-runnable-track {
    -webkit-appearance: none;
    background: transparent;
    height: 20px;
  }

  .filter-drawer__price-slider-input::-moz-range-track {
    background: transparent;
    border: none;
    height: 20px;
  }

  .filter-drawer__price-slider-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    pointer-events: auto;
    width: 18px;
    height: 18px;
    margin-top: 0;
    border-radius: 50%;
    background: var(--color-foreground);
    border: 2px solid var(--color-background);
    box-shadow: 0 0 0 1px var(--color-foreground);
    cursor: pointer;
  }

  .filter-drawer__price-slider-input::-moz-range-thumb {
    pointer-events: auto;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--color-foreground);
    border: 2px solid var(--color-background);
    box-shadow: 0 0 0 1px var(--color-foreground);
    cursor: pointer;
  }

  .filter-drawer__price-slider-input:focus-visible::-webkit-slider-thumb {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .filter-drawer__price-slider-input:focus-visible::-moz-range-thumb {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .filter-drawer__price-slider-input--top {
    z-index: 2;
  }

  .filter-drawer__footer {
    display: flex;
    gap: 10px;
    padding: 16px 20px;
    border-top: 1px solid var(--color-border);
  }

  .filter-drawer__footer .btn {
    flex: 1;
    justify-content: center;
  }

  .filter-drawer__clear:disabled {
    opacity: 0.5;
    cursor: not-allowed;
  }
/* END_SNIPPET:filter-drawer */

/* START_SNIPPET:floating-images (INDEX:94) */
.floating-images {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
  }

  .floating-images__item {
    position: absolute;
    top: var(--floating-position-mobile, 50%);
    width: var(--floating-size-mobile, 120px);
    transform: translate(var(--floating-offset-mobile, 0px), -50%) rotate(var(--floating-rotation-mobile, 0deg));
  }

  .floating-images__item--left {
    left: 0;
  }

  .floating-images__item--right {
    right: 0;
  }

  .floating-images__media {
    width: 100%;
    height: auto;
    display: block;
  }

  @media screen and (min-width: 768px) {
    .floating-images__item {
      top: var(--floating-position-desktop, 50%);
      width: var(--floating-size-desktop, 160px);
      transform: translate(var(--floating-offset-desktop, 0px), -50%) rotate(var(--floating-rotation-desktop, 0deg));
    }
  }
/* END_SNIPPET:floating-images */

/* START_SNIPPET:icon (INDEX:96) */
.icon {
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: var(--icon-size, 20px);
    height: var(--icon-size, 20px);
    color: currentColor;
  }

  .icon svg {
    width: 100%;
    height: 100%;
  }
/* END_SNIPPET:icon */

/* START_SNIPPET:image (INDEX:97) */
.image {
    display: block;
    position: relative;
    width: 100%;
    height: auto;
    box-sizing: border-box;
    border: var(--image-border-width, 0px) solid var(--color-border);
  }

  .image__clip {
    display: block;
    overflow: hidden;
    border-radius: inherit;
    width: 100%;
    height: 100%;
  }

  .image__clip > img {
    width: 100%;
    height: auto;
  }

  .image--shadow-small.image--shadow-style-soft {
    box-shadow: 0 1px 2px rgb(var(--color-shadow-rgb) / 0.1), 0 1px 3px rgb(var(--color-shadow-rgb) / 0.15);
  }

  .image--shadow-medium.image--shadow-style-soft {
    box-shadow: 0 2px 4px rgb(var(--color-shadow-rgb) / 0.1), 0 4px 8px rgb(var(--color-shadow-rgb) / 0.15);
  }

  .image--shadow-big.image--shadow-style-soft {
    box-shadow: 0 4px 8px rgb(var(--color-shadow-rgb) / 0.12), 0 12px 24px rgb(var(--color-shadow-rgb) / 0.18);
  }

  .image--shadow-small.image--shadow-style-solid {
    box-shadow: 2px 2px 0 0 var(--color-shadow);
  }

  .image--shadow-medium.image--shadow-style-solid {
    box-shadow: 4px 4px 0 0 var(--color-shadow);
  }

  .image--shadow-big.image--shadow-style-solid {
    box-shadow: 8px 8px 0 0 var(--color-shadow);
  }
/* END_SNIPPET:image */

/* START_SNIPPET:media (INDEX:98) */
.media {
    position: relative;
    display: block;
    width: 100%;
    box-sizing: border-box;
    border: var(--media-border-width, 0px) solid var(--color-border);
  }

  .media__clip {
    display: block;
    overflow: hidden;
    border-radius: inherit;
    width: 100%;
    height: 100%;
  }

  .media__image,
  .media__video {
    display: block;
    width: 100%;
    height: auto;
  }

  .media--fixed-ratio .media__image,
  .media--fixed-ratio .media__video {
    height: 100%;
    object-fit: cover;
  }

  .media__image--mobile,
  .media__video--mobile {
    display: block;
  }

  .media__image--desktop,
  .media__video--desktop {
    display: none;
  }

  .media__placeholder svg {
    width: 100%;
    height: auto;
  }

  .media--shadow-small.media--shadow-style-soft {
    box-shadow: 0 1px 2px rgb(var(--color-shadow-rgb) / 0.1), 0 1px 3px rgb(var(--color-shadow-rgb) / 0.15);
  }

  .media--shadow-medium.media--shadow-style-soft {
    box-shadow: 0 2px 4px rgb(var(--color-shadow-rgb) / 0.1), 0 4px 8px rgb(var(--color-shadow-rgb) / 0.15);
  }

  .media--shadow-big.media--shadow-style-soft {
    box-shadow: 0 4px 8px rgb(var(--color-shadow-rgb) / 0.12), 0 12px 24px rgb(var(--color-shadow-rgb) / 0.18);
  }

  .media--shadow-small.media--shadow-style-solid {
    box-shadow: 2px 2px 0 0 var(--color-shadow);
  }

  .media--shadow-medium.media--shadow-style-solid {
    box-shadow: 4px 4px 0 0 var(--color-shadow);
  }

  .media--shadow-big.media--shadow-style-solid {
    box-shadow: 8px 8px 0 0 var(--color-shadow);
  }

  @media screen and (min-width: 768px) {
    .media__image--mobile,
    .media__video--mobile {
      display: none;
    }

    .media__image--desktop,
    .media__video--desktop {
      display: block;
    }
  }
/* END_SNIPPET:media */

/* START_SNIPPET:photo-gallery-item (INDEX:101) */
.photo-gallery-item {
    display: block;
    color: inherit;
    text-decoration: none;
  }

  .photo-gallery-item:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .photo-gallery-item .photo-gallery-item__media {
    height: 100%;
  }

  .photo-gallery-item .photo-gallery-item__media img {
    height: 100%;
    object-fit: cover;
  }
/* END_SNIPPET:photo-gallery-item */

/* START_SNIPPET:price (INDEX:104) */
.price-free {
    color: var(--color-primary);
  }
/* END_SNIPPET:price */

/* START_SNIPPET:product-card-reviews (INDEX:106) */
.product-card__reviews {
    display: flex;
    gap: 2px;
    color: var(--color-primary);
  }
/* END_SNIPPET:product-card-reviews */

/* START_SNIPPET:product-card (INDEX:107) */
.product-card-frame {
    container-type: inline-size;
    display: flex;
    flex-direction: column;
    height: 100%;
  }

  .product-card {
    display: flex;
    flex-direction: column;
    flex: 1;
    overflow: hidden;
    background: var(--color-background);
  }

  .product-card__media {
    position: relative;
  }

  .product-card__image-link {
    display: block;
  }

  .product-card__image-link--cutout {
    -webkit-mask-image: radial-gradient(circle 22px at calc(100% - 30px) 100%, transparent 99%, black 100%);
    mask-image: radial-gradient(circle 22px at calc(100% - 30px) 100%, transparent 99%, black 100%);
  }

  .product-card__image-swap {
    position: relative;
  }

  .product-card__image--hover {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 0.25s ease;
  }

  .product-card__image-link:hover .product-card__image--hover,
  .product-card__image-link:focus-visible .product-card__image--hover {
    opacity: 1;
  }

  .product-card__placeholder svg {
    width: 100%;
    height: auto;
  }

  .product-card__badge {
    position: absolute;
    top: 8px;
    left: 8px;
    padding: 4px 8px;
    font-size: 0.75rem;
    font-weight: 600;
    background: var(--color-background);
    color: var(--color-foreground);
    border: 1px solid var(--color-border);
    border-radius: 4px;
  }

  .product-card__content {
    margin-top: 12px;
    padding: 0 12px 12px;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 4px;
  }

  .product-card__price {
    margin-top: auto;
  }

  .product-card--has-cutout .product-card__content {
    margin-top: 28px;
  }

  .product-card__eyebrow {
    margin: 0;
    color: var(--color-foreground-muted);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
  }

  .product-card__title {
    margin: 0;
    color: inherit;
    font-weight: 600;
    text-decoration: none;
  }

  .product-card__title a {
    color: inherit;
    text-decoration: none;
  }

  .product-card__price--sale {
    color: var(--color-primary);
  }

  .product-card__price s {
    color: var(--color-foreground-muted);
  }

  .product-card__action {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 50%;
    padding: 0;
    background: var(--color-background);
    color: var(--color-foreground);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
    cursor: pointer;
    text-decoration: none;
    transition: transform 0.15s ease;
  }

  .product-card__action:hover {
    transform: scale(1.06);
  }

  .product-card__action:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .product-card__action:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
  }

  .product-card__action--overlay {
    bottom: 12px;
    right: 12px;
  }

  .product-card__action--cutout {
    bottom: -18px;
    right: 12px;
    z-index: 2;
  }

  /* Layout only - visual styling (color/border/background/font) comes from
     the btn/btn-[style] classes (theme settings > Cards > Action button
     style) applied alongside this class. Compound with .btn (rather than
     .product-card__cta alone) so this full-width block layout reliably wins
     over .btn's own `display: inline-flex` regardless of stylesheet order. */
  .btn.product-card__cta {
    display: block;
    width: 100%;
    margin-top: 8px;
    text-align: center;
    cursor: pointer;
  }

  .product-card__cta:disabled {
    opacity: 0.5;
    cursor: not-allowed;
  }

  .product-card__cta:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .product-card--tile {
    position: relative;
    display: block;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    color: #fff;
    text-decoration: none;
  }

  .product-card--tile .product-card__tile-image {
    height: 100%;
  }

  .product-card--tile .product-card__tile-image.image img {
    height: 100%;
    object-fit: cover;
  }

  .product-card--tile .product-card__placeholder.product-card__tile-image {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-border);
  }

  .product-card--tile .product-card__placeholder.product-card__tile-image svg {
    width: 60%;
    height: auto;
  }

  .product-card__tile-overlay {
    position: absolute;
    inset: 0;
    background: rgb(0 0 0 / 0.35);
  }

  .product-card__tile-title {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 16px;
    color: inherit;
    font-weight: 600;
    text-align: center;
  }

  .product-card--shadow-small.product-card--shadow-style-soft {
    box-shadow: 0 1px 2px rgb(var(--color-shadow-rgb) / 0.1), 0 1px 3px rgb(var(--color-shadow-rgb) / 0.15);
  }

  .product-card--shadow-medium.product-card--shadow-style-soft {
    box-shadow: 0 2px 4px rgb(var(--color-shadow-rgb) / 0.1), 0 4px 8px rgb(var(--color-shadow-rgb) / 0.15);
  }

  .product-card--shadow-big.product-card--shadow-style-soft {
    box-shadow: 0 4px 8px rgb(var(--color-shadow-rgb) / 0.12), 0 12px 24px rgb(var(--color-shadow-rgb) / 0.18);
  }

  .product-card--shadow-small.product-card--shadow-style-solid {
    box-shadow: 2px 2px 0 0 var(--color-shadow);
  }

  .product-card--shadow-medium.product-card--shadow-style-solid {
    box-shadow: 4px 4px 0 0 var(--color-shadow);
  }

  .product-card--shadow-big.product-card--shadow-style-solid {
    box-shadow: 8px 8px 0 0 var(--color-shadow);
  }
/* END_SNIPPET:product-card */

/* START_SNIPPET:product-upsell-card (INDEX:109) */
.product-upsell-card {
    display: flex;
    flex-direction: row;
    gap: 8px;
    padding: 8px;
    background: var(--color-background);
    border: 1px solid var(--color-border);
    color: var(--color-foreground);
    overflow: hidden;

    a {
      text-decoration: none;
    }
  }

  .product-upsell-card__image-link {
    display: block;
    width: 6rem;
    aspect-ratio: 1 / 1;
  }

  .product-upsell-card__placeholder svg {
    width: 100%;
    height: auto;
  }

  .product-upsell-card__content {
    margin-top: 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .product-upsell-card__title {
    display: block;
    color: inherit;
    font-weight: 600;
    font-size: 0.8125rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .product-upsell-card__price {
    font-size: 0.8125rem;
  }

  .product-upsell-card__price s {
    color: var(--color-foreground-muted);
  }
/* END_SNIPPET:product-upsell-card */

/* START_SNIPPET:product-upsell (INDEX:110) */
.product-upsell {
    margin-bottom: 16px;
  }

  .product-upsell__heading {
    font-size: 0.875rem;
    font-weight: 600;
  }

  .product-upsell__viewport {
    position: relative;
  }

  .product-upsell .swiper {
    position: relative;
    overflow: hidden;
  }

  .product-upsell .swiper-wrapper {
    display: flex;
    flex-direction: row;
  }

  .product-upsell__slide {
    width: 42%;
    flex-shrink: 0;
  }

  .product-upsell__quick-add {
    width: 100%;
    margin-top: 8px;
    padding: 6px 10px;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    background: none;
    color: inherit;
    font: inherit;
    font-size: 0.8125rem;
    text-align: center;
    cursor: pointer;
    display: block;
  }

  .product-upsell__quick-add:disabled {
    opacity: 0.5;
    cursor: not-allowed;
  }

  .product-upsell__quick-add:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .product-upsell__header {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
  }

  .product-upsell__nav-container {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
  }

  .product-upsell__nav {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 1px solid var(--color-border);
    background: var(--color-background);
    color: inherit;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 9px;
  }

  .product-upsell__nav:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .product-upsell__nav--prev {
    transform: rotate(180deg);
  }
  .product-upsell__nav--next {
  }

  .product-upsell__nav--next::after {
    transform: rotate(-45deg);
  }

  .product-upsell__nav.swiper-button-disabled {
    opacity: 0.3;
    pointer-events: none;
  }
/* END_SNIPPET:product-upsell */

/* START_SNIPPET:social-icons (INDEX:118) */
.social-icons__heading {
    font-weight: 600;
    margin-bottom: 12px;
  }

  .social-icons {
    display: flex;
    align-items: center;
    gap: 12px;
  }

  .social-icons__link {
    display: flex;
    align-items: center;
    justify-content: center;
    color: currentColor;
  }

  .social-icons__link:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }
/* END_SNIPPET:social-icons */

/* START_SNIPPET:subscription-frequency (INDEX:119) */
.subscription-frequency {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }

  .subscription-frequency--single {
    display: none;
  }

  .subscription-frequency__label {
    font-size: 0.875rem;
    font-weight: 600;
  }

  .subscription-frequency__select {
    padding: 8px 12px;
    background: var(--color-background);
    border: 1px solid var(--color-border);
    border-radius: calc(var(--pdp-surface-radius) - 4px);
    font: inherit;
    color: var(--color-foreground);
  }

  .subscription-frequency__select:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  .subscription-frequency__note {
    margin: 0;
    font-size: 0.75rem;
    color: var(--color-foreground-muted);
  }
/* END_SNIPPET:subscription-frequency */