/* ═══════════════════════════════════════════
   CART OVERLAY & DRAWER
═══════════════════════════════════════════ */
#cart-overlay{
  position:fixed;inset:0;background:rgba(17,17,17,.4);
  z-index:1500;opacity:0;pointer-events:none;
  transition:opacity .3s ease;
}
#cart-overlay.open{opacity:1;pointer-events:all}

#cart-drawer{
  position:fixed;top:0;right:0;width:100%;max-width:420px;
  height:100dvh;background:#fff;z-index:1501;
  display:flex;flex-direction:column;
  transform:translateX(100%);
  transition:transform .35s cubic-bezier(.25,.46,.45,.94);
  box-shadow:-8px 0 40px rgba(0,0,0,.12);
}
#cart-drawer.open{transform:none}

/* Header */
.cart-drawer-header{
  padding:20px 24px;border-bottom:1px solid #f0f0f0;
  display:flex;align-items:center;justify-content:space-between;
  flex-shrink:0;
}
.cart-drawer-header h3{
  font-family:'Montserrat',sans-serif;font-weight:900;font-size:16px;color:#111;
}
.cart-close-btn{
  background:none;border:none;font-size:18px;color:#bbb;
  cursor:pointer;padding:4px 8px;border-radius:6px;
  transition:background .15s,color .15s;font-family:inherit;
}
.cart-close-btn:hover{background:#f5f5f5;color:#111}

/* Items list */
#cart-items-list{
  flex:1;overflow-y:auto;padding:8px 24px;
  scrollbar-width:thin;scrollbar-color:#e8e8e8 transparent;
}

