/* Valgusallikad Core v2.3.14 — Mobile Product View Fixer */

.single-product.vlg-core-mobile-product-view-ready,
.single-product.vlg-core-mobile-product-view-ready #page,
.single-product.vlg-core-mobile-product-view-ready .site {
  overflow-x: hidden !important;
}

.single-product .vlg-core-mobile-featured-image,
.single-product .vlg-mobile-featured-image {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  background: #fff !important;
}

.single-product .vlg-core-mobile-featured-image__link,
.single-product .vlg-mobile-featured-image__link {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
}

.single-product .vlg-core-mobile-featured-image img,
.single-product .vlg-mobile-featured-image img,
.single-product .vlg-mobile-featured-image__img {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: 98% !important;
  max-height: 98% !important;
  object-fit: contain !important;
  object-position: center center !important;
  margin: auto !important;
  padding: 0 !important;
}

.single-product .vlg-core-cropped-image {
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  transform: none !important;
  object-fit: contain !important;
  object-position: center center !important;
}

.single-product .vlg-core-focus-right {
  width: 152% !important;
  max-width: none !important;
  transform: translateX(-19%) !important;
  object-fit: contain !important;
  object-position: right center !important;
}

.single-product.vlg-core-product-image-active .vlg-product-gallery-card .woocommerce-product-gallery,
.single-product.vlg-core-product-image-active .vlg-product-gallery-card div.images,
.single-product.vlg-core-product-image-active .vlg-product-gallery-card .flex-viewport,
.single-product.vlg-core-product-image-active .vlg-product-gallery-card .flex-control-thumbs,
.single-product.vlg-core-product-image-active .vlg-product-gallery-card .woocommerce-product-gallery__wrapper {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  overflow: hidden !important;
}

@media (min-width: 783px) {
  .single-product.vlg-core-product-image-active .vlg-product-gallery-card {
    min-height: 0 !important;
    height: auto !important;
    padding: 16px !important;
  }

  .single-product .vlg-core-mobile-featured-image,
  .single-product .vlg-mobile-featured-image {
    min-height: 420px !important;
    max-height: 500px !important;
    aspect-ratio: 1 / .64 !important;
    border-radius: 22px !important;
  }
}

