Walmart raises age to buy tobacco to 21