/* Purchase feedback stays inside the existing Duke full-width pill. */
.pdp-form .single_add_to_cart_button[data-cart-feedback-state] {
  opacity:1;
  gap:10px;
  animation:none;
  overflow:hidden;
}
.pdp-form .single_add_to_cart_button[data-cart-feedback-state="added"] { cursor:default; }
.pdp-form .duke-purchase-mark {
  width:20px;
  height:20px;
  flex:0 0 20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.pdp-form [data-cart-feedback-state="adding"] .duke-purchase-mark { animation:duke-purchase-loading 900ms linear infinite; }
.pdp-form [data-cart-feedback-state="added"] .duke-purchase-mark path { animation:duke-purchase-check 420ms cubic-bezier(.16,1,.3,1) both; }
.pdp-form [data-cart-feedback-state="added"] .duke-purchase-label { animation:duke-purchase-label 360ms cubic-bezier(.16,1,.3,1) both; }
@keyframes duke-purchase-loading { to { transform:rotate(360deg); } }
@keyframes duke-purchase-check { from { stroke-dasharray:1; stroke-dashoffset:1; } to { stroke-dasharray:1; stroke-dashoffset:0; } }
@keyframes duke-purchase-label { from { clip-path:inset(0 0 100%); transform:translateY(6px); } to { clip-path:inset(0); transform:translateY(0); } }
@media (prefers-reduced-motion:reduce) {
  .pdp-form [data-cart-feedback-state] .duke-purchase-mark,
  .pdp-form [data-cart-feedback-state] .duke-purchase-mark path,
  .pdp-form [data-cart-feedback-state] .duke-purchase-label { animation:none; }
}

/* Keep validation visually attached to the purchase action. */
.pdp-form form.cart { position:relative; }
.pdp-form .pdp-status:not(:empty) { margin:16px 0 0; padding:12px 16px; border-radius:8px; position:relative; font-size:14px; line-height:1.45; }
.pdp-form .pdp-status.is-error { color:#a52222; background:#fff0ef; border:1px solid #ebbbbb; }
.pdp-form .pdp-status.is-error::before { content:''; position:absolute; top:-6px; left:24px; width:10px; height:10px; border-top:1px solid #ebbbbb; border-left:1px solid #ebbbbb; background:#fff0ef; transform:rotate(45deg); }
.pdp-form .duke-swatches[data-invalid] .duke-swatch { border-color:#a52222; }
#pdp-zoom-dialog { width:min(1000px,calc(100% - 48px)); max-width:1000px; height:min(760px,calc(100dvh - 48px)); max-height:calc(100dvh - 48px); padding:48px 64px 20px; border-radius:12px; background:#f4f4f2; }
#pdp-zoom-dialog[open] { display:flex; flex-direction:column; gap:20px; }
#pdp-zoom-dialog .dialog-close { width:40px; height:40px; top:8px; right:10px; z-index:2; }
#pdp-zoom-dialog .zoom-image { flex:1; min-height:0; height:0; width:100%; object-fit:contain; opacity:1!important; background:#f4f4f2; filter:none!important; transition:none!important; }
#pdp-zoom-dialog .zoom-nav { inset:48px 12px 112px; justify-content:space-between; gap:0; pointer-events:none; }
#pdp-zoom-dialog .zoom-nav button { pointer-events:auto; width:40px; height:40px; border:1px solid #c4c4c0; background:#fff; }
#pdp-zoom-dialog .zoom-nav .icon { width:20px; height:20px; }
.zoom-thumbnails { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; flex:none; max-height:128px; overflow-y:auto; padding:3px; scrollbar-width:thin; }
.zoom-thumbnail { display:block; flex:none; width:48px; height:60px; padding:2px; border:1px solid transparent; border-radius:4px; background:#fff; opacity:.55; }
.zoom-thumbnail[aria-pressed="true"] { border-color:#171717; opacity:1; }
.zoom-thumbnail:hover { opacity:1; }
.zoom-thumbnail img { width:100%; height:100%; object-fit:contain; }
@media(max-width:767px) {
 #pdp-zoom-dialog { width:calc(100% - 24px); height:min(700px,calc(100dvh - 40px)); padding:48px 12px 18px; gap:16px; }
 #pdp-zoom-dialog .zoom-nav { inset:48px 10px 108px; }
 #pdp-zoom-dialog .zoom-nav button { width:36px; height:36px; }
 .zoom-thumbnails { gap:6px; }
 .zoom-thumbnail { width:44px; height:56px; }
}
