.eco-qv-overlay{
  position: fixed !important;
  left: 0; top: 0; right: 0; bottom: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0,0,0,.55);
  z-index: 2147483647 !important;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
  transform: none !important;
}

body.eco-qv-open{ overflow: hidden; }

.eco-qv-wrap{
  width: 100%;
  max-width: 980px;
  max-height: calc(100vh - 36px);
  overflow: auto;
}

.eco-qv{
  position: relative;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 20px 80px rgba(0,0,0,.25);
  padding: 22px;
}

.eco-qv-close{
  position: absolute;
  top: 10px; right: 12px;
  width: 36px; height: 36px;
  border: 0;
  border-radius: 10px;
  background: #f2f2f2;
  cursor: pointer;
  font-size: 22px;
  line-height: 36px;
}

.eco-qv-grid{
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 26px;
  align-items: start;
  margin-top: 20px;
}

.eco-qv-img{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 16px;
  background: #fafafa;
}

.eco-qv-title{
  margin: 0 0 6px;
  font-size: 28px;
  font-weight: 800;
  letter-spacing: .2px;
  text-transform: uppercase;
}

.eco-qv-buy{
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 14px 0 18px;
  flex-wrap: wrap;
}

.eco-qv-price-new{
  font-size: 28px;
  font-weight: 900;
}

.eco-qv-price-old{
  margin-left: 10px;
  color: #9b9b9b;
  text-decoration: line-through;
  font-weight: 700;
}

.eco-qv-btn{
  margin-left: auto;
  border: 0;
  border-radius: 12px;
  padding: 14px 18px;
  font-weight: 800;
  cursor: pointer;
  background: #ff7a2f;
  color: #fff;
  white-space: nowrap;
}

.eco-qv-qty.eco-qty{
}

.eco-qv-sections{ margin-top: 10px; }
.eco-qv-sec{ padding-top: 12px; }

.eco-qv-h{
  font-weight: 900;
  margin: 10px 0 8px;
}

.eco-qv-text{
  color: #2d2d2d;
  line-height: 1.55;
}

.eco-qv-loading{
  background: #fff;
  border-radius: 16px;
  padding: 22px;
  text-align: center;
  font-weight: 800;
}

@media (max-width: 860px){
  .eco-qv-grid{ grid-template-columns: 1fr; }
  .eco-qv-btn, .eco-qv-qty.eco-qty{ margin-left: 0; width: 100%; }
}

.eco-qv-text section {
  font-size: 12px;
}
.eco-qv-text h2 {
  font-size: 14px;
  line-height: 17px;
  margin-bottom: 10px;
}
.eco-qv-text p {
  margin-bottom: 10px;
}
.eco-qv-text h3 {
  margin-bottom: 7px; 
}
.eco-qv-h {
  display: none;
}
.eco-qv-grid{
  display:grid;
  grid-template-columns:420px 1fr;
  gap:40px;
}

/* фото */

.eco-qv-img-sticky{
  position:sticky;
  top:20px;
}

.eco-qv-img{
  width:100%;
  border-radius:16px;
}

/* цена */

.eco-qv-price{
  margin:10px 0 15px;
}

.eco-qv-price-new{
  font-size:28px;
  font-weight:900;
}

.eco-qv-price-old{
  margin-left:10px;
  text-decoration:line-through;
  color:#888;
}

/* корзина */

.eco-qv-cart{
  display:flex;
  align-items:center;
  gap:15px;
  margin-bottom:20px;
}

.eco-qv-add{
  padding:12px 20px;
  border-radius:10px;
  border:0;
  background:#ff7a2f;
  color:#fff;
  font-weight:700;
  cursor:pointer;
  display: none;
}

/* количество */

.eco-qv-qty{
  display:flex;
  align-items:center;
  gap:10px;
}

.eco-qv-qty button{
  width:36px;
  height:36px;
  border-radius:8px;
  border:0;
  background:#eee;
  cursor:pointer;
}

.quantity-value{
  width:30px;
  text-align:center;
}

/* описание */

.eco-qv-description{
  line-height:1.6;
}

/* мобильный */

@media (max-width:900px){

  .eco-qv-grid{
    grid-template-columns:1fr;
  }

  .eco-qv-img-sticky{
    position:relative;
    top:auto;
  }

}
/* Overlay */
.eco-qv-overlay{
  position: fixed !important;
  inset: 0;
  background: rgba(0,0,0,.55);
  z-index: 2147483647 !important;
  display: none;
  overflow: hidden; /* важное */
  padding: 18px;
}
body.eco-qv-open{ overflow: hidden; }

