*{
  box-sizing:border-box;
}

body{
  font-family:Arial, sans-serif;
  background:#f7f7f7;
  margin:0;
  padding:12px 12px 90px;
  color:#222;
}

.title{
  text-align:center;
  margin:8px 0 14px;
  font-size:28px;
  font-weight:700;
}

/* WRAPPER MOBILE */
.container{
  width:100%;
  max-width:420px;
  margin:0 auto;
}

/* MENU CARD */
.menu{
  display:flex;
  gap:12px;
  align-items:flex-start;
  background:#fff;
  margin-bottom:12px;
  padding:12px;
  border-radius:14px;
  border:1px solid #ececec;
}

.menu img{
  width:72px;
  height:72px;
  border-radius:10px;
  object-fit:cover;
  flex-shrink:0;
  background:#eee;
}

.info{
  flex:1;
  min-width:0;
}

.info b{
  display:block;
  font-size:18px;
  line-height:1.2;
  margin-bottom:2px;
}

small{
  display:block;
  color:#666;
  font-size:14px;
  margin-bottom:8px;
}

select,
input,
textarea{
  width:100%;
  padding:10px 12px;
  border:1px solid #d7d7d7;
  border-radius:10px;
  background:#fff;
  font-size:16px;
  outline:none;
}

select{
  margin:4px 0 10px;
}

input,
textarea{
  margin-bottom:10px;
}

textarea{
  min-height:90px;
  resize:vertical;
}

/* QTY */
.qty{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.qty button{
  width:42px;
  height:42px;
  border:none;
  border-radius:10px;
  background:#f0f0f0;
  color:#222;
  font-size:22px;
  cursor:pointer;
}

.qty span{
  flex:1;
  text-align:center;
  font-size:28px;
  font-weight:700;
}

/* CART BUTTON BOTTOM */
.cart{
  position:fixed;
  left:12px;
  right:12px;
  bottom:12px;
  max-width:420px;
  margin:0 auto;
  background:#2ecc71;
  color:#fff;
  text-align:center;
  padding:14px;
  border-radius:14px;
  font-weight:700;
  font-size:18px;
  border:none;
  cursor:pointer;
  display:block;
  z-index:99;
}

/* LIST CHECKOUT */
#list{
  max-width:420px;
  margin:0 auto 12px;
}

.total-box{
  background:#fff;
  border:1px solid #ececec;
  border-radius:14px;
  padding:14px;
  font-weight:700;
  margin-bottom:12px;
}

/* PAYMENT */
.payment-box{
  max-width:420px;
  margin:0 auto;
  background:#fff;
  border:1px solid #ececec;
  border-radius:14px;
  padding:18px;
  text-align:center;
}

#qr{
  width:200px;
  max-width:100%;
  display:block;
  margin:0 auto 14px;
  border-radius:12px;
  background:#fff;
}

#total{
  text-align:center;
  font-size:24px;
  margin:10px 0 0;
}

/* RESPONSIVE HP */
@media (max-width:480px){
  .title{
    font-size:24px;
  }

  .menu{
    padding:10px;
    gap:10px;
  }

  .menu img{
    width:64px;
    height:64px;
  }

  .info b{
    font-size:16px;
  }

  .qty button{
    width:40px;
    height:40px;
  }

  .qty span{
    font-size:24px;
  }

  .cart{
    font-size:17px;
  }
}