.product-information .media-gallery--carousel {
  --eme-gallery-thumbnail-width: 76px;
  --eme-gallery-thumbnail-inset: 4px;
  --eme-gallery-gap: 12px;
  --eme-gallery-media-height: clamp(320px, 70vw, 636px);
  --eme-gallery-thumbnails-height: 636px;
}

body:has(header-component[data-sticky-state='active']) :where(.product-information) .media-gallery--carousel.sticky-content {
  --sticky-header-offset: var(--header-height);
}

.product-information .media-gallery--carousel .product-media-container:not(.dialog-zoomed-gallery *) {
  block-size: var(--eme-gallery-media-height);
  aspect-ratio: auto;
  border-radius: var(--media-radius);
  background: var(--eme-color-secondary);
}

:where(.product-information) .media-gallery--carousel slideshow-slide[aria-hidden='true'] .product-media-container__zoom-button {
  visibility: hidden;
}

.product-information .media-gallery--carousel .product-media-container__zoom-button:focus-visible {
  outline: var(--focus-outline-width) solid currentcolor;
  outline-offset: calc(var(--focus-outline-width) * -2);
  border-radius: var(--media-radius);
}

.product-information .media-gallery--carousel slideshow-arrows {
  display: none;
}

@media screen and (min-width: 750px) {
  .product-information .media-gallery--carousel slideshow-component:has(slideshow-controls[thumbnails]) {
    column-gap: calc(var(--eme-gallery-gap) - var(--eme-gallery-thumbnail-inset));
    align-items: start;
  }

  .product-information .media-gallery--carousel slideshow-component:has(slideshow-controls[thumbnails][pagination-position='left']) {
    grid-template: 'controls container' auto / auto 1fr;
  }

  .product-information .media-gallery--carousel [thumbnails] .slideshow-controls__thumbnails {
    gap: var(--eme-gallery-gap);
    padding: var(--eme-gallery-thumbnail-inset);
  }

  .product-information .media-gallery--carousel slideshow-controls[thumbnails] {
    block-size: auto;
    min-block-size: 0;
  }

  :where(.product-information) .media-gallery--carousel slideshow-controls[thumbnails] .slideshow-controls__thumbnails-container {
    max-block-size: calc(var(--eme-gallery-thumbnails-height) + var(--eme-gallery-thumbnail-inset) * 2);
    margin-block-start: calc(var(--eme-gallery-thumbnail-inset) * -1);
    margin-inline-start: calc(var(--eme-gallery-thumbnail-inset) * -1);
  }

  :where(.product-information) .media-gallery--carousel .slideshow-controls__thumbnails .slideshow-control {
    position: relative;
    inline-size: var(--eme-gallery-thumbnail-width);
    opacity: 0.55;
    transition: opacity 200ms ease;

    &:hover,
    &[aria-selected='true'] {
      opacity: 1;
    }

    &[aria-selected='true'] {
      outline: none;
      border: none;
    }

    &:where([aria-selected='true'])::after {
      content: '';
      position: absolute;
      inset: 0;
      border: 2px solid var(--color-foreground);
      border-radius: var(--thumbnail-radius);
      pointer-events: none;
    }

    &:focus-visible {
      opacity: 1;
      outline: var(--focus-outline-width) solid currentcolor;
      outline-offset: 2px;
    }
  }
}

