/* SMSProductBox V2 - every selector is intentionally scoped to avoid theme leakage. */
.sms-pb2,
.sms-pb2::before,
.sms-pb2::after,
.sms-pb2 *,
.sms-pb2 *::before,
.sms-pb2 *::after {
  box-sizing: border-box;
}

.sms-pb2 {
  --sms-pb2-accent: #2389d7;
  --sms-pb2-accent-dark: #1474bd;
  --sms-pb2-orange: #f59e0b;
  --sms-pb2-text: #182235;
  --sms-pb2-muted: #657185;
  --sms-pb2-line: #dbe2e9;
  --sms-pb2-motion: 280ms;
  --sms-pb2-hover-y: -4px;
  --sms-pb2-hover-scale: 1.01;
  --sms-pb2-button-lift: -2px;
  --sms-pb2-image-zoom: 1.035;
  --sms-pb2-image-width: 90%;
  --sms-pb2-arrow-size: 38px;
  --sms-pb2-dot-size: 8px;
  --sms-pb2-dots-gap: 10px;
  --sms-pb2-heart-size: 40px;
  --sms-pb2-wishlist-icon-size: 24px;
  --sms-pb2-notify-size: 48px;
  --sms-pb2-notify-icon-size: 19px;
  --sms-pb2-cart-icon-size: 20px;
  --sms-pb2-all-in-cart-icon-inset: 8px;
  --sms-pb2-favorite-motion: 420ms;
  --sms-pb2-tooltip-bg: #182235;
  --sms-pb2-tooltip-max-width: 230px;
  --sms-pb2-tooltip-offset: 10px;
  --sms-pb2-tooltip-arrow-size: 6px;
  --sms-pb2-tooltip-duration: 220ms;
  --sms-pb2-swatch-size: 34px;
  --sms-pb2-variant-ring-color: #f59e0b;
  --sms-pb2-variant-ring-width: 2px;
  --sms-pb2-qty-height: 42px;
  --sms-pb2-qty-width: 82px;
  --sms-pb2-qty-minus-size: 20px;
  --sms-pb2-qty-plus-size: 20px;
  --sms-pb2-qty-motion: 360ms;
  --sms-pb2-count-size: 52px;
  --sms-pb2-action-height: 48px;
  --sms-pb2-count-height: 48px;
  --sms-pb2-card-bottom-gap: 14px;
  --sms-pb2-gradient-duration: 420ms;
  --sms-pb2-gradient-easing: cubic-bezier(.2, .8, .2, 1);
  --sms-pb2-qty-shell-bg: #fff;
  --sms-pb2-qty-shell-border: #cfdae4;
  --sms-pb2-qty-shell-radius: 12px;
  --sms-pb2-qty-shell-shadow: 0 4px 13px rgba(24, 34, 53, .07);
  --sms-pb2-qty-minus-color: #334155;
  --sms-pb2-qty-minus-bg: #edf5fb;
  --sms-pb2-qty-minus-hover-bg: #dceefb;
  --sms-pb2-qty-input-color: #334155;
  --sms-pb2-qty-input-bg: #fff;
  --sms-pb2-qty-divider: #dce5ec;
  --sms-pb2-qty-plus-color: #334155;
  --sms-pb2-qty-plus-bg: #edf5fb;
  --sms-pb2-qty-plus-hover-bg: #dceefb;
  --sms-pb2-badge-x: 0px;
  --sms-pb2-badge-y: 0px;
  --sms-pb2-enter-duration: 550ms;
  --sms-pb2-enter-delay: 0ms;
  position: relative;
  display: flex;
  width: 100%;
  max-width: 520px;
  min-width: 0;
  margin: 0 auto;
  overflow: hidden;
  color: var(--sms-pb2-text);
  background-color: #fff;
  background-image: linear-gradient(180deg, #fff 0%, #fbfdff 48%, #f7fbfe 100%);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  border: 1px solid var(--sms-pb2-line);
  border-radius: 22px;
  box-shadow: 0 16px 44px rgba(24, 34, 53, .09), 0 2px 8px rgba(24, 34, 53, .04);
  isolation: isolate;
  font-family: inherit;
  line-height: 1.35;
  transform: translate3d(0, 0, 0) scale(1);
  transition:
    transform var(--sms-pb2-motion) cubic-bezier(.2, .75, .25, 1),
    box-shadow var(--sms-pb2-motion) ease,
    border-color var(--sms-pb2-motion) ease;
}

.sms-pb2:hover {
  transform: translate3d(0, var(--sms-pb2-hover-y), 0) scale(var(--sms-pb2-hover-scale));
}

/* In Elementor edit mode the canvas must receive the click, not links/swipe/buttons inside the card. */
.sms-pb2--editor-preview {
  pointer-events: none !important;
  cursor: default;
}

.sms-pb2--editor-preview .sms-pb2__arrow,
.sms-pb2--editor-preview .sms-pb2__dots,
.sms-pb2--editor-preview .sms-pb2__dot,
.sms-pb2--editor-preview .sms-pb2__wishlist,
.sms-pb2--editor-preview .sms-pb2__notify-button,
.sms-pb2--editor-preview .sms-pb2__option,
.sms-pb2--editor-preview .sms-pb2__attribute-select {
  pointer-events: auto !important;
}

.sms-pb2:focus-within {
  border-color: color-mix(in srgb, var(--sms-pb2-accent) 70%, white);
}

.sms-pb2--product {
  flex-direction: column;
}

/* Independent overlay layer: Elementor can place a translucent gradient here
   while the card background keeps its color or image underneath. */
.sms-pb2--product::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  display: block;
  border-radius: inherit;
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  opacity: 1;
  pointer-events: none;
}

.sms-pb2 a,
.sms-pb2 button,
.sms-pb2 input,
.sms-pb2 select {
  font: inherit;
}

.sms-pb2 a {
  text-decoration: none;
}

.sms-pb2 button {
  appearance: none;
  -webkit-appearance: none;
  margin: 0;
  min-width: 0;
  min-height: 0;
  letter-spacing: normal;
  text-transform: none;
  cursor: pointer;
}

.sms-pb2 button:focus-visible,
.sms-pb2 a:focus-visible,
.sms-pb2 input:focus-visible,
.sms-pb2 select:focus-visible,
.sms-pb2[tabindex]:focus-visible,
.sms-pb2__gallery:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--sms-pb2-accent) 45%, transparent);
  outline-offset: 3px;
}

.sms-pb2 img,
.sms-pb2 svg {
  display: block;
  max-width: 100%;
}

.sms-pb2__gallery {
  position: relative;
  z-index: 1;
  display: grid;
  flex: 0 0 auto;
  grid-template-rows: minmax(0, 1fr) auto;
  row-gap: var(--sms-pb2-dots-gap);
  width: 100%;
  height: 360px;
  padding: 14px;
  overflow: hidden;
  background: transparent;
  touch-action: pan-y pinch-zoom;
  user-select: none;
  -webkit-user-select: none;
}

.sms-pb2__gallery.is-dragging {
  cursor: grabbing;
}

.sms-pb2__track {
  position: relative;
  display: flex;
  width: 100%;
  min-width: 0;
  min-height: 0;
  height: auto;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
  touch-action: pan-x pan-y pinch-zoom;
  transform: none !important;
  -webkit-overflow-scrolling: touch;
}

.sms-pb2__track::-webkit-scrollbar { display: none; }
.sms-pb2--swipe-disabled .sms-pb2__track { touch-action: pan-y pinch-zoom; }

.sms-pb2__variant-loader {
  position: absolute;
  z-index: 6;
  inset: 0;
  display: grid;
  place-items: center;
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  transition: opacity 90ms ease, visibility 0s linear 90ms;
}

.sms-pb2__variant-loader.is-visible {
  visibility: visible;
  opacity: 1;
  transition-delay: 0s;
}

.sms-pb2__variant-loader-spinner {
  width: 34px;
  height: 34px;
  border: 3px solid rgba(31, 124, 191, .18);
  border-top-color: var(--sms-pb2-orange);
  border-radius: 50%;
  background: rgba(255, 255, 255, .74);
  box-shadow: 0 8px 24px rgba(26, 76, 113, .12);
  animation: sms-pb2-variant-loader-spin 620ms linear infinite;
}

@keyframes sms-pb2-variant-loader-spin {
  to { transform: rotate(360deg); }
}

.sms-pb2__gallery.is-dragging .sms-pb2__track {
  transition: none;
}

.sms-pb2__slide {
  position: relative;
  display: flex;
  flex: 0 0 100%;
  align-items: center;
  justify-content: center;
  min-width: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  opacity: 1;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.sms-pb2__image-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: inherit;
}

.sms-pb2__slide-image {
  width: auto;
  height: auto;
  max-width: var(--sms-pb2-image-width);
  max-height: 100%;
  margin: 0;
  object-fit: contain;
  object-position: center;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  pointer-events: none;
  transform: translateZ(0) scale(1);
  transition: transform 480ms cubic-bezier(.2, .75, .25, 1);
}

.sms-pb2:hover .sms-pb2__slide.is-active .sms-pb2__slide-image {
  transform: translateZ(0) scale(var(--sms-pb2-image-zoom));
}

.sms-pb2--gallery-fade .sms-pb2__track {
  display: block;
  overflow: hidden;
  scroll-snap-type: none;
  transform: none !important;
  transition: none;
}

.sms-pb2--gallery-fade .sms-pb2__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transform: scale(.985);
  transition: opacity 340ms ease, transform 420ms ease, visibility 340ms ease;
}

.sms-pb2--gallery-fade .sms-pb2__slide.is-active {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
}

.sms-pb2__arrow {
  position: absolute;
  z-index: 7;
  top: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--sms-pb2-arrow-size);
  height: var(--sms-pb2-arrow-size);
  padding: 0;
  color: #58a6df;
  background: rgba(255, 255, 255, .44);
  background-image: none;
  border: 1px solid transparent;
  border-radius: 999px;
  box-shadow: none;
  opacity: .9;
  transform: translateY(-50%);
  transition: color 180ms ease, background-color 180ms ease, opacity 180ms ease, transform 180ms ease;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}

.sms-pb2__arrow:hover {
  color: var(--sms-pb2-orange);
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  opacity: 1;
  transform: translateY(-50%) scale(1.07);
}

.sms-pb2__arrow:disabled {
  opacity: .28;
  cursor: default;
  pointer-events: none;
}

.sms-pb2__arrow svg {
  width: 52%;
  height: 52%;
}

.sms-pb2__arrow path {
  fill: none;
  stroke: currentColor;
  stroke-width: 2.25;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.sms-pb2__arrow--prev { left: 12px; }
.sms-pb2__arrow--next { right: 12px; }
.sms-pb2--arrows-none .sms-pb2__arrow { display: none !important; }

.sms-pb2__gallery.is-single .sms-pb2__arrow,
.sms-pb2__gallery.is-single .sms-pb2__dots {
  display: none !important;
}

.sms-pb2__dots {
  position: relative;
  z-index: 7;
  left: auto;
  bottom: auto;
  display: flex;
  grid-row: 2;
  align-items: center;
  align-self: end;
  justify-content: center;
  justify-self: center;
  gap: 7px;
  max-width: calc(100% - 92px);
  min-height: calc(var(--sms-pb2-dot-size) + 10px);
  padding: 5px 8px;
  overflow-x: auto;
  transform: none;
  scrollbar-width: none;
}

.sms-pb2__dots::-webkit-scrollbar { display: none; }

.sms-pb2__dot {
  flex: 0 0 auto;
  width: var(--sms-pb2-dot-size);
  height: var(--sms-pb2-dot-size);
  padding: 0;
  background: #65a9df;
  border: 0;
  border-radius: 999px;
  opacity: .9;
  transform: scale(1);
  transition: transform 180ms ease, background-color 180ms ease, opacity 180ms ease;
}

.sms-pb2__dot:hover { opacity: 1; transform: scale(1.22); }
.sms-pb2__dot.is-active { background: var(--sms-pb2-orange); opacity: 1; transform: scale(1.28); }

.sms-pb2__badge {
  position: absolute;
  z-index: 9;
  top: 0;
  left: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 80%;
  padding: 8px 34px;
  color: #fff;
  background-color: #0eac5d;
  font-size: 16px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .02em;
  text-align: center;
  white-space: nowrap;
  box-shadow: 0 7px 18px rgba(11, 161, 84, .18);
  pointer-events: none;
}

.sms-pb2__badge--ribbon {
  top: 23px;
  left: -42px;
  min-width: 185px;
  transform: translate(var(--sms-pb2-badge-x), var(--sms-pb2-badge-y)) rotate(-34deg);
  transform-origin: center;
}

.sms-pb2__badge--pill {
  top: 16px;
  left: 16px;
  padding: 8px 15px;
  border-radius: 999px;
  transform: translate(var(--sms-pb2-badge-x), var(--sms-pb2-badge-y));
}

.sms-pb2__badge--corner {
  top: 0;
  left: 0;
  padding: 11px 18px;
  border-radius: 0 0 15px 0;
  transform: translate(var(--sms-pb2-badge-x), var(--sms-pb2-badge-y));
}

.sms-pb2__wishlist {
  position: absolute;
  z-index: 10;
  top: 12px;
  right: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--sms-pb2-heart-size);
  height: var(--sms-pb2-heart-size);
  padding: 8px;
  color: #768291;
  background: rgba(255, 255, 255, .68);
  border: 0;
  border-radius: 999px;
  box-shadow: none;
  opacity: .96;
  transition: transform 180ms ease, color 180ms ease, background-color 180ms ease, opacity 180ms ease;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}

.sms-pb2__wishlist:hover { transform: scale(1.09); opacity: 1; }
.sms-pb2__wishlist.is-active { color: var(--sms-pb2-orange); }
.sms-pb2__wishlist-icon {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: var(--sms-pb2-wishlist-icon-size);
  height: var(--sms-pb2-wishlist-icon-size);
  color: inherit;
  line-height: 1;
}
.sms-pb2__wishlist-icon svg,
.sms-pb2__wishlist-icon i { width: 100%; height: 100%; overflow: visible; color: inherit; font-size: 100%; line-height: 1; }
.sms-pb2__wishlist-icon:not(.sms-pb2__wishlist-icon--custom) path { fill: transparent; stroke: currentColor; stroke-width: 1.75; transition: fill 180ms ease; }
.sms-pb2__wishlist.is-active .sms-pb2__wishlist-icon:not(.sms-pb2__wishlist-icon--custom) path { fill: currentColor; }
.sms-pb2__wishlist-icon--custom svg { fill: currentColor; stroke: none; }
.sms-pb2__wishlist.is-loading { pointer-events: none; opacity: .45; }

