.template-product #MainContent {
  --top-offset: calc(var(--header-height, 0px) + 10px);
}

.template-product #MainContent .shopify-section {
  scroll-margin-top: var(--top-offset);
}

.template-product:has(#SiteHeader.site-header--stuck.site-header--opening) .product-details__media-side {
  --product-details-sticky-top: var(--top-offset);
}

.product-details {
  --container-width: 1440px;
  --page-gutter-mobile: 17px;
  --page-gutter-desktop: 40px;
  --page-gutter: var(--page-gutter-mobile);
  --product-details-action-button-hover-shine: hsla(0, 0%, 0%, 0.25);
  --product-details-action-button-hover-shine-gradient: linear-gradient(
    90deg,
    transparent,
    var(--product-details-action-button-hover-shine),
    transparent
  );
  --top-offset: calc(var(--header-height, 180px) + 10px);
  --breadcrumb-gap: 8px;
  --breadcrumb-font-size: 12px;
  --breadcrumb-letter-spacing: 0.24px;
  --breadcrumb-color-link: #141414;
  --breadcrumb-color-current: #5a5a53;
  --breadcrumb-color-divider: #bcbcb3;

  @media (min-width: 1024px) {
    --page-gutter: var(--page-gutter-desktop);
  }

  @media (max-width: 767px) {
    --gallery-inset-inline-start: 2.564vw;
    --gallery-peek-inline-end: 6.154vw;
    --gallery-slide-width: calc(100vw - var(--gallery-inset-inline-start) - var(--gallery-peek-inline-end));
  }

  .mobile-inline-margin {
    margin-inline: var(--page-gutter);

    @media (min-width: 768px) {
      margin-inline: 0;
    }
  }

  .hidden {
    display: none !important;
  }

  @media (min-width: 768px) {
    .hidden-desktop {
      display: none !important;
    }
  }

  @media (max-width: 767px) {
    .hidden-mobile {
      display: none !important;
    }
  }

  .jdgm-prev-badge__text {
    font-size: 14px !important;
  }

  .product-details__wrapper {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 12px;
    grid-template-areas:
      'breadcrumbs'
      'title'
      'media'
      'content';

    max-width: var(--container-width);
    margin-inline: auto;
    width: 100%;

    @media (min-width: 768px) {
      grid-template-columns: 1fr 1fr;
      grid-template-rows: auto;
      grid-template-areas: 'sidebar info';
      align-items: start;
      column-gap: 16px;
      row-gap: 0;
      padding-inline: var(--page-gutter);
    }

    @media (min-width: 1280px) {
      grid-template-columns: 670px 1fr;
      column-gap: 32px;
    }

    @media (min-width: 1440px) {
      column-gap: 44px;
    }
  }

  .product-details__info {
    display: contents;

    @media (min-width: 768px) {
      display: flex;
      flex-direction: column;
      grid-area: info;
      align-self: start;
      z-index: 10;
      min-width: 0;
      padding-top: calc(17.5px + 12px);
    }
  }

  .product-details__media-side {
    display: contents;

    @media (min-width: 768px) {
      display: block;
      grid-area: sidebar;
      align-self: start;
      min-width: 0;

      position: sticky;
      top: var(--product-details-sticky-top, 0px);
      transition: top 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);

      @media (prefers-reduced-motion: reduce) {
        transition: none;
      }
    }
  }

  .product-details-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 4px 8px;
    background: var(--badge-bg, #f4f2ec);
    border-radius: 100px;
    height: 25px;
    font-family: Jost, sans-serif;
    font-weight: 400;
    font-size: 12px;
    line-height: 1;
    letter-spacing: 0.02em;
    vertical-align: middle;

    strong {
      font-weight: 500;
    }
  }

  .product-details__breadcrumbs {
    grid-area: breadcrumbs;
    box-sizing: border-box;
    width: 100%;
    max-wdith: 100%;
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding: 0 var(--page-gutter);

    &::-webkit-scrollbar {
      display: none;
    }

    @media (min-width: 768px) {
      margin-bottom: 12px;
      padding: 0;
    }

    .breadcrumb {
      display: flex;
      flex-wrap: nowrap;
      align-items: center;
      gap: var(--breadcrumb-gap);
      margin: 0;
      padding: 0;
      max-width: none;
      font-size: var(--breadcrumb-font-size);
      overflow: visible;
      scroll-behavior: smooth;
    }

    .breadcrumb__item {
      display: inline-flex;
      flex-shrink: 0;
      align-items: center;
      justify-content: center;
      padding: 0;
      border-radius: 0;
      height: auto;
      background: transparent;
      font-family: Jost, sans-serif;
      font-weight: 400;
      font-size: var(--breadcrumb-font-size);
      line-height: normal;
      letter-spacing: var(--breadcrumb-letter-spacing);
      text-align: center;
      text-decoration: none;
      text-transform: none;
      color: var(--breadcrumb-color-link);
      white-space: nowrap;

      &:hover {
        color: var(--breadcrumb-color-link);
        text-decoration: underline;
        text-underline-offset: 2px;
      }

      &:focus-visible {
        outline: 2px solid var(--breadcrumb-color-link);
        outline-offset: 2px;
        border-radius: 2px;
      }

      &:last-child:not(a) {
        color: var(--breadcrumb-color-current);
        text-decoration: none;
      }
    }

    .breadcrumb__divider {
      flex-shrink: 0;
      margin: 0;
      font-family: Jost, sans-serif;
      font-weight: 400;
      font-size: var(--breadcrumb-font-size);
      line-height: normal;
      letter-spacing: var(--breadcrumb-letter-spacing);
      color: var(--breadcrumb-color-divider);
    }
  }

  .product-details__title-wrapper {
    grid-area: title;
    align-self: start;
    display: grid;
    grid-template: auto auto / 1fr auto;
    column-gap: 16px;
    padding-inline: var(--page-gutter);
    width: 100%;

    @media (min-width: 768px) {
      padding-inline: 0;
    }
    .product-details__title {
      font-family: Larken;
      font-weight: 400;
      font-size: 28px;
      line-height: 100%;
      letter-spacing: 0.02em;
      margin-bottom: 0 !important;

      @media (min-width: 768px) {
        font-size: 34px;
      }
    }
  }

  .product-details__wishlist {
    flex: 0 0 auto;
    margin-left: auto;

    @media (width >= 768px) {
      padding-top: 6px;
    }

    button.swym-button.swym-add-to-wishlist-view-product {
      position: relative;
      top: auto;
      right: auto;
    }

    .swym-button.swym-add-to-wishlist-view-product {
      display: flex !important;
      align-items: center;
      justify-content: center;
      width: 24px !important;
      height: 24px !important;
      min-width: 24px !important;
      min-height: 24px !important;
      max-width: 24px !important;
      padding: 0 !important;
      border: 0 !important;
      border-radius: 0 !important;
      background: transparent !important;
      color: #141414;
      line-height: 0;

      &:before,
      &:after {
        content: none !important;
        display: none !important;
      }

      &.swym-added .product-details__wishlist-icon svg,
      &.swym-added:hover .product-details__wishlist-icon svg {
        fill: currentColor;
      }
    }

    .product-details__wishlist-icon {
      display: block;
      flex: 0 0 auto;
      width: 24px;
      height: 24px;
      line-height: 0;
      pointer-events: none;

      svg {
        display: block;
        width: 100%;
        height: 100%;
      }
    }

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

  .product-details__product-options {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 12px;
    padding-top: 4px;

    & * {
      flex-shrink: 0;
    }
  }

  .product-details__description {
    font-family: Jost;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.25;
    letter-spacing: 0.02em;
    color: #414141;

    expandable-text {
      display: block;
    }

    p {
      margin: 0;
    }

    p + p {
      margin-top: 12px;
    }

    @media (min-width: 768px) {
      line-height: 1.4;
    }

    expandable-text:not([data-state='expanded']) .product-details__description-full {
      display: none;
    }

    expandable-text[data-state='expanded'] .product-details__description-short {
      display: none;
    }

    .product-details__read-more {
      display: inline;
      cursor: pointer;
      transition: opacity 0.2s;
      padding: 0 !important;
      background: transparent;
      border: 0;

      color: #141414;
      font-family: Jost;
      font-size: 14px;
      font-style: normal;
      font-weight: 400;
      line-height: normal;
      letter-spacing: 0.24px;
      text-decoration: underline;
      text-decoration-offset: 4px;

      &:hover {
        opacity: 0.7;
      }

      @media (width >= 768px) {
        font-size: 14px;
      }
    }
  }

  .product-details__media {
    grid-area: media;
    position: relative;

    @media (min-width: 768px) {
      grid-area: auto;
      align-self: auto;
    }
  }

  .product-details__badge-list {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 11;
    pointer-events: none;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    max-width: 50%;

    .product-details__badge {
      display: flex;
      justify-content: center;
      align-items: center;
      min-height: 28px;
      padding: 4px 8px;
      border-radius: 100px;
      width: fit-content;

      font-family: Jost;
      font-weight: 400;
      font-size: 14px;
      line-height: 100%;
      letter-spacing: 0.02em;
      text-align: center;

      color: var(--badge-text-color, #fdfdfc);
      background: var(--badge-bg-color, #5c6872);
      text-transform: uppercase;
    }
  }

  .product-details__content {
    grid-area: content;
    align-self: start;
    display: flex;
    flex-direction: column;
    max-width: 100%;
    overflow: hidden;

    @media (min-width: 768px) {
      padding-top: 12px;
    }

    > * + * {
      margin-top: 12px;

      @media (min-width: 768px) {
        margin-top: 20px;
      }
    }

    > .mobile-inline-margin:has(.product-details__collabsible-row),
    > product-details-collapsible {
      margin-top: 0;
    }
  }

  .product-details__meta-info-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;

    @media (min-width: 768px) {
      margin-top: 12px;
    }

    .product-details__meta-info-item {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 4px;
      flex-wrap: nowrap;
      flex-shrink: 0;
      font-size: 14px;
      letter-spacing: 0.02em;

      @media (min-width: 768px) {
        font-size: 13px;
      }
    }
  }

  .product-details__price {
    display: flex;
    flex-direction: column;
    row-gap: 4px;
    padding: 4px 0 12px;
    border-bottom: 1px solid #d9d9d9;

    font-family: Jost;
    letter-spacing: 0.02em;
    line-height: 1.3;

    @media (min-width: 768px) {
      padding: 4px 0 20px;
    }

    .product-details__price-per-m2 {
      font-weight: 500;
      font-size: 20px;
    }

    .product-details__trade-price,
    .product-details__price-per-box {
      font-weight: 400;
      font-size: 14px;
      color: #414141;
    }
  }

  .product-details__sample-buttons {
    padding-bottom: 12px;
    border-bottom: 1px solid #d9d9d9;

    @media (min-width: 1280px) {
      padding-bottom: 20px;
    }

    .product-details__samples-wrapper {
      display: grid;
      grid-template-columns: 1fr;
      gap: 8px;

      @media (min-width: 1280px) {
        grid-template-columns: 1fr 1fr;

        & > :empty {
          display: none;
        }

        & > :only-child {
          grid-column: 1 / -1;
        }
      }
    }

    .product-details__sample-intro {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 12px;
      color: #414141;

      font-family: Jost;
      font-weight: 400;
      font-size: 14px;
      line-height: 1.25;
      letter-spacing: 0.02em;

      svg {
        flex: 0 0 auto;
        width: 20px;
        height: 20px;
      }
    }

    .product-details__sample-button-item {
      display: flex;
      justify-content: center;
      align-items: center;
      padding: 16px;
      min-height: 44px;

      font-family: Jost;
      font-weight: 500;
      font-size: 16px;
      line-height: 0;
      letter-spacing: 0.02em;
      text-align: center;
      text-transform: uppercase;

      border-radius: 100px;
      border: 1px solid #414141;
      background: #fff;
      color: #414141;

      cursor: pointer;
      transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;

      span {
        transition: opacity 0.15s ease;
      }

      &[disabled] {
        cursor: not-allowed;
        opacity: 0.5;
      }

      &.product-details__sample-button-item--free {
        border-color: transparent;
        background: #5c6872;
        color: #fdfdfc;

        &:hover {
          border-color: #414141 !important;
          background: #414141 !important;
        }
      }

      &.btn--loading {
        text-indent: 0;
        background: #fff;
        color: #414141;
      }

      &.btn--loading span {
        text-indent: 0;
        opacity: 0;
      }

      &.btn--loading.btn--secondary {
        background: #fff;
        color: #414141;
      }

      &.btn--loading.product-details__sample-button-item--free {
        background: #5c6872;
        color: #fdfdfc;
      }

      &.btn--loading:before {
        border-color: #121212;
        border-top-color: transparent;
      }

      &.product-details__sample-button-item--free.btn--loading:before {
        border-color: #fdfdfc;
        border-top-color: transparent;
      }
    }

    .product-details__sample-error {
      grid-column: 1 / -1;
      color: #bb292d;
      font-size: 13px;
      font-weight: 500;
      line-height: 1.4;
      animation: fadeIn 0.3s ease-in;
      text-align: center;
    }

    @keyframes fadeIn {
      from {
        opacity: 0;
        transform: translateY(-4px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }
  }

  .product-details__product-options {
    --product-options-item-size: 82px;

    @media (min-width: 1024px) {
      --product-options-item-size: 106px;
    }

    .product-details__product-options-heading {
      font-family: Jost;
      font-weight: 400;
      font-size: 14px;
      line-height: 1.25;
      letter-spacing: 0.02em;
      color: #141414;
      margin-bottom: 8px;

      @media (min-width: 768px) {
        font-size: 14px;
        margin-bottom: 12px;
      }
    }

    .product-details__product-options-slider {
      display: block;
      width: 100%;
      min-height: var(--product-options-item-size);
      position: relative;

      padding-left: var(--page-gutter);

      @media (min-width: 768px) {
        padding-left: 0;
      }
    }

    .product-details__product-options-navigation {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      width: 100%;
      left: 0;
      pointer-events: none;
      z-index: 10;
      display: flex;
      justify-content: space-between;
      padding: 0 20px 0 calc(var(--page-gutter) + 10px);

      @media (min-width: 768px) {
        padding: 0 10px;
      }
    }

    .product-details__product-options-btn {
      pointer-events: auto;
      background: #fdfdfc;
      border: none;
      width: 25px;
      height: 25px;
      border-radius: 50%;
      display: flex;
      justify-content: center;
      align-items: center;
      cursor: pointer;
      transition: all 0.2s ease;
      padding: 0;

      &:hover {
        background: #fff;
      }

      svg {
        width: 6px;
        height: 10px;
      }

      &[disabled] {
        opacity: 0.4;
        pointer-events: none;
      }
    }

    .product-details__product-options-item {
      width: var(--product-options-item-size);
      height: var(--product-options-item-size);
      margin-right: 6px;
      transition: opacity 0.2s ease;
      border: 1px solid transparent;

      &.is-active {
        border-color: #141414;
      }

      &:hover {
        opacity: 0.8;
        border-color: #141414;
      }
    }

    .product-details__product-options-image-wrapper {
      width: 100%;
      height: 100%;
      display: flex;
      justify-content: center;
      align-items: center;

      img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
      }
    }

    .product-details__product-options-size {
      font-family: Jost;
      font-weight: 400;
      font-size: 14px;
      line-height: 1;
      letter-spacing: 0.02em;
    }

    .product-details__product-options-slider:not(.is-ready) .flickity-slider-main {
      display: flex !important;
      flex-wrap: nowrap !important;
      overflow-x: auto;
      gap: 6px;
      scroll-behavior: smooth;
      scrollbar-width: none;
      -ms-overflow-style: none;
      min-height: var(--product-options-item-size);
      opacity: 0;
    }

    .product-details__product-options-slider:not(.is-ready) .flickity-slider-main::-webkit-scrollbar {
      display: none;
    }

    .product-details__product-options-slider.is-ready .flickity-slider-main {
      opacity: 1;
    }
  }

  .product-details__variant-picker {
    &:empty {
      display: none;
    }

    margin-top: 12px;

    @media (width >= 768px) {
      margin-top: 28px;
    }

    .nw-variant-picker-section {
      margin-top: 0;
    }

    .nw-variant-picker-label {
      display: flex;
      align-items: baseline;
      gap: 8px;
      font-family: Jost;
      font-weight: 400;
      font-size: 14px !important;
      line-height: 1.5;
      letter-spacing: 0.02em;
      color: #141414;
      margin-bottom: 8px;

      @media (min-width: 768px) {
        margin-bottom: 8px;
      }
    }

    .nw-variant-picker-selected {
      color: #414141;
      font-size: 14px !important;
      font-weight: 400;
    }

    .nw-variant-picker-wrapper {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;

      .nw-variant-price,
      .nw-variant-size {
        font-size: 14px !important;
      }
    }

    .nw-variant-option {
      display: flex;
      justify-content: center;
      align-items: center;
      padding: 8px 12px;
      min-height: 33px;
      border-radius: 100px;
      border: 0.75px solid #414141;
      gap: 4px;

      &,
      .nw-variant-price,
      .nw-variant-color {
        font-family: Jost;
        font-weight: 400;
        font-size: 13px;
        line-height: 1;
        letter-spacing: 0.02em;
        text-align: center;
        color: #414141;
      }

      &.active {
        background-color: #f4f2ec;
      }
    }
  }

  .product-details__collabsible-row {
    padding: 0 8px;
    border-bottom: 1px solid #d9d9d9;
    cursor: pointer;

    @media (width >= 768px) {
      padding: 0 12px;
    }

    &.product-details__collabsible-row--small-padding {
      .collapsible-content__inner {
        padding: 6px 0 16px;
        @media (width >= 768px) {
          padding: 6px 0 20px;
        }
      }
    }

    .product-details__collabsible-wrapper {
      padding: 0;
    }

    .product-details__collabsible-trigger {
      padding: 16px 0;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 12px;
      width: 100%;

      font-family: Larken;
      font-weight: 400;
      font-size: 20px;
      line-height: 100%;
      letter-spacing: 0.02em;

      @media (width >= 768px) {
        padding: 20px 0;
      }

      &.is-open,
      &[aria-expanded='true'] {
        padding-bottom: 0;
      }

      &.is-open svg {
        transform: rotate(0deg);
      }

      svg {
        width: 18px;
        height: 18px;
        transform: rotate(180deg);
        transform-origin: center;
        transition: transform 0.4s ease;
      }
    }

    .collapsible-trigger__icon {
      position: static;
      display: flex;
      justify-content: center;
      align-items: center;
      width: 18px;
      height: 18px;
      transform: none;
    }

    .collapsible-content__inner {
      padding: 16px 0 16px;
      cursor: auto;

      @media (width >= 768px) {
        padding: 16px 0 20px;
      }
    }
  }

  .product-details__rep-ai-widget {
    margin-top: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid #d9d9d9;

    @media (width >= 768px) {
      margin-top: 16px;
      padding-bottom: 16px;
    }
  }

  .product-details__cross-sell-subheading {
    font-family: Jost;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.5;
    letter-spacing: 0.02em;
    color: #141414;
    margin: 4px 0 16px;
  }

  .product-details__actions {
    overflow: hidden;
    max-width: 100%;
    width: 100%;

    @media (min-width: 768px) {
      background-color: #f4f2ec;
      padding: 8px;
    }

    @media (min-width: 1280px) {
      padding: 24px;
    }

    .product-details__action-buttons {
      overflow-x: auto;

      scrollbar-width: none;
      -ms-overflow-style: none;
      scroll-behavior: smooth;
      &::-webkit-scrollbar {
        display: none;
      }

      margin-left: var(--page-gutter);

      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
      gap: 8px;
      margin-top: 12px;
      padding-right: var(--page-gutter);
      scroll-padding-inline: var(--page-gutter);

      @media (min-width: 768px) {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        margin-top: 10px;
        margin-left: 0;
        padding-right: 0;
      }

      @media (min-width: 1280px) {
        grid-template-columns: repeat(2, 1fr);
      }

      &.has-single-button {
        grid-template-columns: 1fr;
      }

      .product-details__action-button {
        flex-shrink: 0;

        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        overflow: hidden;
        min-height: 28px;
        padding: 6px 16px;
        gap: 10px;
        border-radius: 999px;
        width: fit-content;
        border-radius: 999px;
        border: 1px solid #e6e6e6;

        font-family: Jost;
        font-weight: 400;
        font-size: 14px;
        line-height: 100%;
        letter-spacing: 0.02em;
        background: #fdfdfc;
        text-decoration: none;
        text-transform: none;
        text-align: center;
        color: #181818;

        &:is(button) {
          margin: 0;
          cursor: pointer;
          appearance: none;
          -webkit-appearance: none;
        }

        @media (min-width: 768px) {
          width: 100% !important;
        }

        &[style*='visibility: hidden'] {
          display: none !important;
        }

        &[hidden] {
          display: none !important;
        }

        p {
          margin: 0;
        }

        .product-details__action-icon {
          display: inline-flex !important;
          flex: 0 0 auto;
          width: 15px;
          height: 15px;

          svg {
            display: block;
            width: 100%;
            height: 100%;
          }
        }

        .product-details__action-icon--visualise {
          width: 16px;
          height: 13px;
        }

        &.roomvo-stimr {
          background: #fff;
          color: #414141;
          border-color: transparent;
          opacity: 1 !important;
        }
      }

      .nw-roomvo-button-wrapper {
        display: flex;
        flex-shrink: 0;

        &:has([style*='visibility: hidden']) {
          display: none !important;
        }
      }
    }
  }

  .product-details__actions--inspiration {
    @media (max-width: 767px) {
      padding-top: 12px;

      .product-details__action-buttons:has(.product-details__action-button--sauce:not([hidden])) {
        display: flex;
      }

      .product-details__action-buttons:not(:has(.product-details__action-button--sauce:not([hidden]))) {
        display: none;
      }

      .product-details__action-buttons {
        margin-top: 0;
      }

      .product-details__action-button--sauce[hidden] {
        display: none !important;
      }

      .product-details__action-button--sauce {
        touch-action: manipulation;
      }

      .product-details__action-button {
        min-height: 28px;
        padding: 6px 12px;
        gap: 6px;
        border-color: #e3e0da;
        background: #fff;
        color: #141414;
        line-height: normal;
      }

      .product-details__action-icon {
        display: flex;
        width: 15px;
        height: 15px;
      }
    }
  }

  .button-hover {
    position: relative;
    overflow: hidden;

    &:hover:after {
      animation: shine 0.75s cubic-bezier(0.01, 0.56, 1, 1);
      background-image: var(--product-details-action-button-hover-shine-gradient);
      content: '';
      height: 100%;
      left: 150%;
      position: absolute;
      top: 0;
      transform: skew(-20deg);
      width: 200%;
    }
  }

  .swym-button-bar.swym-wishlist-button-bar.swym-inject {
    display: none !important;
  }
}

.product-media-gallery .product-details__action-button--sauce[hidden],
.product-media-gallery__panel .product-details__action-button--sauce[hidden] {
  display: none !important;
}

.product-media-gallery {
  position: relative;

  --cols-desktop: 2;
  --gap: 5px;

  --gallery-short-row-height: 386px;
  --gallery-panel-min-height: 64px;
  --gallery-slide-aspect-ratio: 574 / 661;
  --gallery-control-offset-top: 2.564vw;
  --gallery-control-inset-inline-end: 2.564vw;

  .product-main-slide,
  .product-main-slide.secondary-slide {
    display: block;
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .product-image-main {
    position: relative;
    height: 100%;
  }

  .product-main-slide [data-product-image-main] .image-wrap {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100% !important;
    padding-bottom: 0 !important;
  }

  .product-media-gallery__item .image-wrap image-element {
    display: block;
    width: 100%;
    height: 100%;
  }

  .product-media-gallery__item .image-wrap img.image-element,
  .product-media-gallery__item .image-wrap video,
  .product-media-gallery__item .product__video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }

  .collection-price-match {
    z-index: 10;
    pointer-events: none;
    line-height: 0;
  }

  @media (min-width: 1100px) {
    .collection-price-match img {
      width: 140px;
    }
  }

  @media (max-width: 767px) {
    --gallery-slide-min-height: calc(var(--gallery-slide-width) * 661 / 574);

    min-height: var(--gallery-slide-min-height);
    background-color: #fdfdfc;

    .flickity-slider-main,
    .flickity-viewport {
      min-height: var(--gallery-slide-min-height);
    }

    .flickity-viewport,
    &:not(.is-ready) .flickity-slider-main {
      padding-left: var(--gallery-inset-inline-start);
    }

    &:not(.is-ready) .flickity-slider-main {
      gap: var(--gap);
      scroll-padding-left: var(--gallery-inset-inline-start);
    }

    .flickity-slider-slide {
      flex-shrink: 0;
      width: var(--gallery-slide-width);
      min-height: var(--gallery-slide-min-height);
      margin-right: var(--gap);
    }

    .product-media-gallery__item {
      display: flex;
      flex-direction: column;
      flex-shrink: 0;
      width: var(--gallery-slide-width);
      min-height: var(--gallery-slide-min-height);
      aspect-ratio: var(--gallery-slide-aspect-ratio);
      max-height: none;
    }

    .product-media-gallery__item .product-main-slide {
      flex: 1 1 auto;
      height: 100%;
      min-height: 0;
    }

    .flickity-enabled .flickity-slider-main,
    .flickity-slider-main {
      transition: opacity 0.16s ease;
    }

    &:not(.is-ready) .flickity-enabled .flickity-viewport {
      opacity: 0;
    }

    &:not(.is-ready) .flickity-slider-main:not(.flickity-enabled) {
      opacity: 1;
    }

    &.is-ready .flickity-enabled .flickity-viewport,
    &.is-ready .flickity-slider-main {
      opacity: 1;
    }
  }

  @media (min-width: 768px) {
    --gallery-gap: 5px;

    display: grid;
    grid-template-columns: repeat(var(--cols-desktop), 1fr);
    grid-template-rows: auto auto auto auto;
    gap: var(--gallery-gap);
    align-content: start;
    width: 100%;
    background-color: #fdfdfc;

    .flickity-slider-main {
      display: contents;
    }

    .flickity-slider-slide,
    .product-media-gallery__panel {
      max-width: 100%;
      width: 100%;
      margin-right: 0;
      min-width: 0;
      align-self: start;
    }

    .product-media-gallery__item {
      display: flex;
      flex-direction: column;
      overflow: hidden;
      min-height: 0;
      align-self: start;
      background-color: #f4f2ec;
    }

    .product-media-gallery__item--see-more {
      position: relative;
    }

    .product-media-gallery__item--desktop-large {
      aspect-ratio: 574 / 661;
      width: 100%;
      max-height: none;
    }

    .product-media-gallery__item--desktop-short {
      height: var(--gallery-short-row-height);
    }

    .product-media-gallery__item {
      display: flex;
      flex-direction: column;
    }

    .product-media-gallery__item--desktop-large .product-main-slide,
    .product-media-gallery__item--desktop-short .product-main-slide {
      position: relative;
      flex: 1 1 auto;
      height: 100%;
      min-height: 0;
    }

    .product-media-gallery__item--desktop-large .product-image-main,
    .product-media-gallery__item--desktop-short .product-image-main {
      flex: 1 1 auto;
      height: 100%;
      min-height: 0;
    }
  }

  @media (min-width: 768px) and (max-width: 1279px) {
    --gallery-short-row-height: clamp(240px, 28vw, 386px);
  }

  .flickity-slider-status {
    color: #000;
    text-align: center;
    font-family: Jost;
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0.24px;
  }

  .product-media-gallery__bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    overflow: hidden;

    @media (max-width: 767px) {
      position: absolute;
      left: 50%;
      bottom: 50px;
      transform: translateX(-50%);
      z-index: 2;
      display: flex;
      align-items: center;
      flex-direction: column;
      padding: 0 8px;
      gap: 8px;
      min-height: 19px;

      border-radius: 100px;
      background: rgba(253, 253, 252, 0.8);
    }

    @media (min-width: 768px) {
      margin-top: 0;
    }
  }

  .product-media-gallery__overlay-actions--mobile {
    @media (min-width: 768px) {
      display: none !important;
    }
  }

  .product-media-gallery__overlay-actions {
    position: absolute;
    top: 8px;
    z-index: 12;
    box-sizing: border-box;
    pointer-events: none;

    @media (max-width: 767px) {
      left: var(--gallery-inset-inline-start);
      width: var(--gallery-slide-width);
      display: flex;
      justify-content: flex-end;
      padding-inline-end: calc(var(--gallery-inset-inline-start) + 8px);
    }

    .product-details__action-buttons {
      margin: 0;
      padding: 0;
      overflow: visible;
      pointer-events: auto;
    }

    .nw-roomvo-button-wrapper {
      display: flex;
      min-width: 0;
      max-width: 100%;
    }

    .product-details__action-button {
      width: auto;
      max-width: 100%;
      min-height: 28px;
      padding: 6px 8px;
      gap: 6px;
      border: 0;
      background: #fff;
      color: #414141;
      box-shadow: none;
      white-space: nowrap;

      border-radius: 999px;

      .product-details__action-icon-wrapper {
        display: flex;
      }

      &.product-details__action-button--visualise {
        padding-block: 2px;
        display: flex !important;
        justify-content: center;
        align-items: center;

        color: #414141;
        font-family: Jost;
        font-size: 14px;
        font-style: normal;
        font-weight: 400;
        line-height: normal;
        letter-spacing: 0.26px;
      }
    }
  }

  .product-media-gallery__panel {
    box-sizing: border-box;
    padding: 16px;
    background: #f4f2ec;
    align-self: start;
    width: 100%;
    height: 100%;
    max-height: none;
    min-height: var(--gallery-panel-min-height);
    grid-column: 1 / -1;
    grid-row: 2;

    &[hidden] {
      display: none !important;
    }
  }

  .product-media-gallery--visualise-span-2 .product-media-gallery__panel--visualise {
    grid-column: 1 / -1;
  }

  .product-media-gallery__panel--inspiration.is-empty,
  .product-media-gallery__panel--inspiration[hidden] {
    display: none !important;
  }

  .product-media-gallery__panel-content {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
  }

  .product-media-gallery__panel-heading {
    margin: 0;
    font-family: Jost, sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: normal;
    letter-spacing: 0.02em;
    text-align: center;
    color: #141414;
    text-transform: none;
  }

  .product-media-gallery__panel-actions {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
  }

  .product-media-gallery__panel--visualise {
    .product-media-gallery__panel-content {
      align-items: center;
      justify-content: center;
    }
  }

  .product-media-gallery__panel--inspiration {
    .product-media-gallery__panel-content {
      align-items: center;
      justify-content: center;

      @media (min-width: 1280px) {
        flex-direction: row;
        justify-content: space-between;
      }
    }

    .product-media-gallery__panel-heading {
      width: auto;
      flex-shrink: 0;
      text-align: left;
    }

    .product-media-gallery__panel-actions {
      justify-content: flex-end;
      width: auto;
      flex: 1;
    }
  }

  .product-media-gallery__panel .product-details__action-buttons--gallery-panel {
    display: flex;
    flex-flow: wrap;
    justify-content: center;
    align-items: center;
    gap: 10px;
    width: 100%;
    margin: 0;
    overflow: visible;

    @media (min-width: 1280px) {
      justify-content: flex-end;
      gap: 12px;
    }
  }

  .product-media-gallery__panel-actions--visualise .product-details__action-buttons--gallery-panel {
    gap: 0;
  }

  .product-media-gallery__panel-actions--visualise .nw-roomvo-button-wrapper {
    display: flex;
    justify-content: center;
    width: 100%;
  }

  .product-media-gallery__panel .product-details__action-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: 32px;
    min-height: 32px;
    max-height: 32px;
    margin: 0;
    padding: 8px 12px;
    gap: 6px;
    border: 0;
    border-radius: 999px;
    background: #fff;
    color: #414141;
    font-family: Jost, sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: normal;
    letter-spacing: 0.02em;
    text-align: center;
    text-decoration: none;
    text-transform: none;
    white-space: nowrap;
    box-shadow: none;
    cursor: pointer;

    .product-details__action-icon-wrapper {
      display: flex;
    }
  }

  .product-media-gallery__panel .product-details__action-button--visualise {
    /* width: 110px;
    min-width: 110px;
    max-width: 110px; */
    padding: 8px;
  }

  .product-media-gallery__panel .product-details__action-button--installed {
    min-width: 141px;
    padding: 8px 12px;
  }

  .product-media-gallery__panel .product-details__action-button--pairings {
    width: auto;
    min-width: 0;
    max-width: none;
    padding: 8px 12px;
  }

  .product-media-gallery__panel .product-details__action-icon {
    display: inline-flex;
    flex: 0 0 auto;
    width: 15px;
    height: 15px;

    svg {
      display: block;
      width: 100%;
      height: 100%;
    }
  }

  .product-media-gallery__panel .product-details__action-icon--visualise {
    display: flex !important;
    width: 16px;
    height: 13px;
  }

  .product-media-gallery__panel .product-details__action-icon svg path {
    fill: #5c6872;
  }

  .product-media-gallery__item--see-more .product-media-gallery__see-more-label {
    position: absolute;
    right: 8px;
    bottom: 8px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 8px 12px;
    border: 0;
    border-radius: 999px;
    background: #fff;
    color: #141414;
    font-family: Jost, sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 0.02em;
    white-space: nowrap;
    cursor: pointer;

    &:focus-visible {
      outline: 2px solid #141414;
      outline-offset: 2px;
    }
  }
}

