/* MERAKI WORLD - Mini Carrito Lateral PRO V38
   Mejora del flujo al agregar producto:
   - Drawer lateral premium.
   - Confirmacion clara.
   - Subtotal, unidades, botones seguir/comprar/finalizar.
   - Mobile-first.
*/

:root{
  --mw38-black:#101828;
  --mw38-black-2:#0b1220;
  --mw38-red:#e11d48;
  --mw38-red-soft:#fff1f5;
  --mw38-green:#16a34a;
  --mw38-green-soft:#ecfdf5;
  --mw38-border:#e5e7eb;
  --mw38-muted:#667085;
  --mw38-bg:#fffafa;
}

.mw38-cart-backdrop{
  position:fixed;
  inset:0;
  z-index:2200;
  background:rgba(15,23,42,.48);
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
  backdrop-filter:blur(3px);
}

.mw38-cart-drawer{
  position:fixed;
  top:0;
  right:0;
  bottom:0;
  width:min(430px,94vw);
  z-index:2201;
  background:
    radial-gradient(circle at 100% 0%,rgba(225,29,72,.08),transparent 16rem),
    linear-gradient(145deg,#fff,#fffafa 64%,#f8fafc);
  border-left:1px solid rgba(255,255,255,.9);
  box-shadow:-30px 0 90px rgba(16,24,40,.22);
  transform:translateX(106%);
  transition:transform .26s cubic-bezier(.2,.76,.2,1);
  display:grid;
  grid-template-rows:auto auto 1fr auto;
  overflow:hidden;
}

body.mw38-cart-open{
  overflow:hidden;
}

body.mw38-cart-open .mw38-cart-backdrop{
  opacity:1;
  pointer-events:auto;
}

body.mw38-cart-open .mw38-cart-drawer{
  transform:translateX(0);
}

.mw38-cart-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  padding:1.05rem 1.05rem .8rem;
  border-bottom:1px solid rgba(229,231,235,.8);
}

.mw38-cart-title{
  display:flex;
  gap:.75rem;
  align-items:center;
}

.mw38-cart-icon{
  width:46px;
  height:46px;
  border-radius:18px;
  display:grid;
  place-items:center;
  background:var(--mw38-black);
  color:#fff;
  box-shadow:0 12px 28px rgba(16,24,40,.18);
  font-size:1.2rem;
}

.mw38-cart-title h2{
  margin:0;
  font-size:1.45rem;
  line-height:1.02;
  letter-spacing:-.045em;
  color:var(--mw38-black);
  font-weight:1000;
}

.mw38-cart-title p{
  margin:.18rem 0 0;
  color:var(--mw38-muted);
  font-weight:760;
  font-size:.84rem;
}

.mw38-cart-close{
  width:42px;
  height:42px;
  border-radius:16px;
  border:1px solid var(--mw38-border);
  background:#fff;
  color:var(--mw38-black);
  display:grid;
  place-items:center;
  cursor:pointer;
  font-size:1.05rem;
}

.mw38-cart-status{
  margin:.85rem 1.05rem 0;
  padding:.78rem .86rem;
  border-radius:20px;
  background:var(--mw38-green-soft);
  border:1px solid #bbf7d0;
  color:#15803d;
  display:none;
  align-items:center;
  gap:.6rem;
  font-weight:900;
}

.mw38-cart-status.is-error{
  background:#fff1f2;
  border-color:#fecdd3;
  color:#be123c;
}

.mw38-cart-status.show{
  display:flex;
}

.mw38-cart-status i{
  font-size:1.05rem;
}

.mw38-cart-items{
  padding:1rem 1.05rem;
  overflow:auto;
  display:grid;
  align-content:start;
  gap:.78rem;
}

.mw38-cart-loading,
.mw38-cart-empty{
  min-height:230px;
  display:grid;
  place-items:center;
  text-align:center;
  color:var(--mw38-muted);
  font-weight:800;
  padding:1rem;
}

.mw38-cart-empty i,
.mw38-cart-loading i{
  display:block;
  font-size:2rem;
  color:var(--mw38-red);
  margin-bottom:.5rem;
}

.mw38-cart-item{
  display:grid;
  grid-template-columns:76px 1fr;
  gap:.78rem;
  align-items:center;
  background:#fff;
  border:1px solid #edf0f5;
  border-radius:24px;
  padding:.62rem;
  box-shadow:0 12px 28px rgba(16,24,40,.065);
}