.sms-pb2__body {
  position: relative;
  z-index: 2;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-width: 0;
  padding: 16px 14px 14px;
  text-align: center;
  background: transparent;
}

.sms-pb2-content-align-left .sms-pb2__body { align-items: flex-start; }
.sms-pb2-content-align-left .sms-pb2__attribute { align-items: flex-start; }
.sms-pb2-content-align-left .sms-pb2__options { justify-content: flex-start; }
.sms-pb2-content-align-right .sms-pb2__body { align-items: flex-end; }
.sms-pb2-content-align-right .sms-pb2__attribute { align-items: flex-end; }
.sms-pb2-content-align-right .sms-pb2__options { justify-content: flex-end; }
.sms-pb2-content-align-center .sms-pb2__body { align-items: center; }

.sms-pb2__title {
  width: 100%;
  margin: 0;
  padding: 0;
  color: var(--sms-pb2-text);
  font-size: clamp(18px, 2.9vw, 24px);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -.02em;
  text-transform: none;
}

.sms-pb2__title a {
  display: inline;
  color: inherit;
  transition: color 180ms ease;
}

.sms-pb2__title a:hover { color: var(--sms-pb2-accent); }

.sms-pb2__rating {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--sms-pb2-orange);
  line-height: 1;
}

.sms-pb2__rating .star-rating {
  float: none;
  margin: 0;
  color: inherit;
}

.sms-pb2__price {
  width: 100%;
  margin: 0;
  color: var(--sms-pb2-orange);
  font-size: clamp(19px, 3.6vw, 25px);
  font-weight: 800;
  line-height: 1.15;
}

.sms-pb2__price .amount,
.sms-pb2__price ins {
  color: inherit;
  font-weight: inherit;
  text-decoration: none;
}

.sms-pb2__price del {
  margin-right: .32em;
  color: #9aa4b2;
  font-size: .74em;
  font-weight: 600;
  opacity: .72;
}

.sms-pb2__excerpt {
  width: 100%;
  color: var(--sms-pb2-muted);
  font-size: 15px;
  line-height: 1.55;
}

.sms-pb2__excerpt p { margin: 0; }

.sms-pb2__attributes {
  position: relative;
  z-index: 13;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  width: 100%;
}

