.cart-drawer{
position:fixed;
top:0;
right:-420px;
width:420px;
height:100%;
background:#fff;
box-shadow:-10px 0 30px rgba(0,0,0,0.08);
z-index:20020;
transition:.4s;
display:flex;
flex-direction:column;
}

.cart-drawer.active{
right:0;
}

.cart-overlay{
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,0.35);
opacity:0;
pointer-events:none;
transition:.3s;
z-index:20010;
}

.cart-overlay.active{
opacity:1;
pointer-events:auto;
}

.cart-panel{
height:100%;
display:flex;
flex-direction:column;
}

.cart-header{
display:flex;
justify-content:space-between;
align-items:center;
padding:28px 24px 18px;
border-bottom:1px solid #eee;
margin-top:0;
}

.cart-header h3{
font-size:18px;
font-weight:600;
margin:0;
}

.cart-close{
background:none;
border:none;
color:#111;
font-size:18px;
cursor:pointer;
padding:6px;
transition:color .2s ease;
}

.cart-unit-price{
font-size:13px;
color:#6b7280;
white-space:nowrap;
}

.cart-total-price{
font-size:15px;
font-weight:700;
margin-top:2px;
color:#7c3aed;
white-space:nowrap;
}

.cart-close:hover{
color:#7c3aed;
}

.cart-body{
flex:1;
overflow:auto;
padding:24px;
min-height:0;
}

.cart-item{
display:flex;
gap:14px;
margin-bottom:22px;
align-items:flex-start;
position:relative;
border-bottom:1px solid #f1f1f1;
padding-bottom:18px;
}

.cart-item img{
width:60px;
height:60px;
object-fit:cover;
}

.cart-item-title{
font-size:14px;
color:#111;
text-decoration:none;
}

.cart-footer{
padding:22px;
border-top:1px solid #eee;
display:flex;
flex-direction:column;
gap:12px;
margin-top:auto;
}

.cart-go,
.cart-checkout{
display:block;
text-align:center;
padding:12px;
border-radius:8px;
text-decoration:none;
}

.cart-go{
display:block;
text-align:center;
padding:12px;
border-radius:10px;
border:1px solid #e5e5e5;
background:#fff;
color:#444;
font-size:14px;
font-weight:500;
transition:.2s ease;
}

.cart-go:hover{
border-color:#7c3aed;
color:#7c3aed;
}