.product-attributes {
  .product-attributes__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(100px, 1fr));
    gap: 12px;
    margin: 0;
  }

  .product-attributes__item {
    display: block;
    font-family: Jost;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.5;
    letter-spacing: 0.02em;
    color: #141414;
    margin-bottom: 0;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .product-attributes__label {
    display: inline;
    font-weight: 500;
  }

  .product-attributes__value {
    display: inline;
    margin: 0;
  }
}

#rep-ai-inline-widget {
  margin: 0;
}

/* Product Gallery Lightbox */
.pgl-enabled .photoswipe__image {
  cursor: zoom-in;
}

.pgl {
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  pointer-events: none;
  height: 100dvh;
}

.pgl[hidden] {
  display: none !important;
}

.pgl.is-open {
  pointer-events: auto;
}

.pgl__backdrop {
  position: absolute;
  inset: 0;
  background: #00000073;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.pgl.is-open .pgl__backdrop {
  opacity: 1;
}

.pgl__dialog {
  position: absolute;
  inset: 0;
  background: #fff;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.35s ease,
    transform 0.35s ease;
}

.pgl.is-open .pgl__dialog {
  opacity: 1;
  transform: translateY(0);
}

@media (min-width: 768px) {
  .pgl__dialog {
    inset: 5vh 8vw;
  }
}

