/* Load after product-dialog.css and ui-polish.css. */
#product-dialog .dialog-shell {
  grid-template-rows: 68px minmax(0, 1fr);
}

#product-dialog .dialog-stage {
  box-sizing: border-box;
  padding-inline: 72px;
}

#product-dialog #dialog-object {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  height: 100%;
}

#product-dialog .dialog-stage .dialog-image-nav {
  position: absolute;
  z-index: 2;
  top: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: 48px;
  min-width: 48px;
  max-width: 48px;
  height: 48px;
  min-height: 48px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #d9e1d506;
  color: #c4cec0;
  font-size: 11px;
  line-height: 1.4;
  letter-spacing: 0;
  text-align: center;
  transform: translateY(-50%);
  cursor: pointer;
  touch-action: manipulation;
  opacity: 1;
  transition: opacity 450ms cubic-bezier(.22,1,.36,1), color 350ms, background-color 350ms;
}

#product-dialog .dialog-image-nav.dialog-prev { left: var(--dialog-nav-inset, 4px); }
#product-dialog .dialog-image-nav.dialog-next { right: var(--dialog-nav-inset, 4px); }

#product-dialog .dialog-stage .dialog-image-nav > svg {
  order: 0;
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.05;
  transition: transform 450ms cubic-bezier(.22,1,.36,1);
}

#product-dialog .dialog-stage .dialog-image-nav > span {
  order: 1;
  position: absolute;
  left: 50%;
  top: calc(100% + 7px);
  display: block;
  color: var(--folio-soft, #a9b1aa);
  font: 400 11px/1.5 var(--sans, Arial, sans-serif);
  letter-spacing: .04em;
  text-align: center;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 3px);
  transition: opacity 300ms, transform 450ms cubic-bezier(.22,1,.36,1);
}

#product-dialog .dialog-stage .dialog-image-nav:focus-visible {
  opacity: 1;
  pointer-events: auto;
  outline: 1px solid #c4cec073;
  outline-offset: 3px;
  background: #d9e1d510;
}

#product-dialog .dialog-stage .dialog-image-nav:focus-visible > span {
  opacity: 1;
  transform: translate(-50%, 0);
}

#product-dialog .dialog-stage .dialog-image-nav:active {
  color: var(--folio-text, #e7e7df);
  background: #d9e1d514;
}

@media (hover: hover) and (pointer: fine) {
  /* Keep invisible buttons keyboard reachable; focus reveals the image controls. */
  #product-dialog .dialog-stage .dialog-image-nav {
    opacity: 0;
    pointer-events: none;
    background: transparent;
  }
  #product-dialog .dialog-stage:hover .dialog-image-nav,
  #product-dialog .dialog-stage:focus-visible .dialog-image-nav,
  #product-dialog .dialog-stage:has(:focus-visible) .dialog-image-nav {
    opacity: 1;
    pointer-events: auto;
  }
  #product-dialog .dialog-stage .dialog-image-nav:not(:disabled):hover {
    color: var(--folio-text, #e7e7df);
    background: #d9e1d50c;
  }
  #product-dialog .dialog-stage .dialog-image-nav:not(:disabled):hover > span {
    opacity: 1;
    transform: translate(-50%, 0);
  }
  #product-dialog .dialog-stage .dialog-image-nav.dialog-prev:hover > svg {
    transform: translateX(-2px);
  }
  #product-dialog .dialog-stage .dialog-image-nav.dialog-next:hover > svg {
    transform: translateX(2px);
  }
}

@media (hover: none), (pointer: coarse) {
  #product-dialog .dialog-stage .dialog-image-nav {
    width: 44px;
    min-width: 44px;
    max-width: 44px;
    height: 44px;
    min-height: 44px;
    opacity: 1;
    background: #d9e1d50a;
    color: #bdc8b9;
  }
}

@media (min-width: 761px) and (max-height: 680px) {
  #product-dialog .dialog-shell {
    grid-template-rows: 60px minmax(0, 1fr);
  }
}

@media (max-width: 760px) {
  #product-dialog .dialog-shell {
    display: block;
    overflow-x: hidden;
    overflow-y: auto;
  }
  #product-dialog .dialog-stage {
    padding-inline: 44px;
    height: clamp(240px, 39svh, 360px);
  }
  #product-dialog[data-view='shape'] .dialog-stage {
    height: clamp(220px, calc((100vw - 132px) / var(--dialog-form-ratio, 1)), 340px);
  }
  #product-dialog .dialog-image-nav.dialog-prev { left: var(--dialog-nav-inset, 0px); }
  #product-dialog .dialog-image-nav.dialog-next { right: var(--dialog-nav-inset, 0px); }
  #product-dialog .dialog-stage .dialog-image-nav {
    width: 44px;
    min-width: 44px;
    max-width: 44px;
    height: 44px;
    min-height: 44px;
    font-size: 11px;
  }
  #product-dialog .dialog-stage .dialog-image-nav > svg {
    flex-basis: 21px;
    width: 21px;
    height: 21px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #product-dialog .dialog-stage .dialog-image-nav,
  #product-dialog .dialog-stage .dialog-image-nav > svg,
  #product-dialog .dialog-stage .dialog-image-nav > span {
    transition: none;
  }
  #product-dialog .dialog-stage .dialog-image-nav.dialog-prev:hover > svg,
  #product-dialog .dialog-stage .dialog-image-nav.dialog-next:hover > svg {
    transform: none;
  }
}