.cart-checkout{
background:linear-gradient(135deg,#7c3aed,#6d28d9);
color:#fff;
font-weight:600;
transition:.25s ease;
}

.cart-checkout:hover{
background:linear-gradient(135deg,#8b5cf6,#7c3aed);
color:#fff;
}

.cart-qty{
display:flex;
align-items:center;
gap:6px;
margin-top:6px;
}


.qty-minus,
.qty-plus{
width:32px;
height:32px;
border-radius:6px;
border:1px solid #e5e5e5;
background:#fafafa;
cursor:pointer;
font-size:18px;
display:flex;
align-items:center;
justify-content:center;
color:#555;
line-height:1;
transition:.2s ease;
}

.qty-minus:hover,
.qty-plus:hover{
border-color:#7c3aed;
color:#7c3aed;
background:#fff;
}

.qty-number{
width:48px;
height:32px;

border:1px solid #e5e5e5;
border-radius:6px;

text-align:center;

font-size:16px;
font-weight:700;
font-family:inherit;

color:#000;
background:#fff;

opacity:1;

outline:none;

transition:.2s;
}

.qty-number::-webkit-outer-spin-button,
.qty-number::-webkit-inner-spin-button{
-webkit-appearance:none;
margin:0;
}

.qty-number{
-moz-appearance:textfield;
}

.qty-number:focus{
border-color:#7c3aed;
box-shadow:0 0 0 2px rgba(124,58,237,0.15);
}

.cart-remove{
position:absolute;
top:2px;
right:0;
font-size:16px;
color:#999;
cursor:pointer;
border:none;
background:none;
padding:0;
line-height:1;
transition:color .2s ease;
}

.cart-remove:hover{
color:#7c3aed;
background:none;
}

.cart-image{
flex:0 0 60px;
}

.cart-image img{
width:60px;
height:60px;
object-fit:cover;
border-radius:8px;
}

.cart-info{
flex:1;
display:flex;
flex-direction:column;
gap:6px;
padding-right:40px;
position:relative;
}

.cart-title{
display:-webkit-box;
-webkit-line-clamp:2;
-webkit-box-orient:vertical;
overflow:hidden;
}

.cart-price{
display:flex;
flex-direction:column;
gap:2px;
}

.cart-summary{
padding:10px 20px 16px;
border-top:1px solid #eee;
border-bottom:1px solid #eee;
margin-top:10px;
font-size:14px;
}

.cart-summary-row{
display:flex;
justify-content:space-between;
margin-bottom:4px;
color:#444;
}

.cart-progress-text b{
font-weight:600;
color:#111;
}

.cart-summary-row.discount{
color:#16a34a;
font-weight:500;
}

.cart-summary-row .free{
color:#111;
font-weight:500;
}

.cart-summary-total{
display:flex;
justify-content:space-between;
font-size:16px;
font-weight:600;
margin-top:6px;
padding-top:6px;
border-top:1px solid #eee;
}

.cart-upsell{
margin-top:10px;
font-size:13px;
color:#666;
line-height:1.4;
background:#f8f8f8;
padding:10px;
border-radius:8px;
}

.cart-progress{
margin:16px 24px 24px;
padding:14px 44px 14px 14px;
background:#f8f8fb;
border-radius:10px;
font-size:13px;
position:relative;
}

.cart-progress-toggle{
position:absolute;
top:8px;
right:8px;
border:0;
background:rgba(124,58,237,.10);
color:#7c3aed;
font-size:12px;
font-weight:700;
line-height:1;
padding:0;
cursor:pointer;
display:inline-flex;
align-items:center;
justify-content:center;
width:22px;
height:22px;
border-radius:999px;
border:1px solid rgba(124,58,237,.22);
box-shadow:none;
transition:transform .2s ease, background .2s ease, color .2s ease;
}

.cart-progress-toggle:hover{
background:#ede9fe;
}

.cart-progress-toggle span{
display:block;
transform:translateY(-1px);
}

.cart-progress.is-text-collapsed .cart-progress-toggle span{
transform:translateY(-1px) rotate(180deg);
}

.cart-progress-text{
margin-bottom:10px;
color:#444;
line-height:1.4;

display:-webkit-box;
-webkit-line-clamp:2;
-webkit-box-orient:vertical;
overflow:hidden;
}

.cart-progress-bar{
height:6px;
background:#e5e5e5;
border-radius:6px;
overflow:hidden;
}

.cart-progress-fill{
height:100%;
background:linear-gradient(90deg,#7c3aed,#8b5cf6);
transition:.4s;
}

.cart-progress-count{
margin-top:6px;
font-size:12px;
color:#666;
text-align:right;
}

.cart-progress.is-text-collapsed{
padding-top:10px;
}

.cart-progress.is-text-collapsed .cart-progress-text{
display:none;
}

.cart-progress.is-text-collapsed .cart-progress-bar{
margin-top:4px;
}

.cart-progress.is-text-collapsed .cart-progress-count{
margin-top:4px;
}

@media (max-width: 767px){
.cart-drawer{
width:min(92vw,420px);
}

.cart-header{
padding:18px 16px 14px;
}

.cart-close{
font-size:22px;
}

.cart-progress{
margin:12px 16px 22px;
padding:12px 38px 12px 12px;
}

.cart-progress-toggle{
top:8px;
right:8px;
width:20px;
height:20px;
font-size:11px;
}

body.cart-open{
overflow:hidden !important;
}
}

.cart-summary-total span:last-child{
font-size:18px;
font-weight:700;
}

.cart-qty.loading,
.cart-qty.is-loading{
opacity:.5;
pointer-events:none;
}

.cart-summary-toggle{
display:flex;
align-items:center;
justify-content:space-between;
width:100%;

background:linear-gradient(135deg,#7c3aed,#6d28d9);
color:#fff;

border:none;
border-radius:10px;

cursor:pointer;

font-weight:600;
font-size:15px;

padding:12px 14px;

margin-bottom:10px;
}

.cart-summary-toggle:hover{
opacity:.75;
background:linear-gradient(135deg,#8b5cf6,#7c3aed);
}

.cart-summary-arrow{
margin-left:8px;
font-size:18px;
transition:transform .25s ease;
}

.cart-summary.open .cart-summary-arrow{
transform:rotate(180deg);
}

.cart-summary-content{
max-height:0;
overflow:hidden;
transition:max-height .3s ease;
}

.cart-summary.open .cart-summary-content{
max-height:300px;
}

.cart-summary-total-price{
font-weight:700;
margin-left:auto;
margin-right:6px;
}

.cart-discount-badge{
font-size:11px;
margin-left:6px;
background:#22c55e;
color:#fff;
padding:2px 6px;
border-radius:6px;
font-weight:600;
}

/* FIX длинного текста скидок */

.cart-summary-row span:first-child{
max-width:230px;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}