@media screen and (max-width: 749px) {
  .product-information__media:has(.media-gallery--carousel) {
    grid-column: 2 / 3;
  }

  .product-information:where(:not(featured-product-information *)) .media-gallery--carousel {
    --eme-gallery-media-height: clamp(420px, 90vw, 636px);
    --eme-gallery-dot-opacity: 0.6;
    --eme-gallery-dots-backing: rgb(var(--eme-color-white-rgb) / 0.8);

    padding-block: 16px 8px;
  }

  .product-information:where(:not(featured-product-information *)) .media-gallery--carousel slideshow-controls:has(.slideshow-controls__dots) {
    inset-block-end: 3px;
    min-block-size: 0;
    mix-blend-mode: normal;
    pointer-events: none;
  }

  .product-information:where(:not(featured-product-information *)) .media-gallery--carousel .slideshow-controls__dots {
    gap: 0;
    padding-block: 0;
    padding-inline: 4px;
    border-radius: 999px;
    background-color: var(--eme-gallery-dots-backing);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    pointer-events: auto;
  }

  .product-information:where(:not(featured-product-information *)) .media-gallery--carousel .slideshow-controls__dots button {
    inline-size: 24px;
    block-size: 24px;
    margin: 0;

    &::after {
      inline-size: 6px;
      block-size: 6px;
      border-radius: 999px;
      box-shadow: none;
      background-color: rgb(var(--color-shadow-rgb) / var(--eme-gallery-dot-opacity));
      transition: inline-size 0.3s ease, background-color 0.3s ease;

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

    &[aria-selected='true']::after {
      inline-size: 20px;
      background-color: rgb(var(--color-shadow-rgb));
    }

    &:focus-visible {
      border-radius: 9999px;
      outline: 2px solid rgb(var(--color-shadow-rgb));
      outline-offset: -2px;
    }
  }
}

.product-information:where(:not(featured-product-information *)) {
  --eme-pdp-line: rgb(var(--eme-color-line-rgb) / 0.6);
  --eme-pdp-line-subtle: rgb(var(--eme-color-line-rgb) / 0.4);
  --eme-pdp-label-size: 11px;
  --eme-pdp-label-tracking: 0.07em;
  --eme-pdp-swatch-size: 24px;
  --eme-pdp-swatch-ring: var(--eme-color-swatch-ring);
  --eme-pdp-swatch-ring-hover: #d1d5db;
  --eme-pdp-control-muted: rgb(var(--color-foreground-rgb) / var(--eme-opacity-control));
  --eme-pdp-muted-text: rgb(var(--color-foreground-rgb) / var(--eme-opacity-muted-strong));
  --eme-pdp-add-border: rgb(var(--color-foreground-rgb) / 0.2);
  --eme-pdp-thumb-background: var(--eme-color-secondary);
  --eme-pdp-card-gap: 8px;

  &.section:not(featured-product-information *) .product-details > .group-block {
    --eme-pdp-details-inset: clamp(16px, 5vw, 80px);

    padding-inline: var(--eme-pdp-details-inset);

    @media screen and (min-width: 750px) {
      padding-inline: calc(var(--eme-pdp-details-inset) - var(--gap, 0px) / 2) var(--eme-pdp-details-inset);
    }
  }

  & .rating-wrapper {
    --eme-star-step: 11px;
    --eme-star-count-gap: 6.25px;

    margin-block-end: 12px;

    &.rating-wrapper--eme-link {
      color: inherit;
      text-decoration: none;
    }

    &.rating-wrapper--eme-link:where([href]) {
      transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);

      @media (hover: hover) {
        &:hover {
          opacity: 0.75;
        }
      }

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

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

  & .product-details product-price {
    margin-block-end: 12px;

    & [ref='priceContainer'] {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 12px;
      font-size: 26px;
      font-weight: 500;
      letter-spacing: -0.025em;
      line-height: 1.2;
    }

    & .compare-at-price {
      order: 1;
      font-size: 16px;
      font-weight: 400;
      letter-spacing: normal;
      text-decoration: line-through;
    }
  }

  & variant-picker {
    margin-block-end: 20px;
    padding-block-end: 20px;
    border-block-end: 1px solid var(--eme-pdp-line);
  }

  & .variant-option--buttons legend {
    margin-block-end: 10px;
    font-size: var(--eme-pdp-label-size);
    font-weight: 600;
    letter-spacing: var(--eme-pdp-label-tracking);
    line-height: 1.5;
    text-transform: uppercase;
  }

  & .variant-option--swatches {
    --variant-picker-swatch-width: var(--eme-pdp-swatch-size);
    --variant-picker-swatch-height: var(--eme-pdp-swatch-size);
    --color-variant-hover-background: transparent;

    gap: 10px;
    align-items: flex-end;

    & .variant-option__swatch-value {
      display: none;
    }

    & .variant-option__button-label--has-swatch {
      overflow: visible;
      padding-block-end: 20px;
      outline: none;
    }

    & .variant-option__button-label--has-swatch .variant-option__strikethrough {
      block-size: calc(var(--eme-pdp-swatch-size) - var(--options-border-width) * 2);
    }

    & .swatch {
      transition: scale 200ms ease, box-shadow 200ms ease;
    }

    & :where(.variant-option__button-label--has-swatch):hover .swatch {
      box-shadow: 0 0 0 1px var(--color-background), 0 0 0 2px var(--eme-pdp-swatch-ring-hover);
    }

    & :where(.variant-option__button-label--has-swatch) input:hover {
      background-color: transparent;
    }

    & :where(.variant-option__button-label--has-swatch):has(:checked) .swatch {
      scale: 1.1;
      box-shadow: 0 0 0 2px var(--color-background), 0 0 0 4px var(--eme-pdp-swatch-ring);
    }

    & :where(.variant-option__button-label--has-swatch):has(:focus-visible) .swatch {
      outline: 2px solid var(--color-foreground);
      outline-offset: 5px;
    }
  }

  & .variant-option--buttons:not(.variant-option--swatches) {
    --color-variant-background: transparent;
    --color-variant-hover-background: transparent;
    --eme-pdp-option-border: #97938b;
    --color-variant-border: var(--eme-pdp-option-border);
    --color-variant-hover-border: rgb(var(--color-foreground-rgb) / 0.7);
    --color-variant-text: rgb(var(--color-foreground-rgb) / 0.7);
    --color-variant-hover-text: rgb(var(--color-foreground-rgb) / 0.7);
    --color-selected-variant-background: transparent;
    --color-selected-variant-hover-background: transparent;
    --color-selected-variant-border: var(--color-foreground);
    --color-selected-variant-hover-border: var(--color-foreground);
    --color-selected-variant-text: var(--color-foreground);
    --color-selected-variant-hover-text: var(--color-foreground);
    --eme-pdp-option-ring: 0 0 0 2px var(--color-background), 0 0 0 4px var(--eme-pdp-swatch-ring-hover);
    --options-border-radius: 9999px;

    gap: 10px;

    & .variant-option__button-label {
      flex: none;
      min-inline-size: 64px;
      min-block-size: 36px;
      padding-block: 0;
      padding-inline: 16px;
      font-size: 12px;
      font-weight: 500;
      line-height: 1.5;
      overflow: visible;
      transition: border-color 200ms ease, box-shadow 200ms ease, color 200ms ease;
    }

    & .variant-option__button-label:where(:has(:checked)) {
      box-shadow: var(--eme-pdp-option-ring);
    }

    @media screen and (max-width: 749px) {
      --eme-pdp-option-border: #929396;
      --color-variant-text: rgb(var(--color-foreground-rgb) / var(--eme-opacity-muted-strong));
      --color-variant-hover-text: var(--color-foreground);
      --eme-pdp-option-ring: 0 0 0 2px var(--color-background), 0 0 0 3px var(--color-foreground);
      --options-border-radius: 12px;

      gap: 12px;

      & .variant-option__button-label {
        min-block-size: 44px;
        padding-block: 10px;
      }
    }
  }

  & .product-details .product-form-buttons {
    row-gap: 16px;

    & > .quantity-selector-wrapper,
    & > span:has(add-to-cart-component) {
      flex: 0 0 100%;
    }
  }

  & .product-details .quantity-selector {
    flex: 0 0 auto;
    justify-content: center;
    gap: 4px;
    inline-size: calc((100% - var(--eme-pdp-card-gap) * 2) / 3);
    min-block-size: 61px;
    padding-block: 12px;
    border: 1px solid var(--color-foreground);
    border-radius: var(--eme-radius-button);
    background: transparent;

    & :is(.quantity-minus, .quantity-plus) {
      flex-shrink: 1;
      min-inline-size: 0;
      inline-size: 28px;
      block-size: 28px;
      border-radius: var(--eme-radius-input);
      color: var(--eme-pdp-control-muted);
      transition: color 150ms ease;

      &:hover {
        color: var(--color-foreground);
      }

      &:focus-visible {
        outline: 2px solid var(--color-foreground);
        outline-offset: 0;
      }
    }

    & :where(input[type='number']) {
      inline-size: 28px;
      min-inline-size: 28px;
      font-size: 13px;
      font-weight: 600;
      color: var(--color-foreground);

      &:focus-visible {
        outline: 2px solid var(--color-foreground);
        outline-offset: 2px;
      }
    }
  }

  & .product-details .add-to-cart-button:where(:not(.quick-add__button)) {
    justify-content: flex-start;
    inline-size: 100%;
    padding-block: 16px;
    padding-inline: 20px;
    border: 1px solid var(--color-foreground);
    border-radius: var(--eme-radius-button);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: var(--eme-tracking-button);
    line-height: 1.5;
    text-transform: uppercase;
    color: var(--color-background);
    background-color: var(--color-foreground);
    box-shadow: none;
    transition: background-color 300ms ease, color 300ms ease;

    &:where(:not(:disabled)):hover {
      color: var(--color-foreground);
      background-color: var(--eme-color-surface);
    }

    &:focus-visible {
      outline: 2px solid var(--color-foreground);
      outline-offset: 2px;
    }

    & .add-to-cart-icon {
      display: none;
    }
  }

  & .product-details .accordion {
    & accordion-custom:not(:has(:where(.details-content :is(.text-block, .product-recommendations-wrapper, .eme-product-reviews, .eme-product-reviews__empty)))) {
      display: none;
    }

    & .details {
      border-block: 0;
      border-block-start: 1px solid var(--eme-pdp-line-subtle);
    }

    & :where(.details__header) {
      padding-block: 14px;
      font-size: var(--eme-pdp-label-size);
      font-weight: 600;
      letter-spacing: var(--eme-pdp-label-tracking);
      line-height: 1.5;
      text-transform: uppercase;
      color: var(--color-foreground);

      &:focus-visible {
        outline: 2px solid var(--color-foreground);
        outline-offset: 2px;
      }
    }

    & .icon-caret {
      color: var(--eme-pdp-control-muted);
    }

    & :where(.icon-caret) svg {
      inline-size: 12px;
      block-size: 10px;
    }

    & .details-content {
      padding-block-end: 12px;
      font-size: 11px;
      line-height: 1.625;
      color: rgb(12 11 9 / 0.57);

      & :where(.text-block) {
        font-size: inherit;
        line-height: inherit;
        color: inherit;
      }
    }
  }

  & :where(.product-details .accordion:has(.product-recommendations-wrapper, .eme-product-reviews)) {
    --eme-bt-anchor: --eme-bought-together-arrows;
    --eme-bt-arrow-visual: 28px;
    --eme-bt-arrow-target: 28px;
    --eme-bt-arrow-step: 36px;
    --eme-bt-arrow-reserve: 28px;
    --eme-bt-title-gap: 8px;
    --eme-bt-fallback-gap: 18px;
    --eme-bt-arrow-offset: calc((var(--eme-bt-arrow-visual) - var(--eme-bt-arrow-target)) / 2);

    &:has(.eme-product-reviews) {
      --eme-bt-anchor: --eme-review-arrows;
    }

    &:has(product-recommendations[data-recommendations-performed='true']):not(:has([data-has-recommendations='true'])) {
      display: none;
    }

    & .details {
      position: relative;
    }

    & .details[open] .details-content {
      padding-block-end: 14px;
    }

    & .details[open] .details__header {
      &::after {
        content: '';
        order: 1;
        flex: none;
        inline-size: calc(var(--eme-bt-arrow-step) + var(--eme-bt-arrow-visual));
        block-size: var(--eme-bt-arrow-reserve);
        margin-inline-start: var(--eme-bt-title-gap);
        anchor-name: var(--eme-bt-anchor);
      }

      & > :where(.svg-wrapper) {
        flex: none;
        order: 2;
      }

      @supports not (anchor-name: --eme-bought-together-arrows) {
        &::after {
          margin-inline: auto var(--eme-bt-fallback-gap);
        }

        & > :where(.svg-wrapper) {
          margin-inline-start: 0;
        }
      }
    }

    @media screen and (max-width: 749px) {
      --eme-bt-arrow-visual: 32px;
      --eme-bt-arrow-target: 44px;
      --eme-bt-arrow-step: 44px;
      --eme-bt-arrow-reserve: 16px;
      --eme-bt-title-gap: 12px;

      & .details[open] .details-content {
        padding-block-end: 7px;
      }
    }
  }

  & .product-recommendations-wrapper {
    &:not(:has([data-has-recommendations='true'])) .block-resource-list {
      display: none;
    }

    & .block-resource-list {
      position: static;
    }

    & .section-resource-list__content:not(:has(*)) {
      display: none;
    }

    & .resource-list__carousel .resource-list__slide {
      --slide-width: 100%;
    }

    & .resource-list__carousel slideshow-slides {
      gap: 0;

      @media screen and (max-width: 749px) {
        gap: 8px;
      }
    }

    & :is(.resource-list__carousel, .resource-list__carousel slideshow-container) {
      position: static;
    }

    & .product-card__content {
      display: grid;
      grid-template-columns: 64px minmax(0, 1fr) 36px;
      grid-template-rows: 1fr auto auto auto 1fr;
      align-items: center;
      column-gap: 16px;
      row-gap: 0;
    }

    & .card-gallery {
      display: contents;
    }

    & .card-gallery slideshow-component {
      grid-column: 1;
      grid-row: 1 / -1;
      inline-size: 64px;
      block-size: 64px;
      overflow: hidden;
      border-radius: 12px;
      background-color: var(--eme-pdp-thumb-background);
    }

    & .card-gallery .product-media__image {
      inline-size: 64px;
      block-size: 64px;
      object-fit: cover;
    }

    & .card-gallery :is(.product-badges, eme-card-image-fade, eme-countdown, slideshow-arrows) {
      display: none;
    }

    & .product-card__content :is(.text-block, product-price) {
      grid-column: 2;
    }

    & .product-card__content :where(.text-block)[class*='__category'] {
      grid-row: 2;
      margin-block-end: 2px;
      padding: 0;

      & > * {
        font-size: 10px;
        font-weight: 400;
        line-height: 1.5;
        color: var(--eme-pdp-muted-text);
      }
    }

    & .product-card__content :where(.text-block)[class*='__product_title'] {
      grid-row: 3;
      margin-block-end: 4px;
      padding: 0;

      & > * {
        font-size: 13px;
        font-weight: 500;
        line-height: 1.375;
        color: var(--color-foreground);
      }

      & :where(p) {
        display: -webkit-box;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
      }
    }

    & .product-card__content :where(product-price) {
      grid-row: 4;
      align-self: start;
      margin-block-end: 0;

      & .price {
        font-size: 12px;
        font-weight: 600;
        line-height: 1.5;
        color: var(--color-foreground);
      }
    }

    & .quick-add {
      position: static;
      grid-column: 3;
      grid-row: 1 / -1;
      inline-size: 36px;
      block-size: 36px;
    }

    & [data-quick-add-button='swatch'] {
      & add-to-cart-component {
        display: revert-layer;
      }

      & .quick-add__button--choose {
        display: none;
      }
    }

    & .quick-add__product-form-component .shopify-product-form {
      display: block;
      container-type: normal;
    }

    & :where(button, a).quick-add__button {
      position: relative;
      inset: auto;
      display: flex;
      align-items: center;
      justify-content: center;
      inline-size: 36px;
      block-size: 36px;
      min-block-size: 0;
      max-inline-size: none;
      padding: 0;
      border: 1px solid var(--eme-pdp-add-border);
      border-radius: 50%;
      font-size: 0;
      color: var(--color-foreground);
      background: transparent;
      box-shadow: none;
      opacity: 1;
      transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1), color 150ms cubic-bezier(0.4, 0, 0.2, 1);

      &:hover:where(:not(:disabled)) {
        scale: 1;
        color: var(--eme-color-white);
        background: var(--color-foreground);
      }

      &:disabled {
        opacity: var(--opacity-muted-text);
      }

      &:focus-visible {
        outline: 2px solid var(--color-foreground);
        outline-offset: 2px;
        box-shadow: none;
      }

      > .add-to-cart-icon {
        display: flex;
        inline-size: 16px;
        block-size: 16px;
      }

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

    @media screen and (max-width: 749px) {
      & .product-card__content {
        grid-template-columns: 80px minmax(0, 1fr) 44px;
        padding-block: 16px;
        border-radius: 16px;
      }

      & .card-gallery slideshow-component,
      & .card-gallery .product-media__image {
        inline-size: 80px;
        block-size: 80px;
      }

      & .product-card__content :where(.text-block)[class*='__category'] {
        margin-block-end: 4px;

        & > * {
          font-size: 11px;
        }
      }

      & .product-card__content :where(.text-block)[class*='__product_title'] > * {
        font-size: 14px;
      }

      & .product-card__content :where(product-price) .price {
        font-size: 14px;
      }

      & .quick-add,
      & :where(button, a).quick-add__button {
        inline-size: 44px;
        block-size: 44px;
      }
    }
  }

  & :is(.product-recommendations-wrapper .resource-list__carousel, .eme-product-reviews__carousel) {
    & slideshow-controls {
      display: contents;

      &:where([hidden]) {
        display: none;
      }
    }

    & .slideshow-controls__arrows {
      position: absolute;
      position-anchor: var(--eme-bt-anchor);
      inset-block-start: calc(anchor(center) - var(--eme-bt-arrow-target) / 2);
      inset-inline-start: calc(anchor(start) + var(--eme-bt-arrow-offset));
      display: flex;
      min-block-size: 0;

      &:has(:where(.slideshow-control--next)) {
        inset-inline-start: calc(anchor(start) + var(--eme-bt-arrow-offset) + var(--eme-bt-arrow-step));
      }

      @supports not (anchor-name: --eme-bought-together-arrows) {
        --eme-bt-fallback-end: calc(var(--eme-bt-fallback-gap) + var(--icon-size-xs) + var(--eme-bt-arrow-offset));

        inset-block-start: calc(14px + (var(--eme-bt-arrow-reserve) - var(--eme-bt-arrow-target)) / 2);
        inset-inline-start: auto;
        inset-inline-end: var(--eme-bt-fallback-end);

        &:has(:where(.slideshow-control--previous)) {
          inset-inline-start: auto;
          inset-inline-end: calc(var(--eme-bt-fallback-end) + var(--eme-bt-arrow-step));
        }
      }
    }

    & :where(.slideshow-controls__arrows .slideshow-control) {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
      inline-size: var(--eme-bt-arrow-target);
      block-size: var(--eme-bt-arrow-target);
      min-inline-size: 0;
      min-block-size: 0;
      padding: 0;
      margin: 0;
      border-radius: 50%;
      opacity: 1;
      color: var(--color-foreground);

      &::before {
        content: '';
        position: absolute;
        inset: calc((var(--eme-bt-arrow-target) - var(--eme-bt-arrow-visual)) / 2);
        border: 1px solid var(--eme-pdp-control-muted);
        border-radius: 50%;
        transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1), border-color 150ms cubic-bezier(0.4, 0, 0.2, 1);
      }

      @media (hover: hover) {
        &:hover:where(:not([disabled])) {
          color: var(--eme-color-white);

          &::before {
            border-color: var(--color-foreground);
            background-color: var(--color-foreground);
          }
        }
      }

      &[disabled] {
        display: flex;
        opacity: 0.3;
      }

      &:focus-visible {
        outline: 2px solid var(--color-foreground);
        outline-offset: calc((var(--eme-bt-arrow-visual) - var(--eme-bt-arrow-target)) / 2 + 2px);
      }

      & .svg-wrapper {
        position: relative;
        inline-size: 8px;
        block-size: 8px;
      }
    }

    & .slideshow-controls__dots {
      display: flex;
      gap: 0;
      margin-block-start: 3px;
      padding: 0;
      mix-blend-mode: normal;

      @media screen and (min-width: 750px) {
        display: none;
      }

      & button {
        inline-size: 24px;
        block-size: 24px;
        margin: 0;
        animation: none;

        &::after {
          inline-size: 6px;
          block-size: 6px;
          border-radius: 999px;
          box-shadow: none;
          background-color: rgb(var(--color-foreground-rgb) / var(--eme-opacity-control));
          transition: inline-size 0.3s ease, background-color 0.3s ease;

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

        &:where([aria-selected='true'])::after {
          inline-size: 20px;
          box-shadow: none;
          background-color: var(--color-foreground);
        }

        &:where(:focus-visible) {
          outline: 2px solid var(--color-foreground);
          outline-offset: -2px;
          border-radius: 999px;
        }
      }
    }
  }

  & .eme-product-reviews__carousel {
    --slide-width: 100%;

    &,
    & slideshow-container {
      position: static;
    }

    & slideshow-slides {
      gap: 0;

      @media screen and (max-width: 749px) {
        gap: 8px;
        scroll-snap-type: x mandatory;
      }
    }

    & .eme-product-reviews__slide {
      padding-inline: 1px;
      content-visibility: visible;

      @media screen and (max-width: 749px) {
        display: grid;
        padding-inline: 0;
      }
    }

    & .slideshow-controls__arrows:has(.slideshow-control--previous) {
      gap: calc(var(--eme-bt-arrow-step) - var(--eme-bt-arrow-target));
      inset-inline-start: calc(anchor(start) + var(--eme-bt-arrow-offset));

      @supports not (anchor-name: --eme-review-arrows) {
        inset-inline-start: auto;
        inset-inline-end: var(--eme-bt-fallback-end);
      }
    }
  }

  @media screen and (max-width: 749px) {
    & .product-details > .group-block {
      padding-block-start: clamp(16px, 4vw, 32px);
    }

    & .variant-option--swatches {
      --eme-pdp-swatch-size: 28px;
    }

    & .variant-option--swatches legend {
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      inline-size: 100%;
    }

    & .variant-option--swatches .variant-option__swatch-value {
      display: inline;
      font-size: var(--eme-font-size-2xs);
      font-weight: 400;
      letter-spacing: normal;
      text-transform: none;
      color: rgb(var(--color-foreground-rgb) / var(--eme-opacity-muted));
    }

    & .product-details .quantity-selector {
      min-block-size: 0;
      padding-block: 6px;
      gap: 0;

      & :is(.quantity-minus, .quantity-plus) {
        inline-size: 36px;
        block-size: 36px;
      }

      & :where(input[type='number']) {
        inline-size: 24px;
        min-inline-size: 24px;
      }
    }

    & .product-details .add-to-cart-button[data-added='true'] {
      border-color: var(--eme-color-rose);
      color: var(--color-background);
      background-color: var(--eme-color-rose);
    }
  }
}

:is(html, .page-wrapper):has(sticky-add-to-cart .sticky-add-to-cart__bar[data-stuck='true']) {
  --eme-sticky-bar-room: 80px;

  scroll-padding-block-end: calc(max(16px, var(--safe-area-inset-bottom)) + var(--eme-sticky-bar-room));

  @media screen and (max-width: 749px) {
    --eme-sticky-bar-room: calc(148px + var(--safe-area-inset-bottom));
  }
}

@media screen and (max-width: 749px) {
  :is(html, .page-wrapper):has(sticky-add-to-cart[data-eme-closed] .sticky-add-to-cart__bar[data-stuck='true']) {
    --eme-sticky-bar-room: 0px;

    scroll-padding-block-end: auto;
  }

  sticky-add-to-cart[data-eme-closed] .sticky-add-to-cart__bar {
    display: none;
  }
}

sticky-add-to-cart .sticky-add-to-cart__bar {
  inset-block-end: max(16px, var(--safe-area-inset-bottom));
  inline-size: calc(100% - 32px);
  max-inline-size: 780px;
  gap: 16px;
  padding: 12px 16px;
  border-radius: var(--eme-radius-card);
  background-color: var(--eme-color-surface);
  box-shadow: 0 -2px 24px var(--eme-shadow-color), 0 4px 16px rgb(0 0 0 / 0.08);
  visibility: hidden;

  @media (prefers-reduced-motion: no-preference) {
    transition-property: transform, opacity, display, visibility;
  }

  &[data-stuck='true'] {
    visibility: visible;
  }

  &::before {
    display: none;
  }

  & .sticky-add-to-cart__image {
    block-size: 48px;
    border-radius: var(--eme-radius-input);
  }

  & .sticky-add-to-cart__title {
    font-size: 13px;
    font-weight: 500;
  }

  & .sticky-add-to-cart__variant,
  & .sticky-add-to-cart__price {
    font-size: 11px;
    font-weight: 400;
  }

  & .sticky-add-to-cart__button {
    block-size: auto;
    inline-size: auto;
    padding-block: 12px;
    padding-inline: 32px;
    border-radius: var(--eme-radius-button);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: var(--eme-tracking-button);
    text-transform: uppercase;
    color: var(--color-background);
    background-color: var(--color-foreground);
    transition: background-color 300ms ease;

    &:where(:not(:disabled)):hover {
      background-color: rgb(var(--color-foreground-rgb) / 0.9);
    }

    & .svg-wrapper:where(:not(.add-to-cart__added-icon)) {
      display: none;
    }
  }

  @media screen and (max-width: 749px) {
    display: grid;
    grid-template-columns: 52px minmax(0, auto) minmax(max-content, 1fr);
    grid-template-areas:
      'image title title'
      'image variant price'
      'button button button';
    align-items: center;
    gap: 2px 0;
    padding: 14px 16px calc(14px + var(--safe-area-inset-bottom));
    border-radius: var(--eme-radius-card);

    & .sticky-add-to-cart__image {
      grid-area: image;
      inline-size: 40px;
      block-size: 40px;
      background-color: var(--eme-color-secondary);
    }

    & .sticky-add-to-cart__info {
      display: contents;
    }

    & .sticky-add-to-cart__info .sticky-add-to-cart__title {
      grid-area: title;
      padding-inline-end: 32px;
      display: -webkit-box;
      overflow: hidden;
      font-size: var(--eme-font-size-xs);
      font-weight: 500;
      line-height: 1.375;
      white-space: normal;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;
    }

    & .sticky-add-to-cart__variant,
    & .sticky-add-to-cart__price {
      margin: 0;
      font-size: var(--eme-font-size-2xs);
      font-weight: 400;
      color: rgb(var(--color-foreground-rgb) / var(--eme-opacity-muted));
    }

    & .sticky-add-to-cart__variant {
      grid-area: variant;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    & .sticky-add-to-cart__price {
      grid-area: price;
      display: flex;
      padding-inline-end: 32px;
    }

    & :where(.sticky-add-to-cart__info[data-singleton='false']) + .sticky-add-to-cart__price::before {
      content: '\00a0·\00a0' / '';
    }

    & :where(.sticky-add-to-cart__info[data-singleton='true']) + .sticky-add-to-cart__price {
      grid-column: 2 / -1;
    }

    & .add-to-cart-text__content {
      display: initial;
    }

    & .sticky-add-to-cart__button {
      grid-area: button;
      inline-size: 100%;
      margin-block-start: 8px;
      padding-block: 14px;
      padding-inline: 16px;
      font-weight: 600;

      &[data-added='true'] {
        border-color: var(--eme-color-rose);
        color: var(--color-background);
        background-color: var(--eme-color-rose);
      }
    }
  }
}
