.cart {width: 100%;}
.cart tr td {border-top: 1px solid #ddd; padding: 1rem 0;}
.cart .cartline td:last-child {text-align: right;}
.cart .cartline td:first-child {width: 6.5rem;}
.cart .cartline .img {width: 5rem; height: 5rem; margin: 0 1.5rem 0 0; display: block; position: relative;}
.cart .cartline .img::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  background: rgba(0, 0, 0, 0.05);
  z-index: 1;
}
.cart .cartline img {display: block; width: 5rem; height: 5rem; object-fit: cover;}
.cart .cartline h2 {margin: 0; line-height: 1.2; margin-bottom: 0.15rem;}
.cart .cartline .price {font-size: 1rem; white-space: nowrap;}
.cart .cartline .ean {opacity: 0.35; font-size: 0.9rem;}
.cart .carttotal td {padding: 1rem 0 2rem;}
.cart .carttotal td + td {width: 10rem;}
.cart .carttotal .price {font-size: 1.75rem; white-space: nowrap;}
.cart .carttotal {text-align: right;}
.cart .cartline select,
.cart .cartline input {
    height: 2.4rem; 
    line-height: 2.4rem; 
    margin-right: 0.7rem;
    width: 4.5rem; 
    border: 1px solid rgba(0,0,0,0.15); 
    padding: 0 0.5rem;
    font-size: 1rem;
    background: transparent;
}
.cart .carttotal.discountline td {padding: 1rem 0 0;}
.cart .carttotal.discountline .price {font-size: 1rem; font-weight: 500;}
.cart .carttotal.discountline + .carttotal td {border: 0; padding-top: 0.1rem;}
.cart .carttotal.discountline + .carttotal:not(.discountline) td {padding-top: 0.75rem;}
.cart.minimal {margin-top: 1.1rem;}
.cart.minimal .cartline td {color: rgba(0, 0, 0, 0.5);}
.cart.minimal .cartline td:last-child {color: #000;}
.cart.minimal .cartline td:first-child {width: 6.5rem;}
.cart.minimal .cartline img {margin-left: 0;}
.cart.minimal .cartline h2, .cart.minimal .price {color: #000; font-size: 1rem; font-weight: 400;}
.cart.minimal .carttotal td {padding: 0.75rem 0 0;}
.cart.minimal .carttotal + .carttotal td {border: 0; padding-top: 0.25rem;}

#discount {float: left; position: relative; bottom: 5rem; width: 100%; max-width: 20rem;}
#discount > div {align-items: center; margin-bottom: 0.25rem;}
#discount div:nth-child(1) label {display: none;}
#discount input[type="hidden"] + div:nth-child(3) {position: relative; bottom: 1.75rem;}
#discount > div:nth-child(1) > div {margin-left: 1rem;}
#discount > div:nth-child(1) > div .button {padding: 0 2rem; white-space: nowrap;}
#discount > div:nth-child(2) {flex-direction: column; align-items: flex-start;}

.cartbuttons {display: flex; justify-content: flex-end; margin-top: 0.5rem;}
.cartbuttons .button {white-space: nowrap; padding: 0 2rem;}
.cartbuttons div {display: flex; align-items: center; padding: 0 0 1rem;}
.cartbuttons div + div {margin-left: 1rem;}

.clientname {font-size: small;}

@media only screen and (max-width: 900px) {
    .cart .carttotal td + td {width: 9rem;}
    #discount {float: none; bottom: 0; width: 100%;}
    #discount div:nth-child(3) input {padding: 0 1rem;}
    #discount input[type="hidden"] + div:nth-child(3) {bottom: 0; width: 100%;}
    .cartbuttons {display: block; margin-top: 2.5rem;}
    .cartbuttons div + div {margin-left: 0; width: 100%;}
    .cartbuttons div + div form {width: 100%;}
}
@media only screen and (max-width: 600px) {
    .cart:not(.minimal) .cartline td:last-child {display: none;}
    .cart:not(.minimal) .cartline td:nth-last-child(2) {text-align: right;}
    .cart .cartline input[type="number"] {margin-right: 0;}
    .cart .cartline input[type="number"] + a {display: none;}
    .clientname {display: block; position: relative; bottom: 1.5rem; margin-bottom: 1rem;}
}