.sms-pb2__attribute {
  display: flex;
  flex: 1 1 120px;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.sms-pb2__attribute-label {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  color: #596579;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.2;
  text-align: inherit;
}

.sms-pb2__options {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 7px;
  max-width: 100%;
}

.sms-pb2__option {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  min-height: 34px;
  padding: 6px 10px;
  color: #263244;
  background: #fff;
  border: 1px solid #d9e0e8;
  border-radius: 18px;
  box-shadow: 0 1px 2px rgba(24, 34, 53, .04);
  font-size: 14px;
  font-weight: 650;
  line-height: 1;
  cursor: pointer;
  pointer-events: auto;
  touch-action: manipulation;
  transition: transform 150ms ease, border-color 150ms ease, background-color 150ms ease, opacity 150ms ease, box-shadow 150ms ease;
}

/*
 * The whole swatch is one hit target. Themes and Elementor must never turn
 * the inner color/image/label spans into separate clickable layers.
 */
.sms-pb2__option > *,
.sms-pb2__option::before,
.sms-pb2__option::after {
  pointer-events: none !important;
}

.sms-pb2__option:hover:not(:disabled) {
  border-color: var(--sms-pb2-accent);
  transform: translateY(-1px);
}

.sms-pb2__option.is-selected {
  color: #176daa;
  background: #eef8ff;
  border-color: var(--sms-pb2-accent);
  box-shadow: 0 0 0 2px rgba(35, 137, 215, .2);
}

.sms-pb2__option:disabled,
.sms-pb2__attribute-select option:disabled {
  opacity: .3;
  cursor: not-allowed;
}

.sms-pb2 .sms-pb2__option.is-out-of-stock {
  color: #a43a3a;
  background-color: #fff7f7;
  border-color: #efaaaa;
  box-shadow: inset 0 0 0 1px rgba(185, 28, 28, .06);
  opacity: .55;
  filter: grayscale(.5) saturate(.55);
}

.sms-pb2 .sms-pb2__option.is-out-of-stock::after {
  content: none;
  display: none;
}

.sms-pb2 .sms-pb2__option.is-out-of-stock:hover,
.sms-pb2 .sms-pb2__option.is-out-of-stock.is-selected {
  color: #991b1b;
  background-color: #fff0f0;
  border-color: #dc5353;
  box-shadow: 0 0 0 2px rgba(220, 38, 38, .15);
  opacity: .82;
  filter: grayscale(.18) saturate(.78);
}

.sms-pb2 .sms-pb2__attribute-select option.is-out-of-stock { color: #b42318; background-color: #fff5f5; }

.sms-pb2__option.is-visual {
  width: var(--sms-pb2-swatch-size);
  height: var(--sms-pb2-swatch-size);
  min-width: var(--sms-pb2-swatch-size);
  min-height: var(--sms-pb2-swatch-size);
  padding: 3px;
  border-radius: 999px;
}

.sms-pb2__option-visual { display: none; }

.sms-pb2__option.is-visual .sms-pb2__option-visual {
  display: block;
  width: 100%;
  height: 100%;
  background-color: var(--sms-pb2-option-color, transparent);
  background-image: var(--sms-pb2-option-image, none);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  border: 1px solid rgba(24, 34, 53, .08);
  border-radius: inherit;
}

.sms-pb2__option.is-visual .sms-pb2__option-label {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.sms-pb2__attribute-select {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 42px;
  margin: 0;
  padding: 8px 34px 8px 12px;
  color: #263244;
  background-color: #fff;
  border: 1px solid #d9e0e8;
  border-radius: 12px;
  box-shadow: none;
  cursor: pointer;
}

.sms-pb2__variation-message {
  width: 100%;
  min-height: 1.2em;
  color: #ef2f24;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.25;
  text-align: inherit;
}

.sms-pb2__variation-message.is-valid { color: #198754; }

.sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__variation-message:empty {
  display: none;
}

.sms-pb2__purchase {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 9px;
  width: 100%;
  min-height: 0;
  margin-top: 0 !important;
}

/* Equal-height is content-aware: the configured value is only the starting
   minimum. JavaScript raises the whole visual row to its tallest card when
   titles or variation options wrap onto additional lines. */
@media (min-width: 768px) {
  .sms-pb2.sms-pb2--product.sms-pb2--equal-height:not([data-sms-pp2]) {
    height: auto !important;
    min-height: var(--sms-pb2-row-height, var(--sms-pb2-equal-min-height, 625px)) !important;
  }
}

/* Desktop cards keep their purchase controls on the same baseline. Variant
   availability notices float briefly instead of changing the card geometry. */
@media (min-width: 768px) {
  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__body {
    padding-bottom: calc(var(--sms-pb2-action-height) + var(--sms-pb2-qty-height) + 48px) !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__body:not(:has(.sms-pb2__purchase .sms-pb2__quantity)) {
    padding-bottom: calc(var(--sms-pb2-action-height) + 28px) !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__purchase {
    position: absolute;
    z-index: 12;
    right: 14px;
    bottom: var(--sms-pb2-card-bottom-gap);
    left: 14px;
    flex: 0 0 auto;
    justify-content: flex-end;
    width: auto;
    margin: 0 !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__cart-row {
    flex: 0 0 var(--sms-pb2-action-height);
    height: var(--sms-pb2-action-height);
    min-height: var(--sms-pb2-action-height);
    max-height: var(--sms-pb2-action-height);
    margin-top: 0 !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__cart-button {
    flex-basis: auto;
    height: var(--sms-pb2-action-height) !important;
    min-height: var(--sms-pb2-action-height) !important;
    max-height: var(--sms-pb2-action-height) !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__variation-message.is-transient {
    position: absolute;
    z-index: 24;
    right: 12px;
    bottom: calc(var(--sms-pb2-action-height) + var(--sms-pb2-qty-height) + 40px);
    left: 12px;
    width: auto;
    min-height: 0;
    padding: 7px 10px;
    color: #b42318;
    background: rgba(255, 246, 245, .97);
    border: 1px solid #f0b7b2;
    border-radius: 10px;
    box-shadow: 0 8px 20px rgba(180, 35, 24, .14);
    font-size: 12px;
    font-weight: 750;
    line-height: 1.25;
    text-align: center;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 180ms ease, transform 220ms cubic-bezier(.2, .8, .2, 1), visibility 0s linear 220ms;
    pointer-events: none;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__variation-message.is-transient.is-transient-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition-delay: 0s;
  }
}

.sms-pb2__quantity {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  max-width: 100%;
}

.sms-pb2__quantity-label {
  color: var(--sms-pb2-muted);
  font-size: 13px;
  font-weight: 650;
}

.sms-pb2__quantity-controls {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  overflow: hidden;
  background: var(--sms-pb2-qty-shell-bg);
  border: 1px solid var(--sms-pb2-qty-shell-border);
  border-radius: var(--sms-pb2-qty-shell-radius);
  box-shadow: var(--sms-pb2-qty-shell-shadow);
}

.sms-pb2__qty-button,
.sms-pb2__qty-input {
  height: var(--sms-pb2-qty-height);
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  line-height: 1;
}

.sms-pb2__qty-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--sms-pb2-qty-height);
  padding: 0;
  font-size: 20px;
  font-weight: 800;
  overflow: hidden;
  isolation: isolate;
  transition: background-color 160ms ease, opacity 160ms ease, transform 120ms ease, box-shadow 180ms ease;
}

.sms-pb2__qty-button::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  background: currentColor;
  border-radius: 999px;
  opacity: 0;
  transform: translate(-50%, -50%) scale(0);
  pointer-events: none;
}

.sms-pb2__qty-button--minus { color: var(--sms-pb2-qty-minus-color); background: var(--sms-pb2-qty-minus-bg); }
.sms-pb2__qty-button--plus { color: var(--sms-pb2-qty-plus-color); background: var(--sms-pb2-qty-plus-bg); }
.sms-pb2__qty-button--minus:hover { background: var(--sms-pb2-qty-minus-hover-bg); transform: none; }
.sms-pb2__qty-button--plus:hover { background: var(--sms-pb2-qty-plus-hover-bg); transform: none; }
.sms-pb2__qty-button:active { transform: translateY(0); }
.sms-pb2__qty-button:disabled { opacity: .4; cursor: default; }
.sms-pb2__qty-button.is-at-limit:not(:disabled) { opacity: .48; cursor: pointer; }
.sms-pb2__qty-button.is-at-limit:not(:disabled):hover { opacity: .68; }

.sms-pb2__qty-input {
  width: var(--sms-pb2-qty-width);
  padding: 4px 8px;
  color: var(--sms-pb2-qty-input-color);
  background: var(--sms-pb2-qty-input-bg);
  font-size: 18px;
  font-weight: 650;
  text-align: center;
  appearance: textfield;
  -moz-appearance: textfield;
  border-right: 1px solid var(--sms-pb2-qty-divider);
  border-left: 1px solid var(--sms-pb2-qty-divider);
}

.sms-pb2__qty-input::-webkit-inner-spin-button,
.sms-pb2__qty-input::-webkit-outer-spin-button { margin: 0; appearance: none; -webkit-appearance: none; }

.sms-pb2__quantity-feedback {
  position: absolute;
  z-index: 8;
  top: calc(100% + 3px);
  left: 50%;
  width: max-content;
  max-width: min(240px, 90vw);
  padding: 4px 9px;
  color: #9a3412;
  background: rgba(255, 247, 237, .97);
  border: 1px solid #fdba74;
  border-radius: 999px;
  box-shadow: 0 7px 18px rgba(154, 52, 18, .14);
  font-size: 11px;
  font-weight: 750;
  line-height: 1.2;
  text-align: center;
  opacity: 0;
  transform: translate(-50%, -5px) scale(.94);
  transition: opacity 150ms ease, transform 220ms cubic-bezier(.2, .85, .25, 1.25);
  pointer-events: none;
}

.sms-pb2__quantity-feedback.is-visible {
  opacity: 1;
  transform: translate(-50%, 0) scale(1);
}

/* Preset di movimento per meno, numero e piu. Le classi sono applicate da Elementor. */
.sms-pb2__qty-button.is-pressed {
  animation: sms-pb2-qty-soft-tap var(--sms-pb2-qty-motion) cubic-bezier(.2, .8, .2, 1);
}

.sms-pb2__quantity.is-quantity-changing .sms-pb2__qty-input {
  animation: sms-pb2-qty-soft-number var(--sms-pb2-qty-motion) cubic-bezier(.2, .8, .2, 1);
}

.sms-pb2-quantity-motion-subtle .sms-pb2__qty-button.is-pressed {
  animation-name: sms-pb2-qty-subtle-button;
}
.sms-pb2-quantity-motion-subtle .sms-pb2__quantity.is-quantity-changing .sms-pb2__qty-input {
  animation-name: sms-pb2-qty-subtle-number;
}

.sms-pb2-quantity-motion-fade .sms-pb2__qty-button.is-pressed {
  animation-name: sms-pb2-qty-fade-button;
}
.sms-pb2-quantity-motion-fade .sms-pb2__quantity.is-quantity-changing .sms-pb2__qty-input {
  animation-name: sms-pb2-qty-fade-number;
}

.sms-pb2-quantity-motion-drift .sms-pb2__qty-button.is-pressed {
  animation-name: sms-pb2-qty-drift-button;
}
.sms-pb2-quantity-motion-drift .sms-pb2__quantity.is-increasing .sms-pb2__qty-input {
  animation-name: sms-pb2-qty-drift-up;
}
.sms-pb2-quantity-motion-drift .sms-pb2__quantity.is-decreasing .sms-pb2__qty-input {
  animation-name: sms-pb2-qty-drift-down;
}

.sms-pb2-quantity-motion-bounce .sms-pb2__qty-button.is-pressed {
  animation-name: sms-pb2-qty-bounce-button;
}
.sms-pb2-quantity-motion-bounce .sms-pb2__quantity.is-quantity-changing .sms-pb2__qty-input {
  animation-name: sms-pb2-qty-bounce-number;
}

.sms-pb2-quantity-motion-ripple .sms-pb2__qty-button.is-pressed {
  animation: sms-pb2-qty-ripple-button var(--sms-pb2-qty-motion) ease-out;
}
.sms-pb2-quantity-motion-ripple .sms-pb2__qty-button.is-pressed::after {
  animation: sms-pb2-qty-ripple-wave var(--sms-pb2-qty-motion) ease-out;
}
.sms-pb2-quantity-motion-ripple .sms-pb2__quantity.is-quantity-changing .sms-pb2__qty-input {
  animation-name: sms-pb2-qty-ripple-number;
}

.sms-pb2-quantity-motion-flip .sms-pb2__qty-button.is-pressed {
  animation-name: sms-pb2-qty-flip-button;
}
.sms-pb2-quantity-motion-flip .sms-pb2__quantity.is-increasing .sms-pb2__qty-input {
  animation-name: sms-pb2-qty-flip-up;
  transform-origin: center bottom;
}
.sms-pb2-quantity-motion-flip .sms-pb2__quantity.is-decreasing .sms-pb2__qty-input {
  animation-name: sms-pb2-qty-flip-down;
  transform-origin: center top;
}

.sms-pb2-quantity-motion-glow .sms-pb2__qty-button.is-pressed {
  animation-name: sms-pb2-qty-glow-button;
}
.sms-pb2-quantity-motion-glow .sms-pb2__quantity.is-quantity-changing .sms-pb2__qty-input {
  animation-name: sms-pb2-qty-glow-number;
}

.sms-pb2-quantity-motion-spring .sms-pb2__qty-button.is-pressed {
  animation-name: sms-pb2-qty-spring-button;
}
.sms-pb2-quantity-motion-spring .sms-pb2__quantity.is-quantity-changing .sms-pb2__qty-input {
  animation-name: sms-pb2-qty-spring-number;
}

.sms-pb2__quantity.is-limit-hit .sms-pb2__quantity-controls {
  animation: sms-pb2-qty-limit-shell var(--sms-pb2-qty-motion) cubic-bezier(.36, .07, .19, .97);
}
.sms-pb2__qty-button.is-limit-feedback {
  animation: sms-pb2-qty-limit-button var(--sms-pb2-qty-motion) cubic-bezier(.36, .07, .19, .97) !important;
}

.sms-pb2-quantity-motion-subtle .sms-pb2__quantity.is-limit-hit .sms-pb2__quantity-controls {
  animation-name: sms-pb2-qty-subtle-limit-shell;
}
.sms-pb2-quantity-motion-subtle .sms-pb2__qty-button.is-limit-feedback {
  animation-name: sms-pb2-qty-subtle-limit-button !important;
}
.sms-pb2-quantity-motion-fade .sms-pb2__quantity.is-limit-hit .sms-pb2__quantity-controls {
  animation-name: sms-pb2-qty-fade-limit-shell;
}
.sms-pb2-quantity-motion-fade .sms-pb2__qty-button.is-limit-feedback {
  animation-name: sms-pb2-qty-fade-button !important;
}
.sms-pb2-quantity-motion-drift .sms-pb2__quantity.is-limit-hit .sms-pb2__quantity-controls {
  animation-name: sms-pb2-qty-drift-limit-shell;
}
.sms-pb2-quantity-motion-drift .sms-pb2__qty-button.is-limit-feedback {
  animation-name: sms-pb2-qty-drift-button !important;
}

.sms-pb2-quantity-motion-none .sms-pb2__qty-button,
.sms-pb2-quantity-motion-none .sms-pb2__qty-input,
.sms-pb2-quantity-motion-none .sms-pb2__quantity-controls,
.sms-pb2-quantity-motion-none .sms-pb2__qty-button::after {
  animation: none !important;
  transition-duration: 0ms !important;
}

/* Quantity presets: Elementor places the preset class on the widget wrapper. */
.sms-pb2-quantity-preset-soft-blue .sms-pb2 {
  --sms-pb2-qty-shell-bg: #fff;
  --sms-pb2-qty-shell-border: #cbdbe8;
  --sms-pb2-qty-shell-radius: 12px;
  --sms-pb2-qty-shell-shadow: 0 5px 14px rgba(31, 105, 158, .1);
  --sms-pb2-qty-minus-color: #2875aa;
  --sms-pb2-qty-minus-bg: #eaf5fd;
  --sms-pb2-qty-minus-hover-bg: #d4ebfb;
  --sms-pb2-qty-input-color: #243247;
  --sms-pb2-qty-input-bg: #fff;
  --sms-pb2-qty-divider: #d6e4ee;
  --sms-pb2-qty-plus-color: #2875aa;
  --sms-pb2-qty-plus-bg: #eaf5fd;
  --sms-pb2-qty-plus-hover-bg: #d4ebfb;
}

.sms-pb2-quantity-preset-minimal .sms-pb2 {
  --sms-pb2-qty-shell-bg: #fff;
  --sms-pb2-qty-shell-border: #dce2e8;
  --sms-pb2-qty-shell-radius: 8px;
  --sms-pb2-qty-shell-shadow: none;
  --sms-pb2-qty-minus-color: #667085;
  --sms-pb2-qty-minus-bg: #fff;
  --sms-pb2-qty-minus-hover-bg: #f4f6f8;
  --sms-pb2-qty-input-color: #1f2937;
  --sms-pb2-qty-input-bg: #fff;
  --sms-pb2-qty-divider: #e2e7ec;
  --sms-pb2-qty-plus-color: #667085;
  --sms-pb2-qty-plus-bg: #fff;
  --sms-pb2-qty-plus-hover-bg: #f4f6f8;
}

.sms-pb2-quantity-preset-pill .sms-pb2 {
  --sms-pb2-qty-shell-bg: #eaf5fd;
  --sms-pb2-qty-shell-border: #bbdff6;
  --sms-pb2-qty-shell-radius: 999px;
  --sms-pb2-qty-shell-shadow: inset 0 1px 2px rgba(25, 95, 145, .08);
  --sms-pb2-qty-minus-color: #146fae;
  --sms-pb2-qty-minus-bg: transparent;
  --sms-pb2-qty-minus-hover-bg: #d5edfc;
  --sms-pb2-qty-input-color: #145f92;
  --sms-pb2-qty-input-bg: transparent;
  --sms-pb2-qty-divider: transparent;
  --sms-pb2-qty-plus-color: #146fae;
  --sms-pb2-qty-plus-bg: transparent;
  --sms-pb2-qty-plus-hover-bg: #d5edfc;
}

.sms-pb2-quantity-preset-dark .sms-pb2 {
  --sms-pb2-qty-shell-bg: #151d2b;
  --sms-pb2-qty-shell-border: #2d3a4e;
  --sms-pb2-qty-shell-radius: 11px;
  --sms-pb2-qty-shell-shadow: 0 8px 18px rgba(8, 15, 27, .2);
  --sms-pb2-qty-minus-color: #d8e5f2;
  --sms-pb2-qty-minus-bg: #202c3d;
  --sms-pb2-qty-minus-hover-bg: #2b3c53;
  --sms-pb2-qty-input-color: #fff;
  --sms-pb2-qty-input-bg: #151d2b;
  --sms-pb2-qty-divider: #34445b;
  --sms-pb2-qty-plus-color: #d8e5f2;
  --sms-pb2-qty-plus-bg: #202c3d;
  --sms-pb2-qty-plus-hover-bg: #2b3c53;
}

.sms-pb2-quantity-preset-orange .sms-pb2 {
  --sms-pb2-qty-shell-bg: #fffaf0;
  --sms-pb2-qty-shell-border: #ffd38a;
  --sms-pb2-qty-shell-radius: 12px;
  --sms-pb2-qty-shell-shadow: 0 6px 16px rgba(230, 138, 0, .14);
  --sms-pb2-qty-minus-color: #9a5100;
  --sms-pb2-qty-minus-bg: #ffecbf;
  --sms-pb2-qty-minus-hover-bg: #ffdc8a;
  --sms-pb2-qty-input-color: #6d3c00;
  --sms-pb2-qty-input-bg: #fffaf0;
  --sms-pb2-qty-divider: #ffd9a0;
  --sms-pb2-qty-plus-color: #fff;
  --sms-pb2-qty-plus-bg: #f59e0b;
  --sms-pb2-qty-plus-hover-bg: #dd8500;
}

.sms-pb2-quantity-preset-glass .sms-pb2 {
  --sms-pb2-qty-shell-bg: rgba(255, 255, 255, .42);
  --sms-pb2-qty-shell-border: rgba(255, 255, 255, .76);
  --sms-pb2-qty-shell-radius: 14px;
  --sms-pb2-qty-shell-shadow: 0 8px 24px rgba(31, 78, 112, .13), inset 0 1px rgba(255, 255, 255, .7);
  --sms-pb2-qty-minus-color: #286b9c;
  --sms-pb2-qty-minus-bg: rgba(230, 245, 255, .62);
  --sms-pb2-qty-minus-hover-bg: rgba(208, 237, 255, .82);
  --sms-pb2-qty-input-color: #243247;
  --sms-pb2-qty-input-bg: rgba(255, 255, 255, .28);
  --sms-pb2-qty-divider: rgba(255, 255, 255, .7);
  --sms-pb2-qty-plus-color: #286b9c;
  --sms-pb2-qty-plus-bg: rgba(230, 245, 255, .62);
  --sms-pb2-qty-plus-hover-bg: rgba(208, 237, 255, .82);
}

.sms-pb2-quantity-preset-glass .sms-pb2__quantity-controls {
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.sms-pb2-quantity-preset-split .sms-pb2 {
  --sms-pb2-qty-minus-color: #536173;
  --sms-pb2-qty-minus-bg: #f1f5f8;
  --sms-pb2-qty-minus-hover-bg: #e2ebf2;
  --sms-pb2-qty-input-color: #243247;
  --sms-pb2-qty-input-bg: #fff;
  --sms-pb2-qty-plus-color: #fff;
  --sms-pb2-qty-plus-bg: #2389d7;
  --sms-pb2-qty-plus-hover-bg: #176fb2;
}

.sms-pb2-quantity-preset-split .sms-pb2__quantity-controls {
  gap: 7px;
  overflow: visible;
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}

.sms-pb2-quantity-preset-split .sms-pb2__qty-button,
.sms-pb2-quantity-preset-split .sms-pb2__qty-input {
  border: 1px solid #d3dee7;
  border-radius: 10px;
  box-shadow: 0 4px 11px rgba(24, 34, 53, .07);
}

.sms-pb2__qty-input:focus {
  position: relative;
  z-index: 2;
  outline: 2px solid color-mix(in srgb, var(--sms-pb2-accent) 28%, transparent);
  outline-offset: -2px;
}

.sms-pb2__cart-row {
  position: relative;
  display: flex;
  align-items: stretch;
  gap: 9px;
  width: 100%;
  min-width: 0;
  margin-top: auto !important;
}

.sms-pb2--no-variations .sms-pb2__purchase {
  justify-content: flex-end;
}

.sms-pb2--no-variations .sms-pb2__cart-row {
  margin-top: 0 !important;
}

.sms-pb2__cart-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  height: var(--sms-pb2-action-height);
  min-height: var(--sms-pb2-action-height);
  margin: 0;
  padding: 7px 14px;
  overflow: hidden;
  color: #fff;
  background-color: #2389d7;
  background-image: linear-gradient(180deg, #55a8ed 0%, #2389d7 52%, #1674b9 100%);
  border: 1px solid #228bd9;
  border-radius: 14px;
  box-shadow: 0 8px 18px rgba(20, 116, 189, .22), inset 0 1px rgba(255, 255, 255, .32);
  font-size: clamp(15px, 3vw, 20px);
  font-weight: 800;
  line-height: 1.1;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: -.01em;
  transition: transform 180ms ease, filter 180ms ease, color 180ms ease, background 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.sms-pb2__button-content {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-width: 0;
  max-width: 100%;
  transition: opacity 180ms ease, transform 240ms cubic-bezier(.2, .8, .2, 1);
}

.sms-pb2__button-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sms-pb2__cart-button::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 -60%;
  width: 42%;
  z-index: 3;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .28), transparent);
  transform: skewX(-20deg);
  transition: left 500ms ease;
}

.sms-pb2__cart-button::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(135deg, #176fb2 0%, #29a7ee 48%, #125f9d 100%);
  background-position: 0 50%;
  background-size: 100% 100%;
  opacity: 0;
  transform: translateZ(0);
  transition:
    opacity var(--sms-pb2-gradient-duration) var(--sms-pb2-gradient-easing),
    transform var(--sms-pb2-gradient-duration) var(--sms-pb2-gradient-easing),
    clip-path var(--sms-pb2-gradient-duration) var(--sms-pb2-gradient-easing),
    border-radius var(--sms-pb2-gradient-duration) var(--sms-pb2-gradient-easing);
  pointer-events: none;
}

.sms-pb2__cart-button:hover::after { opacity: 1; }
.sms-pb2-gradient-motion-none .sms-pb2__cart-button::after { transition: none; }
.sms-pb2-gradient-motion-slide .sms-pb2__cart-button::after { opacity: 1; transform: translateX(-102%); }
.sms-pb2-gradient-motion-slide .sms-pb2__cart-button:hover::after { transform: translateX(0); }
.sms-pb2-gradient-motion-slide-up .sms-pb2__cart-button::after { opacity: 1; transform: translateY(104%); }
.sms-pb2-gradient-motion-slide-up .sms-pb2__cart-button:hover::after { transform: translateY(0); }
.sms-pb2-gradient-motion-diagonal .sms-pb2__cart-button::after { opacity: 1; clip-path: polygon(0 100%, 0 100%, 0 100%, 0 100%); }
.sms-pb2-gradient-motion-diagonal .sms-pb2__cart-button:hover::after { clip-path: polygon(0 -45%, 145% 0, 100% 145%, -45% 100%); }
.sms-pb2-gradient-motion-zoom .sms-pb2__cart-button::after { transform: scale(.25); border-radius: 999px; }
.sms-pb2-gradient-motion-zoom .sms-pb2__cart-button:hover::after { transform: scale(1.35); }
.sms-pb2-gradient-motion-flow .sms-pb2__cart-button::after { background-size: 240% 240%; }
.sms-pb2-gradient-motion-flow .sms-pb2__cart-button:hover::after { animation: sms-pb2-gradient-flow calc(var(--sms-pb2-gradient-duration) + var(--sms-pb2-gradient-duration) + var(--sms-pb2-gradient-duration)) linear infinite; }
.sms-pb2-gradient-motion-aurora .sms-pb2__cart-button::after { background-size: 320% 320%; filter: saturate(1.16); }
.sms-pb2-gradient-motion-aurora .sms-pb2__cart-button:hover::after { animation: sms-pb2-gradient-aurora calc(var(--sms-pb2-gradient-duration) + var(--sms-pb2-gradient-duration) + var(--sms-pb2-gradient-duration) + var(--sms-pb2-gradient-duration) + var(--sms-pb2-gradient-duration)) ease-in-out infinite alternate; }
.sms-pb2-gradient-motion-spotlight .sms-pb2__cart-button::after { opacity: 1; border-radius: 999px; transform: scale(0); }
.sms-pb2-gradient-motion-spotlight .sms-pb2__cart-button:hover::after { border-radius: 14px; transform: scale(1.55); }
.sms-pb2.is-feedback-active .sms-pb2__cart-button::after { opacity: 0; animation: none; }

.sms-pb2__cart-button:hover {
  color: #fff;
  filter: saturate(1.08) brightness(1.02);
  transform: translateY(var(--sms-pb2-button-lift));
}

.sms-pb2__cart-button:hover::before { left: 125%; }
.sms-pb2__cart-button:active { transform: translateY(0); }
.sms-pb2__cart-button:disabled { filter: grayscale(.55); opacity: .62; cursor: not-allowed; transform: none; }
.sms-pb2__cart-button:disabled::before,
.sms-pb2__cart-button:disabled::after { opacity: 0 !important; animation: none !important; }
.sms-pb2.is-sold-out .sms-pb2__cart-button:disabled {
  color: #fff;
  background-color: #6b7280;
  background-image: linear-gradient(145deg, #87919e 0%, #66717e 55%, #505966 100%);
  border-color: #5e6874;
  box-shadow: inset 0 1px rgba(255, 255, 255, .2);
  filter: none;
  opacity: 1;
}
.sms-pb2.is-all-in-cart .sms-pb2__cart-button:disabled {
  color: #155b38;
  background-color: #e1f8eb;
  background-image: linear-gradient(145deg, #effcf5 0%, #d9f5e6 55%, #c7ebd7 100%);
  border-color: #83d2a6;
  box-shadow: inset 0 1px rgba(255, 255, 255, .72);
  filter: none;
  opacity: 1;
}
.sms-pb2.is-all-in-cart .sms-pb2__cart-button:disabled:hover,
.sms-pb2.is-all-in-cart .sms-pb2__cart-button:disabled:focus {
  color: #155b38 !important;
  background-color: #e1f8eb !important;
  background-image: linear-gradient(145deg, #effcf5 0%, #d9f5e6 55%, #c7ebd7 100%) !important;
  border-color: #83d2a6 !important;
  filter: none !important;
}
.sms-pb2.is-all-in-cart .sms-pb2__cart-button:disabled:hover .sms-pb2__button-label,
.sms-pb2.is-all-in-cart .sms-pb2__cart-button:disabled:hover .sms-pb2__button-icon,
.sms-pb2.is-all-in-cart .sms-pb2__cart-button:disabled:focus .sms-pb2__button-label,
.sms-pb2.is-all-in-cart .sms-pb2__cart-button:disabled:focus .sms-pb2__button-icon {
  color: #155b38 !important;
}
.sms-pb2.is-all-in-cart .sms-pb2__button-label {
  overflow: visible;
  font-size: clamp(11px, 2.4vw, 14px);
  line-height: 1.15;
  text-overflow: clip;
  white-space: normal;
}
.sms-pb2.is-all-in-cart .sms-pb2__button-icon {
  margin-inline-start: var(--sms-pb2-all-in-cart-icon-inset, 8px) !important;
}
.sms-pb2.is-sold-out .sms-pb2__quantity,
.sms-pb2.is-all-in-cart .sms-pb2__quantity { opacity: .5; }
.sms-pb2__cart-button.is-loading { cursor: wait; }
.sms-pb2__cart-button.is-loading .sms-pb2__button-icon { animation: sms-pb2-loading-spin 780ms linear infinite; }
.sms-pb2__cart-button.is-added { background: linear-gradient(180deg, #27b86b, #139454); border-color: #139454; }
.sms-pb2__cart-button--link { margin-top: auto; }

.sms-pb2__button-icon {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: var(--sms-pb2-cart-icon-size);
  height: var(--sms-pb2-cart-icon-size);
  color: inherit;
  line-height: 1;
  transition: color 180ms ease, opacity 180ms ease;
}

.sms-pb2__button-icon svg,
.sms-pb2__button-icon i { width: 100%; height: 100%; color: inherit; font-size: 100%; line-height: 1; fill: currentColor; }

.sms-pb2__feedback-visual {
  position: absolute;
  z-index: 4;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  color: #fff;
  opacity: 0;
  pointer-events: none;
}

.sms-pb2__feedback-check {
  width: 31px;
  height: 31px;
  padding: 5px;
  overflow: visible;
  background: rgba(255, 255, 255, .2);
  border-radius: 999px;
  filter: drop-shadow(0 3px 8px rgba(0, 0, 0, .15));
}

.sms-pb2__feedback-check path {
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.sms-pb2__feedback-particles,
.sms-pb2__feedback-particles i {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6px;
  height: 6px;
  pointer-events: none;
}

.sms-pb2__feedback-particles i {
  margin: -3px;
  background: #fff;
  border-radius: 999px;
  opacity: 0;
}

.sms-pb2__feedback-particles i:nth-child(1) { --sms-pb2-particle-x: 0px; --sms-pb2-particle-y: -42px; }
.sms-pb2__feedback-particles i:nth-child(2) { --sms-pb2-particle-x: 34px; --sms-pb2-particle-y: -28px; }
.sms-pb2__feedback-particles i:nth-child(3) { --sms-pb2-particle-x: 43px; --sms-pb2-particle-y: 0px; }
.sms-pb2__feedback-particles i:nth-child(4) { --sms-pb2-particle-x: 31px; --sms-pb2-particle-y: 29px; }
.sms-pb2__feedback-particles i:nth-child(5) { --sms-pb2-particle-x: 0px; --sms-pb2-particle-y: 40px; }
.sms-pb2__feedback-particles i:nth-child(6) { --sms-pb2-particle-x: -33px; --sms-pb2-particle-y: 27px; }
.sms-pb2__feedback-particles i:nth-child(7) { --sms-pb2-particle-x: -42px; --sms-pb2-particle-y: 0px; }
.sms-pb2__feedback-particles i:nth-child(8) { --sms-pb2-particle-x: -31px; --sms-pb2-particle-y: -29px; }

.sms-pb2__cart-count {
  position: relative;
  z-index: 8;
  display: inline-flex;
  flex: 0 0 var(--sms-pb2-count-size);
  align-items: center;
  justify-content: center;
  width: var(--sms-pb2-count-size);
  min-width: var(--sms-pb2-count-size);
  height: var(--sms-pb2-count-height);
  min-height: var(--sms-pb2-count-height);
  padding: 4px;
  color: #176fac;
  background: linear-gradient(180deg, #fff 0%, #edf7fe 100%);
  border: 1px solid #b8dbf5;
  border-radius: 14px;
  box-shadow: 0 6px 16px rgba(33, 121, 183, .1);
  font-size: 17px;
  font-weight: 850;
  line-height: 1;
  text-align: center;
  cursor: help;
  transition: color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.sms-pb2__cart-count::before {
  content: "";
  position: absolute;
  top: 8px;
  right: 8px;
  width: 6px;
  height: 6px;
  background: #9aa9b7;
  border: 2px solid #fff;
  border-radius: 999px;
}

.sms-pb2__cart-count.has-items::before { background: #19a566; }
.sms-pb2__cart-count:hover,
.sms-pb2__cart-count:focus-visible {
  color: var(--sms-pb2-accent-dark);
  border-color: var(--sms-pb2-accent);
  box-shadow: 0 9px 22px rgba(33, 121, 183, .16);
  transform: translateY(-1px);
}

.sms-pb2__notify-button {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: auto;
  min-width: 54px;
  height: var(--sms-pb2-action-height);
  min-height: var(--sms-pb2-action-height);
  margin: 0;
  padding: 8px 12px;
  color: #725009;
  background: linear-gradient(135deg, #fff9dd 0%, #ffedaa 52%, #ffe184 100%);
  border: 1px solid #f2cf62;
  border-radius: 14px;
  box-shadow: 0 5px 14px rgba(161, 119, 21, .1);
  font-size: 14px;
  font-weight: 780;
  line-height: 1.15;
  text-align: center;
  transition: color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease, opacity 180ms ease;
}

.sms-pb2__notify-button[hidden] {
  display: none !important;
}

.sms-pb2__notify-button:hover {
  color: #5e3f00;
  border-color: #e7b932;
  box-shadow: 0 8px 20px rgba(161, 119, 21, .17);
  transform: translateY(-1px);
}

.sms-pb2__notify-button.is-active {
  color: #13643d;
  background: linear-gradient(135deg, #eafff2 0%, #c9f6dc 100%);
  border-color: #74d5a0;
}

.sms-pb2__notify-button.is-loading { opacity: .58; cursor: wait; }
.sms-pb2__notify-icon { display: inline-flex; width: var(--sms-pb2-notify-icon-size); height: var(--sms-pb2-notify-icon-size); flex: 0 0 auto; align-items: center; justify-content: center; color: inherit; line-height: 1; }
.sms-pb2__notify-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.sms-pb2__notify-icon i { width: 100%; height: 100%; color: inherit; font-size: 100%; line-height: 1; }
.sms-pb2__notify-icon--custom svg { fill: currentColor; stroke: none; }
.sms-pb2__notify-button [data-notify-label] {
  max-width: 88px;
  font-size: 12px;
  line-height: 1.1;
  white-space: normal;
}

.sms-pb2.sms-pb2--notify-mode-icon .sms-pb2__notify-button {
  width: var(--sms-pb2-notify-size);
  min-width: var(--sms-pb2-notify-size);
  height: var(--sms-pb2-notify-size);
  min-height: var(--sms-pb2-notify-size);
  padding: 0;
  border-radius: 999px;
}

.sms-pb2.sms-pb2--notify-mode-icon .sms-pb2__notify-button [data-notify-label] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.sms-pb2__icon-tooltip {
  position: absolute;
  z-index: 40;
  display: block;
  width: max-content;
  max-width: min(var(--sms-pb2-tooltip-max-width), 76vw);
  padding: 9px 13px;
  color: #fff;
  background-color: var(--sms-pb2-tooltip-bg);
  background-image: linear-gradient(135deg, color-mix(in srgb, var(--sms-pb2-tooltip-bg) 84%, white) 0%, var(--sms-pb2-tooltip-bg) 72%);
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 12px;
  box-shadow: 0 12px 30px rgba(15, 23, 42, .24), inset 0 1px rgba(255, 255, 255, .08);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .005em;
  text-align: center;
  text-transform: none;
  white-space: normal;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform-origin: center;
  will-change: opacity, transform;
  transition:
    opacity var(--sms-pb2-tooltip-duration) ease,
    transform var(--sms-pb2-tooltip-duration) cubic-bezier(.2, .8, .2, 1),
    visibility 0s linear var(--sms-pb2-tooltip-duration);
}

.sms-pb2__icon-tooltip--notify {
  right: 0;
  bottom: calc(100% + var(--sms-pb2-tooltip-offset));
  transform: translate3d(0, 7px, 0) scale(.96);
  transform-origin: calc(100% - 18px) 100%;
}

.sms-pb2__icon-tooltip--cart {
  right: 0;
  bottom: calc(100% + var(--sms-pb2-tooltip-offset));
  transform: translate3d(0, 7px, 0) scale(.96);
  transform-origin: calc(100% - 18px) 100%;
}

.sms-pb2__icon-tooltip--wishlist {
  top: calc(100% + var(--sms-pb2-tooltip-offset));
  right: 0;
  transform: translate3d(0, -7px, 0) scale(.96);
  transform-origin: calc(100% - 18px) 0;
}

.sms-pb2__icon-tooltip::after {
  content: "";
  position: absolute;
  right: 14px;
  border: var(--sms-pb2-tooltip-arrow-size) solid transparent;
}

.sms-pb2__icon-tooltip--notify::after,
.sms-pb2__icon-tooltip--cart::after {
  top: 100%;
  border-top-color: var(--sms-pb2-tooltip-bg);
}

.sms-pb2__icon-tooltip--wishlist::after {
  bottom: 100%;
  border-bottom-color: var(--sms-pb2-tooltip-bg);
}

.sms-pb2__notify-button:hover > .sms-pb2__icon-tooltip,
.sms-pb2__wishlist:hover > .sms-pb2__icon-tooltip,
.sms-pb2__cart-count:hover > .sms-pb2__icon-tooltip {
  opacity: 1;
  visibility: visible;
  transform: translate3d(0, 0, 0) scale(1);
  transition-delay: 0s;
}

.sms-pb2-tooltip-motion-fade .sms-pb2__icon-tooltip,
.sms-pb2__icon-tooltip--motion-fade {
  transform: none;
}
.sms-pb2-tooltip-motion-pop .sms-pb2__icon-tooltip--notify,
.sms-pb2-tooltip-motion-pop .sms-pb2__icon-tooltip--wishlist,
.sms-pb2__icon-tooltip--motion-pop {
  transform: translate3d(0, 0, 0) scale(.68);
}
.sms-pb2-tooltip-motion-slide .sms-pb2__icon-tooltip--notify,
.sms-pb2-tooltip-motion-slide .sms-pb2__icon-tooltip--wishlist,
.sms-pb2__icon-tooltip--motion-slide {
  transform: translate3d(22px, 0, 0) scale(1);
}

.sms-pb2-tooltip-motion-float .sms-pb2__notify-button:hover > .sms-pb2__icon-tooltip,
.sms-pb2__notify-button:hover > .sms-pb2__icon-tooltip--motion-float,
.sms-pb2-tooltip-motion-float .sms-pb2__cart-count:hover > .sms-pb2__icon-tooltip,
.sms-pb2__cart-count:hover > .sms-pb2__icon-tooltip--motion-float {
  animation: sms-pb2-tooltip-float-up var(--sms-pb2-tooltip-duration) cubic-bezier(.2, .8, .2, 1) both;
}
.sms-pb2-tooltip-motion-float .sms-pb2__wishlist:hover > .sms-pb2__icon-tooltip,
.sms-pb2__wishlist:hover > .sms-pb2__icon-tooltip--motion-float {
  animation: sms-pb2-tooltip-float-down var(--sms-pb2-tooltip-duration) cubic-bezier(.2, .8, .2, 1) both;
}
.sms-pb2-tooltip-motion-pop .sms-pb2__notify-button:hover > .sms-pb2__icon-tooltip,
.sms-pb2-tooltip-motion-pop .sms-pb2__wishlist:hover > .sms-pb2__icon-tooltip,
.sms-pb2-tooltip-motion-pop .sms-pb2__cart-count:hover > .sms-pb2__icon-tooltip,
.sms-pb2__notify-button:hover > .sms-pb2__icon-tooltip--motion-pop,
.sms-pb2__wishlist:hover > .sms-pb2__icon-tooltip--motion-pop,
.sms-pb2__cart-count:hover > .sms-pb2__icon-tooltip--motion-pop {
  animation: sms-pb2-tooltip-pop var(--sms-pb2-tooltip-duration) cubic-bezier(.2, .8, .2, 1) both;
}
.sms-pb2-tooltip-motion-slide .sms-pb2__notify-button:hover > .sms-pb2__icon-tooltip,
.sms-pb2-tooltip-motion-slide .sms-pb2__wishlist:hover > .sms-pb2__icon-tooltip,
.sms-pb2-tooltip-motion-slide .sms-pb2__cart-count:hover > .sms-pb2__icon-tooltip,
.sms-pb2__notify-button:hover > .sms-pb2__icon-tooltip--motion-slide,
.sms-pb2__wishlist:hover > .sms-pb2__icon-tooltip--motion-slide,
.sms-pb2__cart-count:hover > .sms-pb2__icon-tooltip--motion-slide {
  animation: sms-pb2-tooltip-slide var(--sms-pb2-tooltip-duration) cubic-bezier(.2, .8, .2, 1) both;
}
.sms-pb2-tooltip-motion-fade .sms-pb2__notify-button:hover > .sms-pb2__icon-tooltip,
.sms-pb2-tooltip-motion-fade .sms-pb2__wishlist:hover > .sms-pb2__icon-tooltip,
.sms-pb2-tooltip-motion-fade .sms-pb2__cart-count:hover > .sms-pb2__icon-tooltip,
.sms-pb2__notify-button:hover > .sms-pb2__icon-tooltip--motion-fade,
.sms-pb2__wishlist:hover > .sms-pb2__icon-tooltip--motion-fade,
.sms-pb2__cart-count:hover > .sms-pb2__icon-tooltip--motion-fade {
  animation: sms-pb2-tooltip-fade var(--sms-pb2-tooltip-duration) ease both;
}

@keyframes sms-pb2-tooltip-float-up {
  0% { opacity: 0; transform: translate3d(0, 10px, 0) scale(.96); }
  68% { opacity: 1; transform: translate3d(0, -2px, 0) scale(1); }
  100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}
@keyframes sms-pb2-tooltip-float-down {
  0% { opacity: 0; transform: translate3d(0, -10px, 0) scale(.96); }
  68% { opacity: 1; transform: translate3d(0, 2px, 0) scale(1); }
  100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}
@keyframes sms-pb2-tooltip-pop {
  0% { opacity: 0; transform: scale(.68); }
  66% { opacity: 1; transform: scale(1.07); }
  100% { opacity: 1; transform: scale(1); }
}
@keyframes sms-pb2-tooltip-slide {
  0% { opacity: 0; transform: translate3d(22px, 0, 0); }
  72% { opacity: 1; transform: translate3d(-2px, 0, 0); }
  100% { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes sms-pb2-tooltip-fade {
  from { opacity: 0; transform: none; }
  to { opacity: 1; transform: none; }
}

.sms-pb2.is-sold-out .sms-pb2__cart-count,
.sms-pb2.is-sold-out .sms-pb2__cart-count.has-items {
  display: none !important;
}

body.sms-pb2-notify-open { overflow: hidden; }
.sms-pb2-notify-modal {
  position: fixed;
  z-index: 1000002;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(10, 19, 31, .64);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
  opacity: 0;
  transition: opacity 220ms ease;
}

.sms-pb2-notify-modal.is-open { opacity: 1; }
.sms-pb2-notify-modal__dialog {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 13px;
  width: min(100%, 520px);
  max-height: calc(100vh - 36px);
  margin: 0;
  padding: 28px;
  overflow-y: auto;
  color: #182235;
  background: linear-gradient(180deg, #fff 0%, #f8fbfe 100%);
  border: 1px solid rgba(255, 255, 255, .76);
  border-radius: 22px;
  box-shadow: 0 26px 80px rgba(7, 15, 27, .32);
  font-family: inherit;
  transform: translateY(16px) scale(.975);
  transition: transform 260ms cubic-bezier(.2, .85, .25, 1);
}

.sms-pb2-notify-modal.is-open .sms-pb2-notify-modal__dialog { transform: translateY(0) scale(1); }
.sms-pb2-notify-modal__dialog h3 { margin: 0; color: #182235; font-size: clamp(22px, 4vw, 30px); line-height: 1.12; }
.sms-pb2-notify-modal__logo { display: block; width: auto; max-width: 160px; max-height: 52px; margin: 0 auto 2px; object-fit: contain; }
.sms-pb2-notify-modal__kicker { width: fit-content; padding: 5px 9px; color: #785100; background: #fff2bd; border-radius: 999px; font-size: 12px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.sms-pb2-notify-modal__intro { margin: 0; color: #657185; font-size: 14px; line-height: 1.5; }
.sms-pb2-notify-modal__product { display: block; padding: 10px 12px; color: #176fac; background: #eef8ff; border: 1px solid #cbe7f9; border-radius: 11px; font-size: 14px; }
.sms-pb2-notify-modal__close { position: absolute; top: 12px; right: 12px; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; padding: 0; color: #526074; background: #f0f4f7; border: 0; border-radius: 999px; font-size: 25px; line-height: 1; }
.sms-pb2-notify-modal__field { display: flex; flex-direction: column; gap: 6px; color: #344054; font-size: 13px; font-weight: 750; }
.sms-pb2-notify-modal__field input { width: 100%; min-height: 48px; margin: 0; padding: 10px 12px; color: #182235; background: #fff; border: 1px solid #cfd9e3; border-radius: 11px; box-shadow: none; font: inherit; }
.sms-pb2-notify-modal__field input:focus { border-color: #2389d7; outline: 3px solid rgba(35, 137, 215, .16); outline-offset: 1px; }
.sms-pb2-notify-modal__consent { display: grid; grid-template-columns: 20px 1fr; align-items: start; gap: 9px; color: #526074; font-size: 12px; line-height: 1.45; }
.sms-pb2-notify-modal__consent input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: #2389d7; }
.sms-pb2-notify-modal__links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: -6px; font-size: 12px; }
.sms-pb2-notify-modal__links a { color: #176fac; text-decoration: underline; text-underline-offset: 2px; }
.sms-pb2-notify-modal__error:empty { display: none; }
.sms-pb2-notify-modal__error { padding: 9px 11px; color: #9f1f17; background: #fff0ef; border: 1px solid #f5bbb6; border-radius: 9px; font-size: 12px; font-weight: 700; }
.sms-pb2-notify-modal__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 3px; }
.sms-pb2-notify-modal__actions button { appearance: none; min-height: 42px; margin: 0; padding: 9px 14px; border-radius: 10px; box-shadow: none; font-family: inherit; font-size: 13px; font-weight: 750; line-height: 1.1; text-transform: none; }
.sms-pb2-notify-modal__primary { color: #fff; background: linear-gradient(180deg, #43a0e6, #1978bd); border: 1px solid #1978bd; }
.sms-pb2-notify-modal__secondary { color: #344054; background: #eef2f5; border: 1px solid #d6dde4; }
.sms-pb2-notify-modal__remove { color: #a12820; background: #fff0ef; border: 1px solid #f0b7b2; }

.sms-pb2--feedback-burst.is-feedback-active .sms-pb2__button-content { opacity: 0; transform: scale(.88); }
.sms-pb2--feedback-burst.is-feedback-active .sms-pb2__feedback-visual,
.sms-pb2--feedback-slide.is-feedback-active .sms-pb2__feedback-visual,
.sms-pb2--feedback-minimal.is-feedback-active .sms-pb2__feedback-visual { opacity: 1; }

.sms-pb2--feedback-burst.is-feedback-active .sms-pb2__cart-button,
.sms-pb2--feedback-pulse.is-feedback-active .sms-pb2__cart-button {
  animation: sms-pb2-feedback-pulse 620ms cubic-bezier(.2, .9, .25, 1) both;
}

.sms-pb2--feedback-burst.is-feedback-active .sms-pb2__feedback-check {
  animation: sms-pb2-feedback-check 620ms cubic-bezier(.16, 1.3, .3, 1) both;
}

.sms-pb2--feedback-burst.is-feedback-active .sms-pb2__feedback-particles i {
  animation: sms-pb2-feedback-particle 720ms cubic-bezier(.2, .8, .25, 1) both;
}

.sms-pb2--feedback-burst.is-feedback-active .sms-pb2__feedback-particles i:nth-child(2n) { animation-delay: 45ms; }
.sms-pb2--feedback-burst.is-feedback-active .sms-pb2__feedback-particles i:nth-child(3n) { animation-delay: 80ms; }
.sms-pb2--feedback-pulse.is-feedback-active .sms-pb2__button-content,
.sms-pb2--feedback-ring.is-feedback-active .sms-pb2__button-content { opacity: 1; transform: none; }
.sms-pb2--feedback-pulse.is-feedback-active .sms-pb2__button-icon { animation: sms-pb2-feedback-cart-hop 720ms cubic-bezier(.2, .9, .2, 1) both; }
.sms-pb2--feedback-pulse.is-feedback-active .sms-pb2__feedback-visual,
.sms-pb2--feedback-ring.is-feedback-active .sms-pb2__feedback-visual { opacity: 0; }

.sms-pb2--feedback-slide .sms-pb2__feedback-visual { justify-content: flex-start; padding-left: 24px; background: linear-gradient(90deg, #10a45d, #23be70); transform: translateX(-102%); }
.sms-pb2--feedback-slide.is-feedback-active .sms-pb2__feedback-visual { animation: sms-pb2-feedback-slide var(--sms-pb2-feedback-duration) cubic-bezier(.2, .8, .2, 1) both; }
.sms-pb2--feedback-slide.is-feedback-active .sms-pb2__button-content { opacity: 1; transform: translateX(14px); }

.sms-pb2--feedback-minimal.is-feedback-active .sms-pb2__feedback-check { animation: sms-pb2-feedback-check 520ms ease both; }
.sms-pb2--feedback-ring.is-feedback-active .sms-pb2__cart-count { animation: sms-pb2-feedback-ring 900ms cubic-bezier(.2, .9, .2, 1) both; }
.sms-pb2--feedback-minimal .sms-pb2__feedback-visual { inset: 0 12px 0 auto; width: 32px; }
.sms-pb2--feedback-minimal .sms-pb2__feedback-check { width: 26px; height: 26px; padding: 4px; background: rgba(255, 255, 255, .24); }
.sms-pb2--feedback-minimal.is-feedback-active .sms-pb2__button-content { opacity: 1; transform: translateX(-13px); }
.sms-pb2--feedback-minimal .sms-pb2__feedback-particles,
.sms-pb2--feedback-ring .sms-pb2__feedback-particles,
.sms-pb2--feedback-pulse .sms-pb2__feedback-particles,
.sms-pb2--feedback-slide .sms-pb2__feedback-particles { display: none; }

@keyframes sms-pb2-feedback-pulse {
  0%, 100% { transform: translateY(0) scale(1); box-shadow: 0 8px 18px rgba(20, 116, 189, .22); }
  42% { transform: translateY(-2px) scale(1.018); box-shadow: 0 12px 30px rgba(20, 168, 94, .34); }
}

@keyframes sms-pb2-feedback-cart-hop {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0); }
  32% { transform: translate3d(5px, -5px, 0) rotate(-8deg) scale(1.16); }
  58% { transform: translate3d(-2px, 1px, 0) rotate(4deg) scale(.96); }
}

@keyframes sms-pb2-feedback-check {
  0% { opacity: 0; transform: scale(.3) rotate(-15deg); }
  65% { opacity: 1; transform: scale(1.16) rotate(2deg); }
  100% { opacity: 1; transform: scale(1) rotate(0); }
}

@keyframes sms-pb2-feedback-particle {
  0% { opacity: 0; transform: translate(0, 0) scale(.25); }
  28% { opacity: 1; }
  100% { opacity: 0; transform: translate(var(--sms-pb2-particle-x), var(--sms-pb2-particle-y)) scale(1); }
}

@keyframes sms-pb2-feedback-slide {
  0% { opacity: 1; transform: translateX(-102%); }
  18%, 76% { opacity: 1; transform: translateX(0); }
  100% { opacity: 1; transform: translateX(102%); }
}

@keyframes sms-pb2-feedback-ring {
  0% { box-shadow: 0 0 0 0 rgba(25, 165, 102, .52); transform: scale(1); }
  45% { box-shadow: 0 0 0 11px rgba(25, 165, 102, 0); transform: scale(1.09); }
  100% { box-shadow: 0 6px 16px rgba(33, 121, 183, .1); transform: scale(1); }
}

@keyframes sms-pb2-loading-spin {
  to { transform: rotate(360deg); }
}

@keyframes sms-pb2-gradient-flow {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

@keyframes sms-pb2-gradient-aurora {
  0% { background-position: 0% 20%; filter: saturate(1.04) hue-rotate(0deg); }
  50% { background-position: 100% 80%; filter: saturate(1.22) hue-rotate(8deg); }
  100% { background-position: 20% 100%; filter: saturate(1.1) hue-rotate(-5deg); }
}

@keyframes sms-pb2-qty-soft-tap {
  0%, 100% { transform: scale(1); }
  42% { transform: scale(.83); }
  72% { transform: scale(1.06); }
}

@keyframes sms-pb2-qty-subtle-button {
  0%, 100% { opacity: 1; transform: scale(1); }
  48% { opacity: .78; transform: scale(.96); }
}

@keyframes sms-pb2-qty-subtle-number {
  0%, 100% { opacity: 1; transform: translateY(0); }
  48% { opacity: .62; transform: translateY(-1px); }
}

@keyframes sms-pb2-qty-fade-button {
  0%, 100% { opacity: 1; }
  48% { opacity: .44; }
}

@keyframes sms-pb2-qty-fade-number {
  0%, 100% { opacity: 1; }
  45% { opacity: .28; }
}

@keyframes sms-pb2-qty-drift-button {
  0%, 100% { opacity: 1; transform: translateY(0); }
  48% { opacity: .72; transform: translateY(1px); }
}

@keyframes sms-pb2-qty-drift-up {
  0% { opacity: .45; transform: translateY(2px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes sms-pb2-qty-drift-down {
  0% { opacity: .45; transform: translateY(-2px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes sms-pb2-qty-subtle-limit-shell {
  0%, 100% { transform: translateX(0); border-color: var(--sms-pb2-qty-shell-border); }
  40% { transform: translateX(-1.5px); border-color: #f3a66d; }
  70% { transform: translateX(1.5px); border-color: #f3a66d; }
}

@keyframes sms-pb2-qty-subtle-limit-button {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: .62; transform: scale(.95); }
}

@keyframes sms-pb2-qty-fade-limit-shell {
  0%, 100% { border-color: var(--sms-pb2-qty-shell-border); }
  50% { border-color: #f3a66d; }
}

@keyframes sms-pb2-qty-drift-limit-shell {
  0%, 100% { transform: translateX(0); border-color: var(--sms-pb2-qty-shell-border); }
  50% { transform: translateX(1px); border-color: #f3a66d; }
}

@keyframes sms-pb2-qty-soft-number {
  0%, 100% { opacity: 1; transform: scale(1); }
  38% { opacity: .5; transform: scale(.88); }
  72% { opacity: 1; transform: scale(1.09); }
}

@keyframes sms-pb2-qty-bounce-button {
  0%, 100% { transform: translateY(0) scale(1); }
  28% { transform: translateY(3px) scale(.86); }
  56% { transform: translateY(-4px) scale(1.12); }
  78% { transform: translateY(1px) scale(.97); }
}

@keyframes sms-pb2-qty-bounce-number {
  0%, 100% { transform: translateY(0) scale(1); }
  35% { transform: translateY(-7px) scale(1.12); }
  62% { transform: translateY(3px) scale(.96); }
}

@keyframes sms-pb2-qty-ripple-button {
  0%, 100% { transform: scale(1); }
  45% { transform: scale(.92); }
}

@keyframes sms-pb2-qty-ripple-wave {
  0% { opacity: .28; transform: translate(-50%, -50%) scale(0); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(7); }
}

@keyframes sms-pb2-qty-ripple-number {
  0%, 100% { filter: brightness(1); }
  48% { filter: brightness(1.18); }
}

@keyframes sms-pb2-qty-flip-button {
  0%, 100% { transform: rotate(0deg) scale(1); }
  46% { transform: rotate(12deg) scale(.86); }
}

@keyframes sms-pb2-qty-flip-up {
  0% { opacity: .2; transform: perspective(180px) rotateX(-80deg); }
  70% { opacity: 1; transform: perspective(180px) rotateX(10deg); }
  100% { transform: perspective(180px) rotateX(0); }
}

@keyframes sms-pb2-qty-flip-down {
  0% { opacity: .2; transform: perspective(180px) rotateX(80deg); }
  70% { opacity: 1; transform: perspective(180px) rotateX(-10deg); }
  100% { transform: perspective(180px) rotateX(0); }
}

@keyframes sms-pb2-qty-glow-button {
  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, currentColor 0%, transparent); transform: scale(1); }
  45% { box-shadow: 0 0 0 7px color-mix(in srgb, currentColor 18%, transparent); transform: scale(.91); }
}

@keyframes sms-pb2-qty-glow-number {
  0%, 100% { box-shadow: inset 0 0 0 0 color-mix(in srgb, var(--sms-pb2-accent) 0%, transparent); }
  48% { box-shadow: inset 0 0 0 3px color-mix(in srgb, var(--sms-pb2-accent) 30%, transparent), 0 0 17px color-mix(in srgb, var(--sms-pb2-accent) 22%, transparent); }
}

@keyframes sms-pb2-qty-spring-button {
  0%, 100% { transform: scale(1); }
  22% { transform: scale(.72); }
  48% { transform: scale(1.2); }
  67% { transform: scale(.91); }
  84% { transform: scale(1.05); }
}

@keyframes sms-pb2-qty-spring-number {
  0%, 100% { transform: scaleX(1) scaleY(1); }
  28% { transform: scaleX(1.18) scaleY(.82); }
  55% { transform: scaleX(.9) scaleY(1.14); }
  76% { transform: scaleX(1.05) scaleY(.96); }
}

@keyframes sms-pb2-qty-limit-shell {
  0%, 100% { transform: translateX(0); border-color: var(--sms-pb2-qty-shell-border); }
  18%, 54% { transform: translateX(-4px); border-color: #fb923c; }
  36%, 72% { transform: translateX(4px); border-color: #fb923c; }
}

@keyframes sms-pb2-qty-limit-button {
  0%, 100% { transform: translateX(0) scale(1); }
  22%, 62% { transform: translateX(-3px) scale(.9); }
  42%, 82% { transform: translateX(3px) scale(.9); }
}

.sms-pb2__status {
  position: absolute;
  z-index: 25;
  right: 12px;
  bottom: 76px;
  left: 12px;
  width: auto;
  min-height: 0;
  padding: 9px 12px;
  color: #fff;
  background: #182235;
  border-radius: 10px;
  box-shadow: 0 9px 24px rgba(15, 23, 42, .2);
  font-size: 13px;
  font-weight: 650;
  line-height: 1.3;
  text-align: center;
  pointer-events: none;
}

.sms-pb2__status:empty { display: none; }
.sms-pb2__status.is-success {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.sms-pb2__status.is-error { color: #fff; background: #b42318; }

/* Layout shield: keeps common theme button/field rules from changing the component geometry. */
.sms-pb2 .sms-pb2__purchase {
  margin-top: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.sms-pb2 .sms-pb2__arrow,
.sms-pb2 .sms-pb2__wishlist,
.sms-pb2 .sms-pb2__option,
.sms-pb2 .sms-pb2__qty-button,
.sms-pb2 .sms-pb2__notify-button,
.sms-pb2 .sms-pb2__cart-button {
  appearance: none;
  -webkit-appearance: none;
  float: none;
  margin: 0;
  font-family: inherit;
  line-height: 1;
  text-indent: 0;
  text-decoration: none;
  white-space: normal;
  vertical-align: middle;
}

.sms-pb2 .sms-pb2__cart-button {
  display: inline-flex;
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  margin-right: 0;
  margin-left: 0;
  height: var(--sms-pb2-action-height);
  min-height: var(--sms-pb2-action-height);
  padding: 7px 14px;
  color: #fff;
  background-color: #2389d7;
  background-image: linear-gradient(180deg, #55a8ed 0%, #2389d7 52%, #1674b9 100%);
  border: 1px solid #228bd9;
  border-radius: 14px;
  box-shadow: 0 8px 18px rgba(20, 116, 189, .22), inset 0 1px rgba(255, 255, 255, .32);
  align-items: center;
  justify-content: center;
}

.sms-pb2 .sms-pb2__cart-button--link { width: 100%; }

.sms-pb2 .sms-pb2__notify-button {
  display: inline-flex;
  flex: 0 0 auto;
  width: auto;
  min-width: 54px;
  height: var(--sms-pb2-action-height);
  min-height: var(--sms-pb2-action-height);
  margin: 0;
  padding: 8px 12px;
  color: #725009;
  background-color: #fff1b3;
  background-image: linear-gradient(135deg, #fff9dd 0%, #ffedaa 52%, #ffe184 100%);
  border: 1px solid #f2cf62;
  border-radius: 14px;
  box-shadow: 0 5px 14px rgba(161, 119, 21, .1);
}

.sms-pb2 .sms-pb2__notify-button[hidden] { display: none !important; }

.sms-pb2 .sms-pb2__notify-button.is-active {
  color: #13643d;
  background-color: #d8f8e5;
  background-image: linear-gradient(135deg, #eafff2 0%, #c9f6dc 100%);
  border-color: #74d5a0;
}

.sms-pb2 .sms-pb2__arrow,
.sms-pb2 .sms-pb2__wishlist,
.sms-pb2 .sms-pb2__dot,
.sms-pb2 .sms-pb2__option {
  background-image: none !important;
  text-shadow: none !important;
}

.sms-pb2 .sms-pb2__arrow,
.sms-pb2 .sms-pb2__wishlist,
.sms-pb2 .sms-pb2__dot { border-radius: 999px !important; }

.sms-pb2 .sms-pb2__arrow {
  padding: 0;
  color: #58a6df;
  background-color: rgba(255, 255, 255, .44);
  border: 1px solid transparent;
  box-shadow: none;
}

.sms-pb2 .sms-pb2__arrow:hover {
  color: var(--sms-pb2-orange);
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

.sms-pb2 .sms-pb2__wishlist {
  padding: 8px;
  color: #768291;
  background-color: rgba(255, 255, 255, .68);
  border: 0;
  box-shadow: none;
}

.sms-pb2 .sms-pb2__wishlist.is-active { color: var(--sms-pb2-orange); }

.sms-pb2 .sms-pb2__dot {
  width: var(--sms-pb2-dot-size);
  height: var(--sms-pb2-dot-size);
  min-width: 0;
  min-height: 0;
  padding: 0;
  background-color: #65a9df;
  border: 0;
  box-shadow: none;
}

.sms-pb2 .sms-pb2__dot.is-active { background-color: var(--sms-pb2-orange); }

.sms-pb2 .sms-pb2__option {
  padding: 6px 10px;
  color: #263244;
  background-color: #fff;
  border: 1px solid #d9e0e8;
  border-radius: 18px;
  box-shadow: 0 1px 2px rgba(24, 34, 53, .04);
}

.sms-pb2 .sms-pb2__option.is-selected {
  color: #176daa;
  background-color: #eef8ff;
  border-color: var(--sms-pb2-accent);
}

.sms-pb2 .sms-pb2__option.is-visual {
  width: var(--sms-pb2-swatch-size);
  height: var(--sms-pb2-swatch-size);
  min-width: var(--sms-pb2-swatch-size);
  min-height: var(--sms-pb2-swatch-size);
  padding: 3px;
  border-radius: 999px;
}

.sms-pb2 .sms-pb2__cart-button.is-added {
  background-color: #139454;
  background-image: linear-gradient(180deg, #27b86b, #139454);
  border-color: #139454;
}

.sms-pb2 .added_to_cart.wc-forward { display: none !important; }

.sms-pb2 .sms-pb2__qty-input,
.sms-pb2 .sms-pb2__attribute-select {
  appearance: none;
  -webkit-appearance: none;
  float: none;
  max-width: 100%;
  line-height: 1.2;
  text-indent: 0;
}

.sms-pb2 .sms-pb2__slide-image {
  display: block;
  width: auto;
  height: auto;
  max-width: var(--sms-pb2-image-width);
  max-height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  box-shadow: none;
}

.sms-pb2 .sms-pb2__title,
.sms-pb2 .sms-pb2__price,
.sms-pb2 .sms-pb2__excerpt p {
  margin-top: 0;
  margin-bottom: 0;
}

.sms-pb2 .sms-pb2__option {
  display: inline-flex;
  margin: 0;
  min-width: 34px;
  min-height: 34px;
  align-items: center;
  justify-content: center;
}

.sms-pb2 .sms-pb2__qty-button {
  display: inline-flex;
  width: var(--sms-pb2-qty-height);
  height: var(--sms-pb2-qty-height);
  margin: 0;
  padding: 0;
  align-items: center;
  justify-content: center;
  text-shadow: none !important;
}

.sms-pb2 .sms-pb2__qty-button--minus {
  font-size: var(--sms-pb2-qty-minus-size) !important;
}

.sms-pb2 .sms-pb2__qty-button--plus {
  font-size: var(--sms-pb2-qty-plus-size) !important;
}

.sms-pb2 .sms-pb2__qty-input {
  width: var(--sms-pb2-qty-width);
  height: var(--sms-pb2-qty-height);
  margin: 0;
}

.sms-pb2 .sms-pb2__attribute-select {
  display: block;
  width: 100%;
  margin: 0;
}

/* Preset Wishlist: le classi possono trovarsi sul widget Elementor o sulla card shortcode. */
.sms-pb2-wishlist-preset-soft .sms-pb2__wishlist,
.sms-pb2 .sms-pb2__wishlist--preset-soft {
  color: #768291;
  background-color: rgba(255, 255, 255, .78);
  border: 0;
  box-shadow: 0 5px 16px rgba(27, 45, 70, .08);
}
.sms-pb2-wishlist-preset-outline .sms-pb2__wishlist,
.sms-pb2 .sms-pb2__wishlist--preset-outline {
  color: #68778a;
  background-color: rgba(255, 255, 255, .2);
  border: 1px solid #aebbc8;
  box-shadow: none;
}
.sms-pb2-wishlist-preset-glass .sms-pb2__wishlist,
.sms-pb2 .sms-pb2__wishlist--preset-glass {
  color: #53677c;
  background-color: rgba(255, 255, 255, .4);
  border: 1px solid rgba(255, 255, 255, .78);
  box-shadow: 0 7px 22px rgba(29, 61, 91, .12), inset 0 1px rgba(255, 255, 255, .72);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.sms-pb2-wishlist-preset-dark .sms-pb2__wishlist,
.sms-pb2 .sms-pb2__wishlist--preset-dark {
  color: #dbe8f3;
  background-color: #1d2939;
  border: 1px solid #344054;
  box-shadow: 0 7px 18px rgba(16, 24, 40, .2);
}
.sms-pb2-wishlist-preset-gradient .sms-pb2__wishlist,
.sms-pb2 .sms-pb2__wishlist--preset-gradient {
  color: #fff;
  background-color: #667eea;
  background-image: linear-gradient(135deg, #66a6ff 0%, #7b61ff 55%, #a855f7 100%) !important;
  border: 1px solid rgba(91, 72, 220, .55);
  box-shadow: 0 7px 20px rgba(101, 87, 225, .24);
}
.sms-pb2-wishlist-preset-minimal .sms-pb2__wishlist,
.sms-pb2 .sms-pb2__wishlist--preset-minimal {
  color: #748294;
  background-color: transparent;
  border: 0;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Modalita predefinita: soltanto icona, nessun cerchio o riquadro anche in hover. */
.sms-pb2.sms-pb2-wishlist-background-none .sms-pb2__wishlist,
.sms-pb2__wishlist--background-none {
  background-color: transparent !important;
  background-image: none !important;
  border-color: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.sms-pb2.sms-pb2-wishlist-background-none .sms-pb2__wishlist:hover,
.sms-pb2__wishlist--background-none:hover {
  color: var(--sms-pb2-accent);
  background-color: transparent !important;
  background-image: none !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

/* Ogni preset grafico mantiene un hover della stessa famiglia. */
.sms-pb2-wishlist-preset-soft .sms-pb2__wishlist:hover,
.sms-pb2__wishlist--preset-soft:hover { color: #4f6074; background-color: #fff; box-shadow: 0 8px 20px rgba(27, 45, 70, .14); }
.sms-pb2-wishlist-preset-outline .sms-pb2__wishlist:hover,
.sms-pb2__wishlist--preset-outline:hover { color: #2389d7; background-color: rgba(238, 248, 255, .72); border-color: #65afe5; }
.sms-pb2-wishlist-preset-glass .sms-pb2__wishlist:hover,
.sms-pb2__wishlist--preset-glass:hover { color: #2f668b; background-color: rgba(255, 255, 255, .62); border-color: #fff; box-shadow: 0 10px 25px rgba(29, 61, 91, .18); }
.sms-pb2-wishlist-preset-dark .sms-pb2__wishlist:hover,
.sms-pb2__wishlist--preset-dark:hover { color: #fff; background-color: #29394e; border-color: #4b6079; box-shadow: 0 9px 22px rgba(16, 24, 40, .28); }
.sms-pb2-wishlist-preset-gradient .sms-pb2__wishlist:hover,
.sms-pb2__wishlist--preset-gradient:hover { color: #fff; background-image: linear-gradient(135deg, #4897ff 0%, #7148f5 48%, #c026d3 100%) !important; filter: saturate(1.12) brightness(1.06); }
.sms-pb2-wishlist-preset-minimal .sms-pb2__wishlist:hover,
.sms-pb2__wishlist--preset-minimal:hover { color: var(--sms-pb2-accent); background-color: transparent; box-shadow: none; }
.sms-pb2 .sms-pb2__wishlist.sms-pb2__wishlist--background-none,
.sms-pb2 .sms-pb2__wishlist.sms-pb2__wishlist--background-none:hover {
  background-color: transparent !important;
  background-image: none !important;
  border-color: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Preset campanella Avvisami. */
.sms-pb2-notify-preset-gold .sms-pb2__notify-button,
.sms-pb2 .sms-pb2__notify-button--preset-gold {
  color: #725009;
  background-color: #fff1b3;
  background-image: linear-gradient(135deg, #fff9dd 0%, #ffedaa 52%, #ffe184 100%);
  border-color: #f2cf62;
  box-shadow: 0 5px 14px rgba(161, 119, 21, .1);
}
.sms-pb2-notify-preset-outline .sms-pb2__notify-button,
.sms-pb2 .sms-pb2__notify-button--preset-outline {
  color: #59697a;
  background-color: #fff;
  background-image: none;
  border-color: #aebbc8;
  box-shadow: none;
}
.sms-pb2-notify-preset-soft .sms-pb2__notify-button,
.sms-pb2 .sms-pb2__notify-button--preset-soft {
  color: #176fac;
  background-color: #eaf6ff;
  background-image: linear-gradient(145deg, #f5fbff, #dcefff);
  border-color: #aed7f4;
  box-shadow: 0 6px 16px rgba(31, 113, 171, .12);
}
.sms-pb2-notify-preset-glass .sms-pb2__notify-button,
.sms-pb2 .sms-pb2__notify-button--preset-glass {
  color: #496b83;
  background-color: rgba(255, 255, 255, .42);
  background-image: linear-gradient(145deg, rgba(255, 255, 255, .68), rgba(218, 239, 251, .35));
  border-color: rgba(255, 255, 255, .8);
  box-shadow: 0 8px 22px rgba(35, 75, 104, .13), inset 0 1px rgba(255, 255, 255, .76);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.sms-pb2-notify-preset-dark .sms-pb2__notify-button,
.sms-pb2 .sms-pb2__notify-button--preset-dark {
  color: #f4d675;
  background-color: #1d2939;
  background-image: linear-gradient(145deg, #2b3b51, #172130);
  border-color: #3b4c63;
  box-shadow: 0 8px 20px rgba(16, 24, 40, .24);
}
.sms-pb2-notify-preset-gradient .sms-pb2__notify-button,
.sms-pb2 .sms-pb2__notify-button--preset-gradient {
  color: #fff;
  background-color: #7c3aed;
  background-image: linear-gradient(135deg, #5b8def 0%, #7c3aed 52%, #c026d3 100%);
  border-color: rgba(97, 58, 196, .65);
  box-shadow: 0 8px 22px rgba(113, 63, 201, .25);
}
.sms-pb2-notify-preset-gold .sms-pb2__notify-button.is-active,
.sms-pb2 .sms-pb2__notify-button--preset-gold.is-active {
  color: #13643d;
  background-color: #d8f8e5;
  background-image: linear-gradient(135deg, #eafff2 0%, #c9f6dc 100%);
  border-color: #74d5a0;
}
.sms-pb2-notify-preset-outline .sms-pb2__notify-button.is-active,
.sms-pb2 .sms-pb2__notify-button--preset-outline.is-active {
  color: #13724a;
  background-color: #f3fff8;
  background-image: none;
  border-color: #54b985;
}
.sms-pb2-notify-preset-soft .sms-pb2__notify-button.is-active,
.sms-pb2 .sms-pb2__notify-button--preset-soft.is-active {
  color: #116e49;
  background-color: #e4faee;
  background-image: linear-gradient(145deg, #f1fff7, #d4f6e4);
  border-color: #83d6aa;
}
.sms-pb2-notify-preset-glass .sms-pb2__notify-button.is-active,
.sms-pb2 .sms-pb2__notify-button--preset-glass.is-active {
  color: #146c4a;
  background-color: rgba(219, 250, 233, .58);
  background-image: linear-gradient(145deg, rgba(240, 255, 247, .78), rgba(193, 241, 216, .42));
  border-color: rgba(116, 213, 160, .78);
}
.sms-pb2-notify-preset-dark .sms-pb2__notify-button.is-active,
.sms-pb2 .sms-pb2__notify-button--preset-dark.is-active {
  color: #77e5ad;
  background-color: #173b2b;
  background-image: linear-gradient(145deg, #245840, #102c20);
  border-color: #3c8460;
}
.sms-pb2-notify-preset-gradient .sms-pb2__notify-button.is-active,
.sms-pb2 .sms-pb2__notify-button--preset-gradient.is-active {
  color: #fff;
  background-color: #119b62;
  background-image: linear-gradient(135deg, #36c784 0%, #119b62 54%, #08784a 100%);
  border-color: rgba(12, 126, 77, .68);
}

.sms-pb2-notify-preset-gold .sms-pb2__notify-button:hover,
.sms-pb2__notify-button--preset-gold:hover {
  color: #5e3f00;
  background-image: linear-gradient(135deg, #fff5c8 0%, #ffe27b 52%, #ffd24f 100%);
  border-color: #e7b932;
  box-shadow: 0 8px 20px rgba(161, 119, 21, .17);
}
.sms-pb2-notify-preset-outline .sms-pb2__notify-button:hover,
.sms-pb2__notify-button--preset-outline:hover {
  color: #2389d7;
  background-color: #f2f9ff;
  background-image: none;
  border-color: #65afe5;
  box-shadow: 0 6px 16px rgba(35, 137, 215, .1);
}
.sms-pb2-notify-preset-soft .sms-pb2__notify-button:hover,
.sms-pb2__notify-button--preset-soft:hover {
  color: #0f659f;
  background-image: linear-gradient(145deg, #eef9ff, #cae8fb);
  border-color: #7dc1ee;
  box-shadow: 0 9px 21px rgba(31, 113, 171, .18);
}
.sms-pb2-notify-preset-glass .sms-pb2__notify-button:hover,
.sms-pb2__notify-button--preset-glass:hover {
  color: #2e607f;
  background-image: linear-gradient(145deg, rgba(255, 255, 255, .82), rgba(200, 232, 249, .48));
  border-color: #fff;
  box-shadow: 0 10px 25px rgba(35, 75, 104, .2), inset 0 1px rgba(255, 255, 255, .86);
}
.sms-pb2-notify-preset-dark .sms-pb2__notify-button:hover,
.sms-pb2__notify-button--preset-dark:hover {
  color: #ffe38a;
  background-image: linear-gradient(145deg, #364a64, #202d40);
  border-color: #536985;
  box-shadow: 0 10px 24px rgba(16, 24, 40, .32);
}
.sms-pb2-notify-preset-gradient .sms-pb2__notify-button:hover,
.sms-pb2__notify-button--preset-gradient:hover {
  color: #fff;
  background-image: linear-gradient(135deg, #4384f1 0%, #7132df 46%, #d01fca 100%);
  border-color: rgba(87, 48, 185, .76);
  box-shadow: 0 10px 26px rgba(113, 63, 201, .34);
  filter: saturate(1.1) brightness(1.05);
}

.sms-pb2__notify-icon--filled svg {
  fill: currentColor;
  stroke: none;
}

/* Animazioni Wishlist. */
.sms-pb2-wishlist-motion-soft .sms-pb2__wishlist:hover .sms-pb2__wishlist-icon,
.sms-pb2-wishlist-motion-soft .sms-pb2__wishlist.is-interaction .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-soft:hover .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-soft.is-interaction .sms-pb2__wishlist-icon { animation: sms-pb2-wishlist-soft var(--sms-pb2-favorite-motion) ease; }
.sms-pb2-wishlist-motion-pulse .sms-pb2__wishlist:hover .sms-pb2__wishlist-icon,
.sms-pb2-wishlist-motion-pulse .sms-pb2__wishlist.is-interaction .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-pulse:hover .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-pulse.is-interaction .sms-pb2__wishlist-icon { animation: sms-pb2-favorite-pulse var(--sms-pb2-favorite-motion) ease; }
.sms-pb2-wishlist-motion-heartbeat .sms-pb2__wishlist:hover .sms-pb2__wishlist-icon,
.sms-pb2-wishlist-motion-heartbeat .sms-pb2__wishlist.is-interaction .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-heartbeat:hover .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-heartbeat.is-interaction .sms-pb2__wishlist-icon { animation: sms-pb2-wishlist-heartbeat calc(var(--sms-pb2-favorite-motion) * 1.45) ease-in-out; }
.sms-pb2-wishlist-motion-bounce .sms-pb2__wishlist:hover .sms-pb2__wishlist-icon,
.sms-pb2-wishlist-motion-bounce .sms-pb2__wishlist.is-interaction .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-bounce:hover .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-bounce.is-interaction .sms-pb2__wishlist-icon { animation: sms-pb2-favorite-bounce var(--sms-pb2-favorite-motion) cubic-bezier(.2, .8, .2, 1); }
.sms-pb2-wishlist-motion-rotate .sms-pb2__wishlist:hover .sms-pb2__wishlist-icon,
.sms-pb2-wishlist-motion-rotate .sms-pb2__wishlist.is-interaction .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-rotate:hover .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-rotate.is-interaction .sms-pb2__wishlist-icon { animation: sms-pb2-wishlist-rotate var(--sms-pb2-favorite-motion) ease; }
.sms-pb2-wishlist-motion-fade .sms-pb2__wishlist:hover .sms-pb2__wishlist-icon,
.sms-pb2-wishlist-motion-fade .sms-pb2__wishlist.is-interaction .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-fade:hover .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-fade.is-interaction .sms-pb2__wishlist-icon { animation: sms-pb2-wishlist-fade var(--sms-pb2-favorite-motion) ease; }
.sms-pb2-wishlist-motion-float .sms-pb2__wishlist:hover .sms-pb2__wishlist-icon,
.sms-pb2-wishlist-motion-float .sms-pb2__wishlist.is-interaction .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-float:hover .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-float.is-interaction .sms-pb2__wishlist-icon { animation: sms-pb2-wishlist-float var(--sms-pb2-favorite-motion) ease; }
.sms-pb2-wishlist-motion-pop .sms-pb2__wishlist:hover .sms-pb2__wishlist-icon,
.sms-pb2-wishlist-motion-pop .sms-pb2__wishlist.is-interaction .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-pop:hover .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-pop.is-interaction .sms-pb2__wishlist-icon { animation: sms-pb2-wishlist-pop var(--sms-pb2-favorite-motion) cubic-bezier(.2, .8, .2, 1); }
.sms-pb2-wishlist-motion-glow .sms-pb2__wishlist:hover .sms-pb2__wishlist-icon,
.sms-pb2-wishlist-motion-glow .sms-pb2__wishlist.is-interaction .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-glow:hover .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-glow.is-interaction .sms-pb2__wishlist-icon { animation: sms-pb2-wishlist-glow var(--sms-pb2-favorite-motion) ease; }
.sms-pb2-wishlist-motion-elastic .sms-pb2__wishlist:hover .sms-pb2__wishlist-icon,
.sms-pb2-wishlist-motion-elastic .sms-pb2__wishlist.is-interaction .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-elastic:hover .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-elastic.is-interaction .sms-pb2__wishlist-icon { animation: sms-pb2-wishlist-elastic calc(var(--sms-pb2-favorite-motion) * 1.25) ease; }
.sms-pb2-wishlist-motion-none .sms-pb2__wishlist:hover { transform: none; }
.sms-pb2-wishlist-motion-none .sms-pb2__wishlist-icon,
.sms-pb2__wishlist--motion-none .sms-pb2__wishlist-icon { animation: none !important; }

/* Animazioni campanella. */
.sms-pb2-notify-motion-soft .sms-pb2__notify-button:hover .sms-pb2__notify-icon,
.sms-pb2-notify-motion-soft .sms-pb2__notify-button.is-interaction .sms-pb2__notify-icon,
.sms-pb2__notify-button--motion-soft:hover .sms-pb2__notify-icon,
.sms-pb2__notify-button--motion-soft.is-interaction .sms-pb2__notify-icon { animation: sms-pb2-notify-soft var(--sms-pb2-favorite-motion) ease; }
.sms-pb2-notify-motion-ring .sms-pb2__notify-button:hover .sms-pb2__notify-icon,
.sms-pb2-notify-motion-ring .sms-pb2__notify-button.is-interaction .sms-pb2__notify-icon,
.sms-pb2__notify-button--motion-ring:hover .sms-pb2__notify-icon,
.sms-pb2__notify-button--motion-ring.is-interaction .sms-pb2__notify-icon { animation: sms-pb2-notify-ring calc(var(--sms-pb2-favorite-motion) * 1.25) ease-in-out; transform-origin: 50% 12%; }
.sms-pb2-notify-motion-pulse .sms-pb2__notify-button:hover .sms-pb2__notify-icon,
.sms-pb2-notify-motion-pulse .sms-pb2__notify-button.is-interaction .sms-pb2__notify-icon,
.sms-pb2__notify-button--motion-pulse:hover .sms-pb2__notify-icon,
.sms-pb2__notify-button--motion-pulse.is-interaction .sms-pb2__notify-icon { animation: sms-pb2-favorite-pulse var(--sms-pb2-favorite-motion) ease; }
.sms-pb2-notify-motion-bounce .sms-pb2__notify-button:hover .sms-pb2__notify-icon,
.sms-pb2-notify-motion-bounce .sms-pb2__notify-button.is-interaction .sms-pb2__notify-icon,
.sms-pb2__notify-button--motion-bounce:hover .sms-pb2__notify-icon,
.sms-pb2__notify-button--motion-bounce.is-interaction .sms-pb2__notify-icon { animation: sms-pb2-favorite-bounce var(--sms-pb2-favorite-motion) cubic-bezier(.2, .8, .2, 1); }
.sms-pb2-notify-motion-shake .sms-pb2__notify-button:hover .sms-pb2__notify-icon,
.sms-pb2-notify-motion-shake .sms-pb2__notify-button.is-interaction .sms-pb2__notify-icon,
.sms-pb2__notify-button--motion-shake:hover .sms-pb2__notify-icon,
.sms-pb2__notify-button--motion-shake.is-interaction .sms-pb2__notify-icon { animation: sms-pb2-notify-shake var(--sms-pb2-favorite-motion) ease; }
.sms-pb2-notify-motion-none .sms-pb2__notify-button:hover { transform: none; }
.sms-pb2-notify-motion-none .sms-pb2__notify-icon,
.sms-pb2__notify-button--motion-none .sms-pb2__notify-icon { animation: none !important; }

@keyframes sms-pb2-wishlist-soft {
  0%, 100% { transform: scale(1); }
  48% { transform: scale(1.08); }
}
@keyframes sms-pb2-favorite-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: .7; transform: scale(1.14); }
}
@keyframes sms-pb2-wishlist-heartbeat {
  0%, 28%, 70%, 100% { transform: scale(1); }
  14%, 46% { transform: scale(1.18); }
}
@keyframes sms-pb2-favorite-bounce {
  0%, 100% { transform: translateY(0); }
  42% { transform: translateY(-4px); }
  68% { transform: translateY(1px); }
}
@keyframes sms-pb2-wishlist-rotate {
  0%, 100% { transform: rotate(0); }
  35% { transform: rotate(-10deg); }
  70% { transform: rotate(7deg); }
}
@keyframes sms-pb2-wishlist-fade {
  0%, 100% { opacity: 1; }
  48% { opacity: .35; }
}
@keyframes sms-pb2-wishlist-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes sms-pb2-wishlist-pop {
  0%, 100% { transform: scale(1); }
  38% { transform: scale(.82); }
  68% { transform: scale(1.2); }
}
@keyframes sms-pb2-wishlist-glow {
  0%, 100% { filter: drop-shadow(0 0 0 currentColor); transform: scale(1); }
  50% { filter: drop-shadow(0 0 6px currentColor); transform: scale(1.07); }
}
@keyframes sms-pb2-wishlist-elastic {
  0%, 100% { transform: scale(1); }
  24% { transform: scaleX(1.2) scaleY(.82); }
  50% { transform: scaleX(.88) scaleY(1.16); }
  74% { transform: scaleX(1.08) scaleY(.95); }
}
@keyframes sms-pb2-notify-soft {
  0%, 100% { opacity: 1; transform: translateY(0); }
  50% { opacity: .72; transform: translateY(-1px); }
}
@keyframes sms-pb2-notify-ring {
  0%, 100% { transform: rotate(0); }
  20% { transform: rotate(13deg); }
  40% { transform: rotate(-11deg); }
  60% { transform: rotate(8deg); }
  80% { transform: rotate(-5deg); }
}
@keyframes sms-pb2-notify-shake {
  0%, 100% { transform: translateX(0); }
  25%, 65% { transform: translateX(-2px); }
  45%, 85% { transform: translateX(2px); }
}

/* Full-card promotional placeholder. */
.sms-pb2--placeholder {
  min-height: 720px;
  color: #fff;
  background: #172235;
  text-decoration: none;
}

.sms-pb2--placeholder:hover,
.sms-pb2--placeholder:focus,
.sms-pb2--placeholder:visited { color: #fff; text-decoration: none; }

.sms-pb2__placeholder-image,
.sms-pb2__placeholder-overlay,
.sms-pb2__placeholder-content {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.sms-pb2__placeholder-image {
  z-index: 1;
  margin: 0;
  object-fit: cover;
  object-position: center center;
  border: 0;
  border-radius: inherit;
  transform: scale(1);
  transition: transform 900ms cubic-bezier(.2, .75, .25, 1), opacity 300ms ease;
}

.sms-pb2__placeholder-overlay {
  z-index: 2;
  display: block;
  background-color: rgba(12, 20, 33, .58);
  pointer-events: none;
}

.sms-pb2__placeholder-content {
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  padding: 36px;
}

.sms-pb2__placeholder-copy {
  display: flex;
  flex-direction: column;
  align-items: inherit;
  gap: 14px;
  width: 100%;
  max-width: 680px;
  text-align: center;
}

.sms-pb2__placeholder-eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  padding: 7px 13px;
  color: #fff;
  background: #0ca75b;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 850;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.sms-pb2__placeholder-title {
  display: block;
  width: 100%;
  color: #fff;
  font-size: clamp(28px, 6vw, 52px);
  font-weight: 850;
  line-height: 1.05;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.sms-pb2__placeholder-description {
  display: block;
  width: 100%;
  color: #f2f7fb;
  font-size: clamp(15px, 2.7vw, 19px);
  line-height: 1.5;
  text-wrap: pretty;
}

.sms-pb2__placeholder-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: fit-content;
  margin-top: 5px;
  padding: 11px 18px;
  color: #162235;
  background: #fff;
  border-radius: 999px;
  box-shadow: 0 9px 24px rgba(8, 15, 27, .18);
  font-size: 15px;
  font-weight: 800;
  line-height: 1;
  transition: color 220ms ease, background-color 220ms ease, transform 220ms ease;
}

.sms-pb2__placeholder-cta svg { width: 1em; height: 1em; fill: currentColor; }
.sms-pb2--placeholder:hover .sms-pb2__placeholder-cta { color: #fff; background: var(--sms-pb2-accent); transform: translateX(3px); }
.sms-pb2--placeholder-motion-zoom:hover .sms-pb2__placeholder-image { transform: scale(1.075); }
.sms-pb2--placeholder-motion-pan:hover .sms-pb2__placeholder-image { transform: scale(1.045) translateX(2.2%); }
.sms-pb2--placeholder-motion-float .sms-pb2__placeholder-image { animation: sms-pb2-placeholder-float 9s ease-in-out infinite alternate; }

@keyframes sms-pb2-placeholder-float {
  0% { transform: scale(1.025) translate3d(-.6%, -.4%, 0); }
  100% { transform: scale(1.07) translate3d(.8%, .6%, 0); }
}

/* CSS-only entrance keeps the card visible even if a script is delayed or blocked. */
.sms-pb2--animate-fade,
.sms-pb2--animate-rise,
.sms-pb2--animate-zoom,
.sms-pb2--animate-left,
.sms-pb2--animate-right {
  animation-duration: var(--sms-pb2-enter-duration);
  animation-delay: var(--sms-pb2-enter-delay);
  animation-timing-function: cubic-bezier(.2, .75, .25, 1);
  animation-fill-mode: both;
}

.sms-pb2--animate-fade { animation-name: sms-pb2-enter-fade; }
.sms-pb2--animate-rise { animation-name: sms-pb2-enter-rise; }
.sms-pb2--animate-zoom { animation-name: sms-pb2-enter-zoom; }
.sms-pb2--animate-left { animation-name: sms-pb2-enter-left; }
.sms-pb2--animate-right { animation-name: sms-pb2-enter-right; }

@keyframes sms-pb2-enter-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes sms-pb2-enter-rise {
  from { opacity: 0; translate: 0 22px; }
  to { opacity: 1; translate: 0 0; }
}

@keyframes sms-pb2-enter-zoom {
  from { opacity: 0; scale: .965; }
  to { opacity: 1; scale: 1; }
}

@keyframes sms-pb2-enter-left {
  from { opacity: 0; translate: -24px 0; }
  to { opacity: 1; translate: 0 0; }
}

@keyframes sms-pb2-enter-right {
  from { opacity: 0; translate: 24px 0; }
  to { opacity: 1; translate: 0 0; }
}

.sms-pb2-editor-message {
  padding: 18px;
  color: #854d0e;
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 10px;
  font: 600 14px/1.45 system-ui, sans-serif;
}

@media (max-width: 1024px) {
  .sms-pb2--arrows-desktop .sms-pb2__arrow { display: none !important; }
  .sms-pb2__gallery { height: 330px; }
  .sms-pb2--placeholder { min-height: 620px; }
}

@media (max-width: 767px) {
  .sms-pb2 { --sms-pb2-hover-y: 0px; --sms-pb2-hover-scale: 1; --sms-pb2-count-size: 48px; --sms-pb2-action-height: 44px; --sms-pb2-count-height: 44px; --sms-pb2-all-in-cart-icon-inset: 6px; }
  .sms-pb2__gallery { height: 290px; padding: 11px; }
  .sms-pb2__body { padding: 14px 11px 11px; }
  .sms-pb2__attributes { flex-direction: column; }
  .sms-pb2__attribute { flex-basis: auto; width: 100%; }
  .sms-pb2__cart-button { height: var(--sms-pb2-action-height); min-height: var(--sms-pb2-action-height); padding-right: 11px; padding-left: 11px; font-size: 16px; }
  .sms-pb2__cart-count { height: var(--sms-pb2-count-height); min-height: var(--sms-pb2-count-height); }
  .sms-pb2--placeholder { min-height: 520px; }
  .sms-pb2__placeholder-content { padding: 24px; }
  .sms-pb2__placeholder-copy { gap: 11px; }
  .sms-pb2-notify-modal { padding: 10px; }
  .sms-pb2-notify-modal__dialog { max-height: calc(100vh - 20px); padding: 23px 17px 17px; border-radius: 17px; }
  .sms-pb2-notify-modal__actions { display: grid; grid-template-columns: 1fr; }
  .sms-pb2-notify-modal__actions button { width: 100%; }
}

/* ProductBox mobile compact: deliberately excludes Product Page V2. */
@media (max-width: 767px) {
  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) {
    --sms-pb2-action-height: 42px;
    --sms-pb2-count-height: 42px;
    --sms-pb2-count-size: 42px;
    --sms-pb2-qty-height: 38px;
    --sms-pb2-qty-width: 60px;
    align-self: flex-start !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    border-radius: 17px;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__gallery {
    height: clamp(250px, 64vw, 310px) !important;
    padding: 8px !important;
    row-gap: 2px !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__slide-image {
    max-height: 100% !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__wishlist {
    width: 36px;
    height: 36px;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__body {
    flex: 0 0 auto;
    gap: 9px !important;
    padding: 11px 10px 12px !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__title {
    font-size: clamp(19px, 5.4vw, 23px) !important;
    line-height: 1.12 !important;
    letter-spacing: -.025em;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__price {
    font-size: clamp(20px, 5.8vw, 24px) !important;
    line-height: 1.05 !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__rating {
    font-size: 13px;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__excerpt {
    display: -webkit-box;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__attributes {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 8px !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__attribute {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    gap: 4px !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__attribute:only-child {
    grid-column: 1 / -1;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__attribute-label {
    font-size: 13px !important;
    line-height: 1.15 !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__options {
    gap: 5px !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__option:not(.is-visual) {
    min-height: 32px !important;
    padding: 5px 8px !important;
    font-size: 13px !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__option.is-visual {
    width: min(var(--sms-pb2-swatch-size), 32px) !important;
    min-width: min(var(--sms-pb2-swatch-size), 32px) !important;
    height: min(var(--sms-pb2-swatch-size), 32px) !important;
    min-height: min(var(--sms-pb2-swatch-size), 32px) !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__attribute-select {
    min-height: 38px !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    font-size: 13px !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__variation-message {
    min-height: 0;
    font-size: 12px;
    line-height: 1.2;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__variation-message:empty,
  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__status:empty {
    display: none;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__purchase {
    gap: 8px !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__quantity {
    flex-direction: row;
    gap: 7px;
    width: 100%;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__quantity-label {
    font-size: 12px;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__cart-row {
    gap: 7px;
    margin-top: 0 !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__cart-button {
    height: var(--sms-pb2-action-height) !important;
    min-height: var(--sms-pb2-action-height) !important;
    padding: 5px 9px !important;
    border-radius: 12px;
    font-size: clamp(12px, 3.5vw, 15px) !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__button-content {
    gap: 6px;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__cart-count,
  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__notify-button {
    border-radius: 12px;
  }
}

@media (min-width: 480px) and (max-width: 767px) {
  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__purchase {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    column-gap: 9px !important;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__quantity {
    width: auto;
  }

  .sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__purchase:has(.sms-pb2__notify-button:not([hidden])) {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ProductBox selection contract: the active option always has the same
   crisp, configurable orange ring used by Product Page, without a glow. */
.sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__attributes .sms-pb2__option.is-selected,
.sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__attributes .sms-pb2__option[aria-pressed="true"] {
  border: var(--sms-pb2-variant-ring-width, 2px) solid var(--sms-pb2-variant-ring-color, #f59e0b) !important;
  box-shadow: none !important;
}

.sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__attributes .sms-pb2__option.is-visual.is-selected,
.sms-pb2.sms-pb2--product:not([data-sms-pp2]) .sms-pb2__attributes .sms-pb2__option.is-visual[aria-pressed="true"] {
  background: #fff !important;
}

@supports not (color: color-mix(in srgb, white, black)) {
  .sms-pb2:focus-within { border-color: #63aee9; }
  .sms-pb2 button:focus-visible,
  .sms-pb2 a:focus-visible,
  .sms-pb2 input:focus-visible,
  .sms-pb2 select:focus-visible,
  .sms-pb2__gallery:focus-visible { outline-color: rgba(35, 137, 215, .45); }
}

@media (prefers-reduced-motion: reduce) {
  .sms-pb2,
  .sms-pb2 *,
  .sms-pb2 *::before,
  .sms-pb2 *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    transition-delay: 0ms !important;
  }
  .sms-pb2,
  .sms-pb2.is-ready {
    opacity: 1;
    translate: 0 0;
    scale: 1;
    transform: none;
  }
}

/* Swatches share the ProductBox icon-tooltip palette, timing and typography. */
.sms-pb2 .sms-pb2__option .sms-pb2__icon-tooltip--swatch{left:50%;bottom:calc(100% + var(--sms-pb2-tooltip-offset,10px));transform:translate(-50%,7px) scale(.96);transform-origin:center bottom;}
.sms-pb2 .sms-pb2__icon-tooltip--swatch::after{top:100%;left:50%;transform:translateX(-50%);border-top-color:var(--sms-pb2-tooltip-bg,#182235);}
.sms-pb2 .sms-pb2__option.is-visual:hover .sms-pb2__icon-tooltip--swatch,
.sms-pb2 .sms-pb2__option.is-visual:focus-visible .sms-pb2__icon-tooltip--swatch{opacity:1;visibility:visible;transform:translate(-50%,0) scale(1);transition-delay:0s;}
.sms-pb2 .sms-pb2__option.is-visual:hover,.sms-pb2 .sms-pb2__option.is-visual:focus-visible{z-index:45;}
.sms-pbg--variants-uniform .sms-pb2__attribute[data-attribute*="bundle"] .sms-pb2__icon-tooltip--swatch{display:none;}
@media(prefers-reduced-motion:reduce){.sms-pb2 .sms-pb2__icon-tooltip--swatch{transition:none;}}