/* Close & nav buttons — styled like .product-details__product-options-btn */
.pgl__close,
.pgl__nav {
  position: absolute;
  z-index: 10;
  pointer-events: auto;
  background: #fdfdfc;
  border: none;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  transition: background 0.2s ease;
  padding: 0;

  &:hover {
    background: #fff;
  }

  &:focus-visible {
    outline: 2px solid #141414;
    outline-offset: 2px;
  }
}

.pgl__close {
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  box-shadow: rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;

  svg {
    width: 14px;
    height: 14px;
  }
}

.pgl__nav {
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  box-shadow: rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;

  svg {
    width: 7px;
    height: 11px;
  }
}

.pgl__nav--prev {
  left: 12px;
}

.pgl__nav--next {
  right: 12px;
}

.pgl__slider {
  --pgl-gap: 5px;
  flex: 1;
  min-height: 0;
  overflow: hidden;
  position: relative;
  z-index: 1;

  .flickity-viewport {
    height: 100% !important;
    touch-action: pan-x;
    transition: none;
  }

  .flickity-slider {
    height: 100%;
  }

  .flickity-slider .pgl__slide {
    margin-right: var(--pgl-gap);
  }
}

.pgl__slide {
  width: 100%;
  height: 100%;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 0;

  @media (min-width: 768px) {
    padding: 16px;
  }

  img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    user-select: none;
    -webkit-user-drag: none;
  }
}

.pgl__caption {
  flex-shrink: 0;
  box-sizing: border-box;
  min-height: 56px;
  max-height: 56px;
  padding: 10px 16px 14px;
  text-align: center;
  font-family: Jost, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.02em;
  color: #141414;
  text-transform: capitalize;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
