.cap-wrap .cap-cover[aria-haspopup="dialog"] {
  cursor: zoom-in;
}
.cap-wrap .cap-cover[aria-haspopup="dialog"]:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
/* Above the existing audio popup, without changing any other Elementor lightbox. */
.elementor-lightbox.smh-cap-artwork-lightbox {
  position: fixed !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 2147483647;
}
/* The audio popup fixes the body at its saved scroll offset. Keep the reused
   dialog content viewport-aligned even if Elementor recalculates its position. */
.smh-cap-artwork-lightbox .dialog-widget-content {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
}
.elementor-lightbox.smh-cap-artwork-lightbox .elementor-lightbox-image {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: none;
  margin: 0;
  border-radius: 8px 8px 0 0;
  box-shadow: none;
  object-fit: contain;
}
.admin-bar .smh-cap-artwork-lightbox .dialog-widget-content {
  top: var(--wp-admin--admin-bar--height, 32px) !important;
  height: calc(100% - var(--wp-admin--admin-bar--height, 32px)) !important;
}
.elementor-lightbox.smh-cap-artwork-lightbox .dialog-message {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 60px 20px;
  box-sizing: border-box;
}
.smh-cap-artwork-lightbox .smh-cap-artwork-panel {
  /* One shared width: the height-limited image and its audio bar cannot diverge. */
  width: min(560px, calc(100vw - 40px), calc(min(60vh, 560px) * var(--smh-cap-image-ratio, 1)));
  max-width: 100%;
  container-type: inline-size;
}
.smh-cap-artwork-lightbox .smh-cap-audio-controls {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  background: #f1f3f4;
  color: #222;
  border-radius: 0 0 8px 8px;
  font: 13px/1.4 Arial, sans-serif;
}
.smh-cap-artwork-lightbox .smh-cap-audio-controls button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #222;
  font-size: 18px;
  cursor: pointer;
}
.smh-cap-artwork-lightbox .smh-cap-audio-controls :disabled {
  opacity: .45;
  cursor: default;
}
.smh-cap-artwork-lightbox .smh-cap-audio-controls :focus-visible {
  outline: 2px solid #222;
  outline-offset: 2px;
}
.smh-cap-artwork-lightbox .smh-cap-audio-time {
  white-space: nowrap;
}
.smh-cap-artwork-lightbox .smh-cap-audio-controls input {
  min-width: 0;
  margin: 0;
  padding: 0;
  accent-color: #555;
}
.smh-cap-artwork-lightbox .smh-cap-audio-seek {
  flex: 1 1 auto;
  width: 100%;
}
.smh-cap-artwork-lightbox .smh-cap-audio-volume {
  flex: 0 0 64px;
  width: 64px;
}
.smh-cap-artwork-lightbox .smh-cap-audio-mute[aria-pressed="true"] svg {
  opacity: .4;
}
.smh-cap-artwork-lightbox .smh-cap-audio-note {
  margin: 8px 0 0;
  color: #fff;
  text-align: center;
  font: 13px/1.4 Arial, sans-serif;
}
@media (max-width: 480px) {
  .smh-cap-artwork-lightbox .smh-cap-audio-volume {
    display: none;
  }
  .smh-cap-artwork-lightbox .smh-cap-audio-controls {
    gap: 6px;
    padding: 8px;
    font-size: 12px;
  }
}
/* Portrait artwork can create a narrow panel even on a wide/landscape screen. */
@container (max-width: 440px) {
  .smh-cap-artwork-lightbox .smh-cap-audio-volume {
    display: none;
  }
  .smh-cap-artwork-lightbox .smh-cap-audio-controls {
    gap: 6px;
    padding: 8px;
    font-size: 12px;
  }
}
@container (max-width: 280px) {
  .smh-cap-artwork-lightbox .smh-cap-audio-controls {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr) 32px;
  }
  .smh-cap-artwork-lightbox .smh-cap-audio-time {
    text-align: center;
    font-size: 11px;
  }
  .smh-cap-artwork-lightbox .smh-cap-audio-mute {
    grid-column: 3;
    grid-row: 1;
  }
  .smh-cap-artwork-lightbox .smh-cap-audio-seek {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}
