/* ==========================================================
   Dynamic Depth Product Slider
   - Vertical image breakout (no clipping)
   - Per-slide image sizing + per-slide offsets (side vs active)
   - Mobile "peek" support via edge padding
   ========================================================== */

.dds-slider{
  position: relative;
  width: 100%;

  /* Hide horizontal overflow; allow vertical breakout */
  overflow-x: hidden;
  overflow-y: visible;

  /* Slide scaling */
  --dds-center-scale: 1;
  --dds-side-scale: .85;

  /* Transition */
  --dds-speed: 650ms;
  --dds-ease: cubic-bezier(0.22, 1, 0.36, 1);

  /* Featured image global */
  --dds-img-z: 50;

  /* Mobile peek padding */
  --dds-edge-pad: 0px;

  /* Layout */
  --dds-gap: 24px;

  /* Nav */
  --dds-arrow-size: 42px;
  --dds-arrow-x: 10px;
  --dds-arrow-y: 0px;
  --dds-dots-bottom: 6px;
}

.dds-viewport{
  width: 100%;
  overflow: visible;
}

/* Track uses edge padding to avoid mobile clipping and allow peeks */
.dds-track{
  display: flex;
  align-items: stretch;
  gap: var(--dds-gap);

  will-change: transform;
  transform: translate3d(0,0,0);
  transition: transform var(--dds-speed) var(--dds-ease);

  /* room for breakout image + dots */
  padding: 80px var(--dds-edge-pad) 40px;

  overflow: visible;
}

/* Slides */
.dds-slide{
  flex: 0 0 auto;
  will-change: transform, opacity;

  transform: scale(var(--dds-side-scale));
  transition: transform var(--dds-speed) var(--dds-ease), opacity var(--dds-speed) var(--dds-ease);

  opacity: .95;
  overflow: visible;

  /* Per-slide defaults (overridden inline by PHP) */
  --dds-img-maxw: 180px;
  --dds-img-scale: 1.10;
  --dds-img-scale-active: 1.35;
  --dds-img-offset-y: -60px;
  --dds-img-offset-y-active: -90px;
}

.dds-slide.is-active{
  transform: scale(var(--dds-center-scale));
  opacity: 1;
  z-index: 2;
}

.dds-slide.is-prev,
.dds-slide.is-next{
  opacity: .92;
  z-index: 1;
}

/* Slide card */
.dds-slide-card{
  position: relative;
  overflow: visible;
  height: 100%;
}

/* Featured image breakout */
.dds-image-wrap{
  display: flex;
  justify-content: center;
  align-items: flex-end;

  position: relative;
  z-index: var(--dds-img-z);

  /* SIDE offset by default */
  transform: translateY(var(--dds-img-offset-y));

  pointer-events: none;
  overflow: visible;
}

/* Active slide uses its own offset */
.dds-slide.is-active .dds-image-wrap{
  transform: translateY(var(--dds-img-offset-y-active));
}

.dds-featured-image{
  display: block;
  width: 100%;
  height: auto;

  max-width: var(--dds-img-maxw);

  /* SIDE scale by default */
  transform: scale(var(--dds-img-scale));
  transform-origin: center bottom;

  transition: transform var(--dds-speed) var(--dds-ease);
}

/* Active slide uses its own scale */
.dds-slide.is-active .dds-featured-image{
  transform: scale(var(--dds-img-scale-active));
}

/* Content */
.dds-content{
  position: relative;
  z-index: 1;
}

.dds-description p{ margin: 0 0 10px; }
.dds-description p:last-child{ margin-bottom: 0; }

.dds-button{
  display: inline-block;
  text-decoration: none;
  transition: all 200ms ease;
}

/* Arrows */
.dds-arrow{
  position: absolute;
  top: calc(50% + var(--dds-arrow-y));
  transform: translateY(-50%);
  width: var(--dds-arrow-size);
  height: var(--dds-arrow-size);
  border-radius: 999px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
}

/* Hide arrows when toggled off in Style tab */
.dds-slider.dds-no-arrows .dds-arrow{
  display: none !important;
}

.dds-prev{ left: var(--dds-arrow-x); }
.dds-next{ right: var(--dds-arrow-x); }

.dds-slide,
.dds-slide-card,
.dds-featured-image{
  transition: transform var(--dds-speed,650ms) var(--dds-ease, ease);
}

/* Dots */
.dds-dots{
  position: absolute;
  left: 50%;
  bottom: var(--dds-dots-bottom);
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
  z-index: 10;
}

.dds-dot{
  width: 8px;
  height: 8px;
  border-radius: 999px;
  cursor: pointer;
  border: none;
  padding: 0;
}

.dds-dot.is-active{ width: 18px; }

/* Mobile tightening */
@media (max-width: 767px){
  .dds-track{
    padding-top: 70px;
    padding-bottom: 44px;
  }
}