@media (max-width: 782px) {
  .single-product.vlg-core-mobile-product-view-ready .vlg-single-product-page,
  .single-product.vlg-core-mobile-product-view-ready main.site-main {
    max-width: 100vw !important;
    overflow-x: hidden !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
    padding-bottom: calc(220px + env(safe-area-inset-bottom)) !important;
    box-sizing: border-box !important;
  }

  .single-product.vlg-core-product-image-active .vlg-product-detail,
  .single-product.vlg-core-product-image-active .vlg-product-main-grid,
  .single-product.vlg-core-product-image-active .vlg-product-left,
  .single-product.vlg-core-product-image-active .vlg-product-right,
  .single-product.vlg-core-product-image-active .summary,
  .single-product.vlg-core-product-image-active .vlg-product-summary-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  .single-product.vlg-core-product-image-active .vlg-product-main-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .single-product.vlg-core-product-image-active .vlg-product-gallery-card {
    min-height: 0 !important;
    height: auto !important;
    padding: 6px !important;
    margin: 0 0 8px !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    background: #fff !important;
  }

  .single-product.vlg-core-product-image-active .vlg-product-gallery-card::before,
  .single-product.vlg-core-product-image-active .vlg-product-gallery-card::after {
    display: none !important;
  }

  .single-product .vlg-core-mobile-featured-image,
  .single-product .vlg-mobile-featured-image {
    min-height: 152px !important;
    max-height: 214px !important;
    aspect-ratio: 1 / .56 !important;
    padding: 2px !important;
    border-radius: 14px !important;
  }

  .single-product .vlg-core-mobile-featured-image img,
  .single-product .vlg-mobile-featured-image img,
  .single-product .vlg-mobile-featured-image__img {
    max-height: 198px !important;
  }

  .single-product.vlg-core-product-image-active .vlg-single-image-energy {
    right: 5px !important;
    bottom: 5px !important;
    transform: scale(.48) !important;
    transform-origin: right bottom !important;
  }

  .single-product.vlg-core-product-image-active .vlg-product-summary-card,
  .single-product.vlg-core-product-image-active div.product .summary {
    padding: 12px !important;
    padding-bottom: calc(136px + env(safe-area-inset-bottom)) !important;
    border-radius: 18px !important;
    margin: 0 !important;
  }

  .single-product.vlg-core-product-image-active .product_title,
  .single-product.vlg-core-product-image-active div.product .product_title {
    font-size: clamp(17px, 5vw, 23px) !important;
    line-height: 1.14 !important;
    margin: 8px 0 !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  .single-product.vlg-core-product-image-active .vlg-product-price,
  .single-product.vlg-core-product-image-active div.product p.price,
  .single-product.vlg-core-product-image-active div.product span.price {
    font-size: clamp(18px, 5vw, 24px) !important;
    line-height: 1.16 !important;
  }

  .single-product.vlg-core-product-image-active .vlg-product-buybox,
  .single-product.vlg-core-product-image-active #vlg-product-buybox {
    margin-bottom: calc(136px + env(safe-area-inset-bottom)) !important;
    overflow: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .single-product.vlg-core-product-image-active form.cart:not(.variations_form),
  .single-product.vlg-core-product-image-active form.variations_form .single_variation_wrap,
  .single-product.vlg-core-product-image-active form.variations_form .woocommerce-variation-add-to-cart,
  .single-product.vlg-core-product-image-active form.variations_form .woocommerce-variation-add-to-cart.variations_button {
    display: grid !important;
    grid-template-columns: 70px minmax(0, 1fr) !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .single-product.vlg-core-product-image-active form.cart .quantity {
    width: 70px !important;
    min-width: 70px !important;
    max-width: 70px !important;
  }
}

@media (max-width: 390px) {
  .single-product .vlg-core-mobile-featured-image,
  .single-product .vlg-mobile-featured-image {
    min-height: 142px !important;
    max-height: 196px !important;
  }
  .single-product .vlg-core-mobile-featured-image img,
  .single-product .vlg-mobile-featured-image img,
  .single-product .vlg-mobile-featured-image__img {
    max-height: 184px !important;
  }
}

/* v2.3.15 — stronger mobile image canvas fallback */
@media (max-width: 782px) {
  .single-product .vlg-core-mobile-featured-image,
  .single-product .vlg-mobile-featured-image {
    height: clamp(190px, 52vw, 238px) !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    padding: 0 !important;
    background-repeat: no-repeat !important;
    background-position: 86% 50% !important;
    background-size: auto 118% !important;
  }

  .single-product .vlg-core-mobile-featured-image img,
  .single-product .vlg-mobile-featured-image img,
  .single-product .vlg-mobile-featured-image__img {
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: 86% 50% !important;
    margin: 0 !important;
  }

  .single-product .vlg-core-mobile-featured-image.vlg-bg-product-crop img,
  .single-product .vlg-mobile-featured-image.vlg-bg-product-crop img {
    opacity: 0 !important;
    visibility: hidden !important;
  }

  .single-product .vlg-core-mobile-featured-image img.vlg-core-cropped-image,
  .single-product .vlg-mobile-featured-image img.vlg-core-cropped-image,
  .single-product .vlg-mobile-featured-image__img.vlg-core-cropped-image,
  .single-product .vlg-core-mobile-featured-image img.vlg-autocropped-image,
  .single-product .vlg-mobile-featured-image img.vlg-autocropped-image,
  .single-product .vlg-mobile-featured-image__img.vlg-autocropped-image {
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 98% !important;
    max-height: 98% !important;
    object-fit: contain !important;
    object-position: center center !important;
    margin: auto !important;
  }
}

/* v2.3.16 — stabilize mobile image fallback and buybox */
@media (max-width: 782px) {
  .single-product .vlg-core-mobile-featured-image,
  .single-product .vlg-mobile-featured-image {
    height: clamp(150px, 41vw, 186px) !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    background-position: 100% 50% !important;
    background-size: auto 265% !important;
  }

  .single-product .vlg-core-mobile-featured-image.vlg-bg-product-crop,
  .single-product .vlg-mobile-featured-image.vlg-bg-product-crop,
  .single-product .vlg-core-mobile-featured-image.vlg-force-right-crop,
  .single-product .vlg-mobile-featured-image.vlg-force-right-crop {
    background-position: 100% 50% !important;
    background-size: auto 265% !important;
  }

  .single-product .vlg-core-mobile-featured-image.vlg-bg-product-crop img,
  .single-product .vlg-mobile-featured-image.vlg-bg-product-crop img,
  .single-product .vlg-core-mobile-featured-image.vlg-force-right-crop img,
  .single-product .vlg-mobile-featured-image.vlg-force-right-crop img {
    opacity: 0 !important;
    visibility: hidden !important;
  }

  .single-product.vlg-core-product-image-active form.cart:not(.variations_form),
  .single-product.vlg-core-product-image-active form.variations_form .woocommerce-variation-add-to-cart,
  .single-product.vlg-core-product-image-active form.variations_form .woocommerce-variation-add-to-cart.variations_button {
    display: flex !important;
    align-items: stretch !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .single-product.vlg-core-product-image-active form.cart .quantity {
    flex: 0 0 72px !important;
    width: 72px !important;
    min-width: 72px !important;
    max-width: 72px !important;
  }

  .single-product.vlg-core-product-image-active form.cart .single_add_to_cart_button {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
  }
}

@media (max-width: 390px) {
  .single-product .vlg-core-mobile-featured-image,
  .single-product .vlg-mobile-featured-image,
  .single-product .vlg-core-mobile-featured-image.vlg-bg-product-crop,
  .single-product .vlg-mobile-featured-image.vlg-bg-product-crop,
  .single-product .vlg-core-mobile-featured-image.vlg-force-right-crop,
  .single-product .vlg-mobile-featured-image.vlg-force-right-crop {
    height: clamp(140px, 40vw, 172px) !important;
    background-size: auto 295% !important;
    background-position: 100% 50% !important;
  }
}

/* v2.3.17 — final mobile reset: controlled image fallback and buybox fit */
@media (max-width: 782px) {
  .single-product .vlg-mobile-featured-image,
  .single-product .vlg-core-mobile-featured-image {
    display: block !important;
    width: 100% !important;
    height: clamp(190px, 54vw, 232px) !important;
    min-height: 0 !important;
    border-radius: 15px !important;
    background-color: #fff !important;
    background-repeat: no-repeat !important;
    background-position: 72% 50% !important;
    background-size: auto 220% !important;
    overflow: hidden !important;
  }

  .single-product .vlg-mobile-featured-image.vlg-bg-product-crop,
  .single-product .vlg-core-mobile-featured-image.vlg-bg-product-crop,
  .single-product .vlg-mobile-featured-image.vlg-force-right-crop,
  .single-product .vlg-core-mobile-featured-image.vlg-force-right-crop,
  .single-product .vlg-mobile-featured-image.vlg-core-v217-bg,
  .single-product .vlg-core-mobile-featured-image.vlg-core-v217-bg {
    background-position: 72% 50% !important;
    background-size: auto 220% !important;
  }

  .single-product .vlg-mobile-featured-image.vlg-core-v217-bg img:not(.vlg-core-cropped-image):not(.vlg-autocropped-image),
  .single-product .vlg-core-mobile-featured-image.vlg-core-v217-bg img:not(.vlg-core-cropped-image):not(.vlg-autocropped-image),
  .single-product .vlg-mobile-featured-image.vlg-bg-product-crop img:not(.vlg-core-cropped-image):not(.vlg-autocropped-image),
  .single-product .vlg-core-mobile-featured-image.vlg-bg-product-crop img:not(.vlg-core-cropped-image):not(.vlg-autocropped-image),
  .single-product .vlg-mobile-featured-image.vlg-force-right-crop img:not(.vlg-core-cropped-image):not(.vlg-autocropped-image),
  .single-product .vlg-core-mobile-featured-image.vlg-force-right-crop img:not(.vlg-core-cropped-image):not(.vlg-autocropped-image) {
    opacity: 0 !important;
    visibility: hidden !important;
  }

  .single-product .vlg-mobile-featured-image img.vlg-core-cropped-image,
  .single-product .vlg-core-mobile-featured-image img.vlg-core-cropped-image,
  .single-product .vlg-mobile-featured-image img.vlg-autocropped-image,
  .single-product .vlg-core-mobile-featured-image img.vlg-autocropped-image {
    opacity: 1 !important;
    visibility: visible !important;
    width: auto !important;
    height: auto !important;
    max-width: 96% !important;
    max-height: 96% !important;
    object-fit: contain !important;
  }

  .single-product .vlg-product-gallery-media > .woocommerce-product-gallery,
  .single-product .vlg-product-gallery-media > div.images {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    visibility: hidden !important;
  }

  .single-product form.cart:not(.variations_form),
  .single-product form.variations_form .woocommerce-variation-add-to-cart,
  .single-product form.variations_form .woocommerce-variation-add-to-cart.variations_button {
    display: grid !important;
    grid-template-columns: 74px minmax(0, 1fr) !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .single-product form.cart .quantity {
    width: 74px !important;
    min-width: 74px !important;
    max-width: 74px !important;
  }

  .single-product form.cart .single_add_to_cart_button {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
  }
}

/* v2.4.44 — mobile product image/lightbox edge guard.
 * Fixes in-app browser / Messenger cases where the full-screen gallery is
 * rendered a few pixels too wide or shifted, leaving a broken left edge. */
@media (max-width: 782px) {
  html.vlg-at-gallery-modal-open,
  html.vmp-lightbox-open,
  html.vlg-at-gallery-modal-open body,
  html.vmp-lightbox-open body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    overscroll-behavior-x: none !important;
    touch-action: pan-y pinch-zoom !important;
  }

  body .vlg-at-gallery-modal,
  body.vlg-theme .vlg-at-gallery-modal,
  body .vmp-lightbox,
  body.vlg-mobile-product-pro-enabled.single-product .vmp-lightbox {
    left: 0 !important;
    right: auto !important;
    top: 0 !important;
    bottom: auto !important;
    width: var(--vlg-core-vvw, 100%) !important;
    max-width: var(--vlg-core-vvw, 100%) !important;
    min-width: 0 !important;
    height: var(--vlg-core-vvh, 100dvh) !important;
    max-height: var(--vlg-core-vvh, 100dvh) !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    transform: none !important;
    translate: none !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    contain: layout paint size !important;
  }

  body .vlg-at-gallery-modal.is-open,
  body.vlg-theme .vlg-at-gallery-modal.is-open,
  body .vmp-lightbox.is-open,
  body.vlg-mobile-product-pro-enabled.single-product .vmp-lightbox.is-open {
    display: flex !important;
  }

  body .vlg-at-gallery-modal__dialog,
  body.vlg-theme .vlg-at-gallery-modal__dialog {
    left: 0 !important;
    right: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    padding-left: max(10px, env(safe-area-inset-left)) !important;
    padding-right: max(10px, env(safe-area-inset-right)) !important;
    transform: none !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  body .vlg-at-gallery-modal__stage,
  body.vlg-theme .vlg-at-gallery-modal__stage,
  body.vlg-mobile-product-pro-enabled.single-product .vmp-lightbox-stage {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    transform: none !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  body .vlg-at-gallery-modal__img,
  body.vlg-theme .vlg-at-gallery-modal__img,
  body.vlg-mobile-product-pro-enabled.single-product .vmp-lightbox-stage img,
  body.vlg-mobile-product-pro-enabled.single-product .vmp-lightbox img {
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    transform: none !important;
    box-sizing: border-box !important;
  }

  body .vlg-at-gallery-modal__counter,
  body.vlg-theme .vlg-at-gallery-modal__counter {
    left: max(10px, env(safe-area-inset-left)) !important;
    transform: none !important;
  }

  body .vlg-at-gallery-modal__close,
  body.vlg-theme .vlg-at-gallery-modal__close {
    right: max(10px, env(safe-area-inset-right)) !important;
    transform: none !important;
  }

  body .vlg-at-gallery-modal__nav--prev,
  body.vlg-theme .vlg-at-gallery-modal__nav--prev {
    left: max(8px, env(safe-area-inset-left)) !important;
  }

  body .vlg-at-gallery-modal__nav--next,
  body.vlg-theme .vlg-at-gallery-modal__nav--next {
    right: max(8px, env(safe-area-inset-right)) !important;
  }

  body .vlg-at-gallery-modal__thumbs,
  body.vlg-theme .vlg-at-gallery-modal__thumbs,
  body.vlg-mobile-product-pro-enabled.single-product .vmp-lightbox-thumbs {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 4px !important;
    padding-right: 4px !important;
    box-sizing: border-box !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-x: contain !important;
  }

  @supports (width: 100dvw) {
    body .vlg-at-gallery-modal,
    body.vlg-theme .vlg-at-gallery-modal,
    body .vmp-lightbox,
    body.vlg-mobile-product-pro-enabled.single-product .vmp-lightbox {
      width: var(--vlg-core-vvw, 100dvw) !important;
      max-width: var(--vlg-core-vvw, 100dvw) !important;
    }
  }
}

@media (max-width: 390px) {
  body .vlg-at-gallery-modal__stage,
  body.vlg-theme .vlg-at-gallery-modal__stage {
    padding-left: 38px !important;
    padding-right: 38px !important;
  }
}