/* Empty state */
.cart-empty{
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;height:280px;text-align:center;gap:14px;
}
.cart-empty-icon{font-size:52px}
.cart-empty p{
  font-family:'Nunito Sans',sans-serif;font-size:15px;color:#aaa;
}
.cart-empty-btn{
  padding:11px 22px;border:1.5px solid #111;border-radius:8px;
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;
  letter-spacing:.06em;cursor:pointer;background:none;
  transition:background .2s,color .2s;
}
.cart-empty-btn:hover{background:#111;color:#fff}

/* Cart item */
.cart-item{
  display:flex;gap:12px;padding:14px 0;
  border-bottom:1px solid #f5f5f5;position:relative;
}
.cart-item:last-child{border-bottom:none}
.cart-item-img{
  width:68px;height:82px;object-fit:cover;
  border-radius:8px;flex-shrink:0;background:#f8f8f8;
}
.cart-item-info{flex:1;min-width:0;padding-right:20px}
.cart-item-name{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;
  color:#111;margin-bottom:3px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.cart-item-meta{
  font-family:'Nunito Sans',sans-serif;font-size:12px;color:#aaa;margin-bottom:10px;
}
.cart-item-row{
  display:flex;align-items:center;justify-content:space-between;
}
.cart-item-price{
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:14px;color:#111;
}
.cart-qty{
  display:flex;align-items:center;gap:6px;
  background:#f5f5f5;border-radius:8px;padding:4px 8px;
}
.cart-qty button{
  background:none;border:none;font-size:16px;cursor:pointer;
  color:#555;padding:0 3px;line-height:1;font-family:inherit;
  transition:color .15s;
}
.cart-qty button:hover{color:#111}
.cart-qty span{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;
  min-width:16px;text-align:center;
}
.cart-item-remove{
  position:absolute;top:12px;right:0;background:none;border:none;
  font-size:18px;color:#ddd;cursor:pointer;padding:2px 4px;
  border-radius:4px;transition:color .15s;font-family:inherit;
}
.cart-item-remove:hover{color:#c0392b}

/* Footer */
#cart-footer{border-top:1px solid #f0f0f0;flex-shrink:0}
.cart-footer-inner{padding:16px 20px 20px;display:flex;flex-direction:column;gap:11px}
.cart-subtotal{
  display:flex;align-items:center;justify-content:space-between;
  font-family:'Nunito Sans',sans-serif;font-size:14px;color:#555;
  margin-bottom:2px;
}
.cart-subtotal strong{
  font-family:'Montserrat',sans-serif;font-weight:900;font-size:20px;color:#111;
}
.cart-checkout-btn{
  width:100%;padding:14px;background:#009ee3;color:#fff;border:none;
  border-radius:10px;font-family:'Montserrat',sans-serif;font-weight:800;
  font-size:13px;letter-spacing:.06em;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:8px;
  transition:background .2s,transform .15s;
}
.cart-checkout-btn:hover{background:#0088cc;transform:translateY(-1px)}
.cart-checkout-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.cart-continue-btn{
  width:100%;padding:11px;border:1.5px solid #e0e0e0;border-radius:10px;
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;
  letter-spacing:.04em;color:#777;cursor:pointer;background:none;
  transition:border-color .2s,color .2s;
}
.cart-continue-btn:hover{border-color:#111;color:#111}

/* ── Shipping form ── */
.shipping-form{
  background:#FDF4F7;
  border:1.5px solid #F3BBCF;
  border-radius:12px;
  padding:14px 14px 10px;
}
.shipping-form-title{
  font-family:'Montserrat',sans-serif;font-weight:800;
  font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:#c0809a;margin-bottom:10px;
}
.shipping-fields{
  display:flex;flex-wrap:wrap;gap:7px;
}
.ship-input{
  flex:1;min-width:0;
  padding:10px 12px;
  border:1.5px solid #e8d4dc;
  border-radius:10px;
  font-family:'Nunito Sans',sans-serif;
  font-size:13px;
  color:#111;
  background:#fff;
  outline:none;
  transition:border-color .2s, box-shadow .2s;
}
.ship-input::placeholder{color:#c0b0b8;font-size:12px}
.ship-input:focus{
  border-color:#F3BBCF;
  box-shadow:0 0 0 3px rgba(243,187,207,.18);
}
.ship-input--full{flex:0 0 100%}
.shipping-summary{
  display:flex;align-items:center;gap:10px;
  background:#FDF4F7;
  border:1.5px solid #F3BBCF;
  border-radius:10px;
  padding:10px 14px;
}
.shipping-summary span{
  font-family:'Nunito Sans',sans-serif;font-size:12px;
  color:#555;flex:1;line-height:1.4;
}
.shipping-summary button{
  background:none;border:none;
  font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:11px;letter-spacing:.04em;
  color:#111;cursor:pointer;
  text-decoration:underline;white-space:nowrap;
  padding:0;transition:color .15s;
}
.shipping-summary button:hover{color:#c0809a}
.cart-shipping-row{
  display:flex;align-items:center;justify-content:space-between;
  font-family:'Nunito Sans',sans-serif;font-size:13px;color:#777;
}
.cart-shipping-row .free{
  font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:12px;color:#1a7a4a;letter-spacing:.03em;
}

/* ── Coupon ── */
.coupon-row{
  display:flex;gap:8px;align-items:center;
}
.coupon-row--applied{
  background:#f0faf4;
  border:1.5px solid #b8e0c8;
  border-radius:10px;
  padding:9px 14px;
  justify-content:space-between;
}
.coupon-input{
  flex:1;
  padding:10px 12px;
  border:1.5px solid #e8d4dc;
  border-radius:10px;
  font-family:'Nunito Sans',sans-serif;
  font-size:13px;
  color:#111;
  outline:none;
  transition:border-color .2s, box-shadow .2s;
  text-transform:uppercase;
  letter-spacing:.06em;
  background:#fff;
}
.coupon-input::placeholder{text-transform:none;letter-spacing:0;color:#bbb}
.coupon-input:focus{
  border-color:#F3BBCF;
  box-shadow:0 0 0 3px rgba(243,187,207,.18);
}
.coupon-btn{
  padding:10px 14px;
  border:1.5px solid #111;border-radius:10px;
  background:#111;color:#fff;
  font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:11px;letter-spacing:.05em;
  cursor:pointer;white-space:nowrap;
  transition:background .15s,border-color .15s;flex-shrink:0;
}
.coupon-btn:hover{background:#333;border-color:#333}
.coupon-btn:disabled{opacity:.45;cursor:not-allowed}
.coupon-chip{
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:13px;
  color:#1a7a4a;letter-spacing:.06em;
}
.coupon-remove{
  background:none;border:none;font-size:12px;color:#aaa;cursor:pointer;
  font-family:'Nunito Sans',sans-serif;font-weight:600;
  transition:color .15s;padding:0;
}
.coupon-remove:hover{color:#c0392b}
.coupon-error{
  font-family:'Nunito Sans',sans-serif;font-size:12px;color:#c0392b;
  margin-top:-2px;padding-left:2px;
}
.cart-discount-row{
  display:flex;align-items:center;justify-content:space-between;
  font-family:'Nunito Sans',sans-serif;font-size:13px;color:#1a7a4a;
}
.cart-discount-row strong{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;
}

.cart-total-row{
  display:flex;align-items:center;justify-content:space-between;
  font-family:'Nunito Sans',sans-serif;font-size:14px;color:#111;
  border-top:1px dashed #e0e0e0;padding-top:10px;margin-top:2px;
}
.cart-total-row strong{
  font-family:'Montserrat',sans-serif;font-weight:900;font-size:20px;
}

@media(max-width:480px){
  #cart-drawer{max-width:100%}
}

/* ── Delivery method selector ── */
.shipping-method-selector{
  display:flex;flex-direction:column;gap:8px;
}
.shipping-method-title{
  font-family:'Montserrat',sans-serif;font-weight:800;
  font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:#555;margin-bottom:2px;
}
.shipping-method-option{
  display:flex;flex-direction:column;gap:8px;
  border:1.5px solid #e8e8e8;border-radius:12px;
  padding:12px 14px;cursor:pointer;
  transition:border-color .2s,background .2s;
}
.shipping-method-option:hover{border-color:#F3BBCF}
.shipping-method-option.selected{
  border-color:#F3BBCF;background:#FDF4F7;
}
.shipping-method-option input[type="radio"]{display:none}
.shipping-method-info{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.shipping-method-name{
  font-family:'Nunito Sans',sans-serif;font-size:13px;font-weight:700;color:#111;
}
.shipping-method-price{
  font-family:'Montserrat',sans-serif;font-size:13px;font-weight:800;color:#111;
  white-space:nowrap;
}
.shipping-method-price.free{color:#1a7a4a}
.barrio-select{
  width:100%;padding:10px 12px;
  border:1.5px solid #e8d4dc;border-radius:10px;
  font-family:'Nunito Sans',sans-serif;font-size:13px;color:#111;
  background:#fff;outline:none;cursor:pointer;
  transition:border-color .2s,box-shadow .2s;
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23aaa' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 12px center;
  padding-right:32px;
}
.barrio-select:focus{border-color:#F3BBCF;box-shadow:0 0 0 3px rgba(243,187,207,.18)}
.shipping-method-note{
  font-family:'Nunito Sans',sans-serif;font-size:11px;color:#888;
  line-height:1.4;
}