/* Wrap */
.eco-qv-wrap{
  width: 100%;
  max-width: 980px;
  height: calc(100vh - 130px);   /* модалка по высоте */
  margin: 0 auto;
  display: flex;
}

/* Modal */
.eco-qv{
  width: 100%;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 20px 80px rgba(0,0,0,.25);
  position: relative;
  padding: 18px;
  overflow: hidden; /* важно */
}

/* Close */
.eco-qv-close{
  position: absolute;
  top: 10px; right: 12px;
  width: 36px; height: 36px;
  border: 0;
  border-radius: 10px;
  background: #f2f2f2;
  cursor: pointer;
  font-size: 22px;
  line-height: 36px;
  z-index: 3;
}

/* Grid */
.eco-qv-grid{
  display: grid;
  grid-template-columns: 420px 1fr;
  gap: 26px;
  height: 100%;
}

/* Left sticky image */
.eco-qv-left{ height: 100%; }
.eco-qv-sticky{
  position: sticky;
  top: 0;
}
.eco-qv-img{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 16px;
  background: #fafafa;
}

/* Right scroll */
.eco-qv-right{
  height: 100%;
  overflow: auto;           /* ВОТ ГДЕ СКРОЛЛ */
  padding-right: 8px;
}

/* Title / weight */
.eco-qv-title{
  margin: 0 0 6px;
  font-size: 19px;
  font-weight: 800;
  text-transform: uppercase;
  margin-top: 20px;
}
.eco-qv-weight{ color:#9b9b9b; font-weight:600; }

/* Price */
.eco-qv-price{ margin: 10px 0 12px; }
.eco-qv-price-new{ font-size: 28px; font-weight: 900; }
.eco-qv-price-old{ margin-left: 10px; color:#999; text-decoration: line-through; font-weight:700; }

/* QTY row */
.eco-qv-buy-row{
  display:flex;
  align-items:center;
  gap: 14px;
  margin-bottom: 14px;
}
.eco-qv-qty{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #8dbb2b;
  color: #fff;
}
.eco-qv-qty .quantity-btn{
  width: 34px; height: 32px;
  border: 0;
  border-radius: 10px;
  background: rgba(255,255,255,.2);
  color: #fff;
  font-size: 18px;
  cursor: pointer;
}
.eco-qv-qty .quantity-value{
  min-width: 28px;
  text-align: center;
  font-weight: 900;
}

.eco-qv-stock{ color:#777; font-weight:600; }

/* Text */
.eco-qv-text{ line-height: 1.6; }
.eco-qv-text section{ font-size: 13px; }
.eco-qv-text h2{ font-size: 15px; margin: 0 0 10px; }
.eco-qv-text p{ margin: 0 0 10px; }
.eco-qv-text h3{ margin: 12px 0 7px; }

/* Mobile */
@media (max-width: 900px){
  .eco-qv-wrap{ height: calc(100vh - 36px); }
  .eco-qv-grid{ grid-template-columns: 1fr; }
  .eco-qv-right{ overflow: auto; }
  .eco-qv-sticky{ position: relative; }
}
.eco-qv-skeleton{ padding: 18px; }
.eco-qv-skel-img{
  width:100%;
  aspect-ratio: 1 / 1;
  border-radius:16px;
  background:#eee;
}
.eco-qv-skel-line{
  height:14px;
  border-radius:10px;
  background:#eee;
  margin:10px 0;
}
.eco-qv-skel-line.w70{ width:70%; }
.eco-qv-skel-line.w40{ width:40%; }
.eco-qv-skel-line.w30{ width:30%; }
.eco-qv-skel-btn{
  width:260px;
  height:44px;
  border-radius:12px;
  background:#eee;
  margin:14px 0 18px;
}
.eco-qv-skel-text{
  height:220px;
  border-radius:16px;
  background:#f0f0f0;
}

/* лёгкая анимация */
.eco-qv-skel-img,
.eco-qv-skel-line,
.eco-qv-skel-btn,
.eco-qv-skel-text{
  position: relative;
  overflow: hidden;
}
.eco-qv-skel-img:after,
.eco-qv-skel-line:after,
.eco-qv-skel-btn:after,
.eco-qv-skel-text:after{
  content:'';
  position:absolute;
  top:0; left:-40%;
  width:40%;
  height:100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent);
  animation: ecoSkel 1.1s infinite;
}
@keyframes ecoSkel{
  0%{ left:-40%; }
  100%{ left:120%; }
}