html.product-popup-open { overflow: hidden; }
.product-popup {
  --popup-width: var(--popup-small-width, 580px);
  box-sizing: border-box;
  width: min(var(--popup-width), calc(100% - var(--popup-edge-gap, 16px) * 1));
  max-width: none;
  max-height: calc(100vh - 40px);
  max-height: calc(100dvh - 40px);
  margin: auto;
  padding: 0;
  border: var(--popup-border, 1px solid var(--theme-border-color, var(--theme-palette-color-5)));
  border-radius: var(--popup-radius, 8px);
  background-color: var(--theme-palette-color-8);
  color: var(--popup-text, var(--theme-text-color, var(--theme-palette-color-4)));
  font-family: inherit;
  box-shadow: var(--popup-shadow, 0 12px 35px rgb(0 0 0 / 22%));
}
.product-popup:not([open]) { display: none; }
.product-popup[open] { display: flex; flex-direction: column; }
.product-popup[data-size="large"] { --popup-width: var(--popup-large-width, 800px); }
.product-popup::backdrop {
  background: rgb(0 0 0 / 50%);
  background: color-mix(in srgb, var(--popup-backdrop-color, #000) var(--popup-backdrop-opacity, 50%), transparent);
  -webkit-backdrop-filter: blur(var(--popup-backdrop-blur, 0px));
  backdrop-filter: blur(var(--popup-backdrop-blur, 0px));
}
.product-popup__header { display: flex; align-items: flex-start; gap: 16px; padding: 20px 20px 12px; }
.product-popup__header h2 { flex: 1; min-width: 0; margin: 0; color: inherit; font-size: 18px; line-height: 1.4; overflow-wrap: anywhere; }
.product-popup .ct-toggle-close {
  --theme-icon-size: 18px;
  --theme-icon-color: var(--popup-text, var(--theme-text-color, var(--theme-palette-color-4)));
  --toggle-button-size: 40px;
  --toggle-button-padding: 8px;
  --toggle-button-margin-block: -4px 0;
  --toggle-button-margin-end: -4px;
  min-height: var(--toggle-button-size);
  color: var(--theme-icon-color);
}
.product-popup .ct-toggle-close svg { width: var(--theme-icon-size); height: var(--theme-icon-size); fill: var(--theme-icon-color); flex-shrink: 0; }
.product-popup button:focus-visible, .product-popup input:focus-visible, .product-popup a:focus-visible { outline: 2px solid var(--theme-palette-color-1); outline-offset: 3px; }
.product-popup__body { min-height: 0; padding: 0 20px 20px; overflow: auto; overscroll-behavior: contain; font-size: 15px; line-height: 1.5; }
.product-popup__body p { margin: 0 0 12px; }
.product-popup__body p:last-child { margin-bottom: 0; }
.product-popup__body dl { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; margin: 16px 0 0; }
.product-popup__body dt, .product-popup__body dd { margin: 0; padding: 0; overflow-wrap: anywhere; }
.product-popup__body dd { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
@media (max-width: 600px) {
  .product-popup__header { padding: 16px 16px 12px; }
  .product-popup__body { padding: 0 16px 16px; }
  .product-popup__header h2 { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .product-popup .ct-toggle-close svg { transition: none; }
}
