/*
 * Product single V9
 * Progressive enhancement only: the complete product page is server-rendered and
 * remains visible when JavaScript is unavailable or fails.
 */
html.dm-product-single-document,
body.dm-product-single-page {
  scroll-behavior: smooth;
}

body.single-product .site-main {
  min-height: 70vh;
  background: #f5f7fb;
}

#dmProductPage,
body.single-product #dmProductPage,
body.dm-product-single-page #dmProductPage {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  height: auto !important;
  min-height: 1px !important;
  overflow: visible !important;
}

#dmProductPage > .container {
  width: min(1320px, calc(100% - 36px));
  max-width: 1320px;
}

#dmProductPage .dm-single-top,
#dmProductPage .dm-single-body,
#dmProductPage .dm-single-main,
#dmProductPage .dm-single-aside {
  visibility: visible !important;
  opacity: 1 !important;
}

#dmProductPage .dm-single-gallery-main__link,
#dmProductPage .dm-single-gallery-main__img {
  display: block;
  width: 100%;
}

#dmProductPage .dm-single-gallery-main__img {
  aspect-ratio: 16 / 10;
  object-fit: contain;
  background: #f8fafc;
}

#dmProductPage .dm-single-gallery-dots button,
#dmProductPage .dm-single-gallery-thumb {
  touch-action: manipulation;
}

#dmProductPage .dm-single-gallery-dots button[aria-pressed="true"],
#dmProductPage .dm-single-gallery-thumb[aria-pressed="true"] {
  border-color: var(--cms-accent, #ff8a00);
}

#dmProductPage .dm-single-license-price-main > del,
#dmProductPage .dm-single-buy-price__old {
  color: #94a3b8;
  font-size: 12px;
  font-weight: 700;
  text-decoration-thickness: 1px;
}

#dmProductPage .dm-single-buy-price {
  display: grid;
  gap: 4px;
  justify-items: center;
  min-height: 56px;
  align-content: center;
  padding: 10px 12px;
  border: 1px solid #e6edf4;
  border-radius: 18px;
  background: linear-gradient(180deg, #fff, #f8fafc);
}

#dmProductPage .dm-single-buy-price > strong {
  color: #111827;
  font-size: 21px;
  font-weight: 950;
}

#dmProductPage .dm-single-license-option.has-validation-error {
  border-color: #ef4444 !important;
  box-shadow: 0 0 0 4px rgba(239, 68, 68, .1) !important;
}

#dmProductPage .dm-single-addon-option.is-selected {
  border-color: #93c5fd;
  background: linear-gradient(135deg, #eff6ff, #fff);
  box-shadow: 0 10px 28px rgba(37, 99, 235, .08);
}

#dmProductPage .dm-purchase-total {
  margin: 14px 0 12px;
}

#dmProductPage .dm-single-tabs .tab-panel[hidden] {
  display: none !important;
}

#dmProductPage .dm-single-tabs .tab-panel.active {
  display: block !important;
}

#dmProductPage .entry-content {
  overflow-wrap: anywhere;
}

#dmProductPage .entry-content img,
#dmProductPage .entry-content video,
#dmProductPage .entry-content iframe {
  max-width: 100%;
}

#dmProductPage .entry-content iframe {
  width: 100%;
  min-height: 420px;
  border: 0;
  border-radius: 18px;
}

#dmProductPage .entry-content table {
  display: table;
  width: 100%;
  max-width: 100%;
}

#dmProductPage .dm-single-body {
  padding-bottom: 44px;
}

#dmProductPage .dm-single-intro-card,
#dmProductPage .dm-digital-information,
#dmProductPage .dm-single-tabs {
  width: 100%;
}

#dmProductPage .dm-single-product-logo__img,
#dmProductPage .dm-single-product-icon__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

#dmProductPage .dm-single-product-icon.has-image {
  overflow: hidden;
  padding: 5px;
}

#dmProductPage .product-logo--large.has-image {
  flex: 0 0 96px;
  width: 96px;
  height: 96px;
  overflow: hidden;
  padding: 8px;
  border: 1px solid #e4ebf3;
  border-radius: 24px;
  background: #f8fafc;
}

@media (max-width: 1240px) {
  #dmProductPage > .container {
    width: min(1120px, calc(100% - 30px));
  }
}

@media (max-width: 900px) {
  #dmProductPage .dm-single-buy-price {
    justify-items: start;
  }

  #dmProductPage .dm-single-body {
    padding-bottom: 30px;
  }

  #dmProductPage .entry-content iframe {
    min-height: 320px;
  }
}

@media (max-width: 640px) {
  #dmProductPage > .container {
    width: min(100% - 20px, 100%);
  }

  #dmProductPage .product-logo--large.has-image {
    width: 76px;
    height: 76px;
    flex-basis: 76px;
  }

  #dmProductPage .dm-single-buy-price > strong {
    font-size: 18px;
  }

  #dmProductPage .entry-content iframe {
    min-height: 230px;
  }

  #dmProductPage .entry-content table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }
}