.mw38-cart-img{
  width:76px;
  height:76px;
  border-radius:19px;
  background:#fff7f9;
  border:1px solid #fce7f3;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

.mw38-cart-img img{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:6px;
}

.mw38-cart-info{
  min-width:0;
}

.mw38-cart-name{
  margin:0;
  color:var(--mw38-black);
  font-weight:1000;
  font-size:.94rem;
  line-height:1.18;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.mw38-cart-meta{
  margin:.26rem 0 0;
  color:var(--mw38-muted);
  font-size:.75rem;
  font-weight:780;
}

.mw38-cart-row{
  margin-top:.45rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.6rem;
}

.mw38-cart-qty{
  display:inline-flex;
  align-items:center;
  gap:.25rem;
  padding:.34rem .52rem;
  border-radius:999px;
  background:#f8fafc;
  border:1px solid #edf0f5;
  color:#475467;
  font-size:.74rem;
  font-weight:900;
}

.mw38-cart-price{
  color:var(--mw38-red);
  font-weight:1000;
  font-size:.98rem;
  white-space:nowrap;
}

.mw38-cart-summary{
  padding:1rem 1.05rem 1.05rem;
  border-top:1px solid rgba(229,231,235,.85);
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(14px);
}

.mw38-cart-summary-card{
  background:#fff;
  border:1px solid #edf0f5;
  border-radius:24px;
  padding:.85rem;
  box-shadow:0 12px 28px rgba(16,24,40,.07);
}

.mw38-summary-line{
  display:flex;
  justify-content:space-between;
  gap:.8rem;
  color:#475467;
  font-weight:800;
  font-size:.86rem;
  padding:.18rem 0;
}

.mw38-summary-line strong{
  color:var(--mw38-black);
}

.mw38-summary-total{
  margin-top:.55rem;
  padding-top:.72rem;
  border-top:1px dashed #e5e7eb;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
}

.mw38-summary-total span{
  color:var(--mw38-muted);
  font-size:.82rem;
  font-weight:900;
}

.mw38-summary-total strong{
  color:var(--mw38-red);
  font-size:1.34rem;
  line-height:1;
  font-weight:1000;
}

.mw38-cart-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.58rem;
  margin-top:.8rem;
}

.mw38-cart-actions a,
.mw38-cart-actions button{
  min-height:46px;
  border-radius:18px;
  border:1px solid var(--mw38-border);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.48rem;
  text-decoration:none;
  font-weight:1000;
  cursor:pointer;
  padding:.68rem .78rem;
}

.mw38-cart-actions button{
  background:#fff;
  color:var(--mw38-black);
}

.mw38-cart-actions a.is-cart{
  background:#fff;
  color:var(--mw38-red);
  border-color:#fecdd3;
}

.mw38-cart-actions a.is-checkout{
  grid-column:1/-1;
  background:var(--mw38-black);
  border-color:var(--mw38-black);
  color:#fff;
  box-shadow:0 14px 30px rgba(16,24,40,.18);
}

.mw38-cart-actions a.is-checkout.is-disabled{
  opacity:.45;
  pointer-events:none;
}

#mwFloatingCart.mw38-enhanced{
  background:var(--mw38-black)!important;
  box-shadow:0 18px 42px rgba(16,24,40,.18)!important;
}

.mw-cart-toast.mw38-toast-upgraded{
  border-radius:26px!important;
  box-shadow:0 22px 65px rgba(16,24,40,.18)!important;
}

.mw-cart-toast.mw38-toast-upgraded .mw-cart-toast-icon{
  background:var(--mw38-black)!important;
}

.mw-cart-toast.mw38-toast-upgraded .mw-cart-toast-title{
  color:var(--mw38-black)!important;
}

.mw-cart-toast.mw38-toast-upgraded .mw-cart-toast-actions a{
  background:var(--mw38-black)!important;
  color:#fff!important;
}

.mw-cart-toast.mw38-toast-upgraded .mw-cart-toast-actions button{
  color:var(--mw38-black)!important;
}

@media(max-width:575.98px){
  .mw38-cart-drawer{
    width:100vw;
    border-left:0;
  }

  .mw38-cart-head{
    padding:.92rem .88rem .72rem;
  }

  .mw38-cart-title h2{
    font-size:1.28rem;
  }

  .mw38-cart-icon{
    width:42px;
    height:42px;
    border-radius:16px;
  }

  .mw38-cart-status{
    margin:.72rem .88rem 0;
    border-radius:18px;
    font-size:.84rem;
  }

  .mw38-cart-items{
    padding:.82rem .88rem;
    gap:.62rem;
  }

  .mw38-cart-item{
    grid-template-columns:68px 1fr;
    border-radius:21px;
  }

  .mw38-cart-img{
    width:68px;
    height:68px;
    border-radius:17px;
  }

  .mw38-cart-name{
    font-size:.88rem;
  }

  .mw38-cart-summary{
    padding:.82rem .88rem calc(.88rem + env(safe-area-inset-bottom));
  }

  .mw38-cart-actions{
    grid-template-columns:1fr;
  }

  .mw38-cart-actions a.is-checkout{
    grid-column:auto;
  }
}
