/* Payslashes reusable product carousel — forced above legacy grid rules */
.ps-product-slider-shell {
  position: relative;
  width: 100%;
  min-width: 0;
}

[data-product-slider],
.ps-product-slider-track {
  --ps-slider-gap: 16px;
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: stretch !important;
  gap: var(--ps-slider-gap) !important;
  grid-template-columns: none !important;
  grid-auto-flow: unset !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  touch-action: pan-x pan-y;
  padding: 4px 2px 12px !important;
}

[data-product-slider]::-webkit-scrollbar,
.ps-product-slider-track::-webkit-scrollbar { display: none; }

[data-product-slider] > *,
.ps-product-slider-track > * {
  display: block;
  scroll-snap-align: start;
  scroll-snap-stop: normal;
  flex: 0 0 clamp(220px, 24vw, 290px) !important;
  width: clamp(220px, 24vw, 290px) !important;
  min-width: clamp(220px, 24vw, 290px) !important;
  max-width: clamp(220px, 24vw, 290px) !important;
}

.ps-exact-products[data-product-slider] > * {
  flex-basis: min(72vw, 230px) !important;
  width: min(72vw, 230px) !important;
  min-width: min(72vw, 230px) !important;
  max-width: min(72vw, 230px) !important;
}

.ps-product-slider-controls {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  margin: 0 0 10px;
}
.ps-product-slider-controls[hidden] { display: none !important; }

.ps-product-slider-btn {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(15,52,96,.16);
  border-radius: 50%;
  background: #fff;
  color: #0f345f;
  display: inline-grid;
  place-items: center;
  padding: 0;
  font-size: 28px;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(13,42,78,.12);
  transition: transform .18s ease, opacity .18s ease, box-shadow .18s ease;
}
.ps-product-slider-btn:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(13,42,78,.17); }
.ps-product-slider-btn:focus-visible { outline: 3px solid rgba(0,135,95,.28); outline-offset: 2px; }
.ps-product-slider-btn:disabled { opacity: .34; cursor: not-allowed; box-shadow: none; }

.ps-product-slider-progress {
  width: 72px;
  height: 5px;
  border-radius: 999px;
  background: rgba(15,52,96,.13);
  overflow: hidden;
}
.ps-product-slider-progress > span {
  display: block;
  height: 100%;
  width: 8%;
  border-radius: inherit;
  background: #00875f;
  transition: width .22s ease;
}

@media (max-width: 767.98px) {
  [data-product-slider], .ps-product-slider-track {
    --ps-slider-gap: 12px;
    padding-inline: 2px !important;
    padding-bottom: 10px !important;
  }
  [data-product-slider] > *, .ps-product-slider-track > * {
    flex-basis: min(72vw, 230px) !important;
    width: min(72vw, 230px) !important;
    min-width: min(72vw, 230px) !important;
    max-width: min(72vw, 230px) !important;
  }
  .ps-product-slider-controls { margin-bottom: 8px; min-height: 38px; }
  .ps-product-slider-btn { width: 38px; height: 38px; font-size: 25px; }
  .ps-product-slider-progress { width: 58px; }
}

@media (prefers-reduced-motion: reduce) {
  [data-product-slider], .ps-product-slider-track { scroll-behavior: auto; }
  .ps-product-slider-btn, .ps-product-slider-progress > span { transition: none; }
}
