/***********/
/* general */
/***********/

.component.cart button {
    color: #000000;
}

.component.cart .price {
    font-size: 17px;
    line-height: 17px;
    font-weight: bold;
}

.component.cart input[type="text"],
.component.cart textarea {
  border: 1px solid #CCCCCC;
  padding: 8px;
}

.component.cart textarea:focus,
.component.cart input[type="text"]:focus {
  border: 1px solid black;
}

.component.cart label {
    margin: 0 0 0.5em;
}


/*******************/
/* header & footer */
/*******************/
.component.cart .top-nav,
.component.cart .bottom-nav {
    overflow: hidden;
}

.component.cart .next-step,
.component.cart .prev-step {
    display: inline-block;
    font-size: 22px;
    /*font-size: 16px;*/
    line-height: 22px;
    padding: 10px;
}

.component.cart .next-step {
    float: right;
    width: 47.5%;
    max-width:400px;
}

.component.cart .prev-step {
    float: left;
    border: 0 none;
    background: none;
    color: #666;
    font-size: 16px;
    padding-left: 0px;
    padding-right: 0px;
    text-align: left;
}
.component.cart .nav-element.nav-previous:before {color: #666;}

@media screen and (max-width: 768px) {
}

@media screen and (max-width: 480px) {
    .component.cart .next-step,
    .component.cart .prev-step {
        width: 100%;
    }
}

.component.cart .cart-header .title-bar {
    background-color: #f3f3f3;
    padding: 40px 20px;
}

.component.cart .cart-header .title {
    color: #808080;
    margin: 0;
    /* To allow the float right for some templates without having to override `default` */
    display: inline-block; 
    vertical-align: middle;
    font-weight: normal;
}

.component.cart .cart-header .steps {
    overflow: hidden;
    padding: 0;
    margin: 20px 0 0;
    list-style: none; /* remove default numbering */
    counter-reset: cart-step; /* initiate a counter */
    vertical-align: middle
}

.component.cart .cart-header .steps .item {
    float: left;
    width: 25%;
    min-width: 150px;
    color: #949494;
}

@media screen and (max-width: 768px) {
    .component.cart .cart-header .steps .item {
        width: 50%;
    }
}

@media screen and (max-width: 480px) {
    .component.cart .cart-header .steps .item {
        width: 100%;
    }
}

.component.cart .cart-header .steps .item {
    color: #949494;
}

.component.cart .cart-header .steps .item.active {
    color: #333333;
    font-weight: normal;
}

.component.cart .cart-header .steps .item:before {
    content: counter(cart-step);
    counter-increment: cart-step;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    display: inline-block;
    width: 30px;
    height: 30px;
    line-height: 28px;
    border: 1px solid #ececec;
    border-radius: 15px;
    text-align: center;
    margin-right: 10px;
    color: #949494;
    font-size: 18px;
}

.component.cart .cart-header .steps .item.active:before {
    background-color: #cbcbcb;
    color: #333333;
}


/*************/
/* Cart item */
/*************/
.component.cart .cart-items {
    display: table;
    width: 100%;
}

.component.cart .cart-item {
    display: table-row;
}

.component.cart .cart-item .product-info,
.component.cart .cart-item .shopping-info {
    display: table-cell;
    vertical-align: middle;
    border-bottom: 1px solid #ececec;
    padding: 20px 0;
}

.component.cart .cart-item .product-info {
    width: auto;
}

.component.cart .cart-item .shopping-info {
    width: 290px;
}


@media screen and (max-width: 768px) {
    .component.cart .cart-items,
    .component.cart .cart-item {
        display: block;
    }

    .component.cart .cart-item .product-info,
    .component.cart .cart-item .shopping-info {
        display: table;
        width: 100%;
    }
    
    .component.cart .cart-item .product-info {
        border: 0;
        padding-bottom: 0;
    }
}


/* product-info elements */
.component.cart .cart-item .product-info .product-thumbnail,
.component.cart .cart-item .product-info .product-details {
    display: inline-block;/*table-cell*/
    vertical-align: middle;
}

.component.cart .cart-item .product-info .product-thumbnail {
    width: 85px;
}

.component.cart .cart-item .product-info .product-details {
    width: calc(100% - 95px);
    padding: 0 10px;
}

.component.cart .cart-item .product-info .product-thumbnail img {
    border: 1px solid #ececec;
    width: 100%;
}

/* shopping-info elements */
.component.cart .cart-item .shopping-info .quantities,
.component.cart .cart-item .shopping-info .prices,
.component.cart .cart-item .shopping-info .actions {
    display: table-cell;
    vertical-align: middle;
}

.component.cart .cart-item .shopping-info .quantities {
    width: 80px;
    float:left
}

.component.cart .cart-item .shopping-info .prices {
    width: 110px;
    text-align: right;
}

.component.cart .cart-item .shopping-info .actions {
    width: 100px;
    text-align: right;
}

.component.cart .cart-item .shopping-info .actions .delete {
    background-color: #CCC;
    color: #000;
}

.component.cart .cart-item .shopping-info .actions .delete:hover {
    background-color: #7A578F;
    color: #000000;
}

/* quantity spinner */
.component.cart .cart-item .shopping-info .quantity.spinner .spinner-input,
.component.cart .cart-item .shopping-info .quantity {
    color: #666;
    border: 1px solid #ececec;
    background-color: white;
}

.component.cart .cart-item .shopping-info .quantity.spinner .spinner-buttons a.incr:before {
    border-bottom-color: #797979;
}

.component.cart .cart-item .shopping-info .quantity.spinner .spinner-buttons a.decr:before {
    border-top-color: #797979;
}


/* product details */
.component.cart .cart-item .product-details .label,
.component.cart .cart-item .product-details .options,
.component.cart .cart-item .product-details .promo-campaign {
    font-size: 15px;
    margin: 10px 0;
}

.component.cart .cart-item .product-details :first-child {
    margin-top: 0;
}

.component.cart .cart-item .product-details :last-child {
    margin-bottom: 0;
}

.component.cart .cart-item .product-details .options .name {
    font-weight: normal;
    display: inline-block;
}

.component.cart .cart-item .product-details .options .value {
    font-weight: bold;
    display: inline-block;
    margin-right: 10px;
}

/* prices */
.component.cart .cart-item .price {
    display: block;
}

.component.cart .cart-item .regular-price {
    color: #999;
    font-weight: normal;
    text-decoration: line-through;
}


/***************/
/* Order recap */
/***************/
.component.cart .order-recap {
    margin: 1em 0;
    width:400px;
    float:right
}

.component.cart .order-recap .order-recap-item {
    margin: 1em 0;
    overflow: hidden;  /* because price is floating */
}

.component.cart .order-recap .price {
    float: right;
    margin-left: 2%;
    font-weight: normal;
}

.component.cart .order-recap .promo-code label {
    display: block;
}

.component.cart .order-recap .promo-code-input {
    display: block;
    overflow: hidden;
}

.component.cart .order-recap .promo-code-input .redeem{
    width: 80px;
}

.component.cart .order-recap .promo-code-input .field {
    display: inline-block;
    width: calc(100% - 100px);
}

.component.cart .order-recap .promo-code-input .nagare-error-field {
    width: calc(100% - 100px);
}

/* field design when with an error (the structure changes) */
.component.cart .order-recap .promo-code-input .nagare-error-input {
    width: 100%;
}

.component.cart .order-recap .promo-code-input .nagare-error-field .field {
    width: 100%;
}

.component.cart .nagare-error-input .field.error {
    background-color: #fff3f3;
    border: 1px solid #ff0000;
}

.component.cart .label.error,
.component.cart .billing-content .contact-fields-legend .remark.error-message{
    color: #ff0000;
}

.component.cart .order-recap .promo-code-input button {
    display: inline-block;
    width: 12%;
    float: right;
}

.component.cart .order-recap .grand-total,
.component.cart .order-recap .grand-total .price {
    font-weight: bold;
}

.component.cart .order-recap .comment label {
    display: block;
}

.component.cart .order-recap .comment textarea {
    display: block;
    width: 100%;
}


/* separator */
.component.cart .order-recap .grand-total:before {
    content: '';
    display: block;
    width: 100%;
    height: 1px;
    background: #CCCCCC;
    margin: 0 0 1em;
}

.component.cart .order-recap .shipping-pickup {
    color: #5d5d5d;
    background-color: #f3f3f3;
    padding: 15px;
}

.component.cart .order-recap .shipping-pickup input {
    margin-right: 6px;
}

.component.cart .billing-content {
    display: inline-block;
    width: 100%;
    border-bottom:1px solid #cccccc;
    padding-bottom:10px;
    margin-bottom:15px
}

.component.cart .billing-content .contact-fields,
.component.cart .billing-content .address-fields {
    border: 0;
    width:42%
}

.component.cart .billing-content .form-fields {
    display: inline;
    vertical-align: top;
}

.component.cart .billing-content .address-fields{float:right;right:0}

.component.cart .billing-content .contact-fields-legend,
.component.cart .billing-content .address-fields-legend {
    margin: 30px 0 20px;
}

.component.cart .billing-content .contact-fields-legend .label,
.component.cart .billing-content .address-fields-legend .label,
.component.cart .billing-address .title
.component.cart .basket-content .title {
    display: block;
    font-weight: bold;
}

.component.cart .billing-address .title,
.component.cart .basket-content .title {font-size:13px}

.component.cart .billing-content .contact-fields-legend .remark,
.component.cart .billing-content .address-fields-legend .remark {
    display: block;
    color: #999;
    margin-top: 5px;
}

.component.cart .billing-content label {
    display: block;
    margin: 0;
}
.component.cart .billing-content .field-label {
    display: inline-block;
}
.component.cart .billing-field input[type=checkbox] {
    margin-right: 10px;
    margin-bottom: 15px;
}
.component.cart .billing-content input[type=text],
.component.cart .billing-content select {
    width: 100%;
    margin-bottom: 15px;
}

.component.cart .billing-field {
    width: 100%;
}

.component.cart .billing-field .nagare-error-field {
    width: 100%;
}
.component.cart .checkbox-field .billing-field .nagare-error-field {
    width: auto;
}
.component.cart .billing-field .nagare-error-input {
    width: 100%;
}

.component.cart .cart-content.payment .basket-content .shopping-info .prices,
.component.cart .cart-content.confirmation .basket-content .shopping-info .prices {
    display: inline-block;
    width: calc(100% - 80px);
    padding: 9px 0;
}

/***************/
/*   Payment   */
/***************/

.component.cart .billing-address {
    margin: 25px 0;
}

.component.cart .billing-address address {
    padding: 0;
    font-size: 13px;
    font-style: normal;
}

.component.cart .thank-you + .billing-address:before,
.component.cart .billing-address + .basket-content:before {
    content: '';
    display: block;
    width: 100%;
    height: 1px;
    background: #CCCCCC;
    margin-bottom: 1em;
}

.component.cart .terms-and-conditions .error-message {
    color: #ff0000;
    margin: 5px 0;
}

.component.cart .terms-and-conditions {
    color: #adadad;
    font-size: 13px;
    margin-left: auto;
    text-align: center;
    width: 47.5%;
    max-width: 400px;
}

@media screen and (max-width: 480px) {
    .component.cart .terms-and-conditions {
        width: 100%;
        clear: both;
    }
}

.component.cart .terms-and-conditions.full {
    background-color: #f3f3f3;
    color: #000000;
    padding: 8px 0;
    
}

.component.cart .terms-and-conditions.full .label {
    padding-left: 15px;
}

.component.cart .terms-and-conditions.full .field {
    margin-bottom: 3px;
}

.component.cart .terms-and-conditions.full .tos-link {
    font-weight: bold;
    text-decoration: underline;
}

.component.cart .cart-footer{clear:both}

/**************************/
/*   Terms & Conditions   */
/**************************/

.component.cart .payment-choice {
    background-color: #f3f3f3;
    border-bottom: 1px solid #cccccc;
    border-top: 1px solid #cccccc;
    margin-bottom: 25px;
    margin-top: 50px;
    padding: 25px 8px;
    clear:both
}
.component.cart .payment-choice .title {
    font-size: 15px;
}
.component.cart .payment-choice .payment-option-list {
    margin: 0;
    padding: 0;
}

.component.cart .payment-choice .payment-option-list .payment-option {
    display: block;
    margin: 25px 0 0;
    padding: 0 0 0 30px;
    position: relative;
}

./*component.cart .payment-choice .radio-label {
}*/

.component.cart .payment-choice .radio-label .name {
    cursor: pointer;
    display: inline-block;
    font-size: 17px;
}

.component.cart .payment-choice .radio-label .explanation {
    font-size: 13px;
    margin-left: 10px;
}

.component.cart .payment-choice .paypal .radio-label .name {
    background: url(../img/base_cart_paypal_payment_label.png) no-repeat scroll right top rgba(0, 0, 0, 0);
    display: inline-block;
    height: 44px;
    text-indent: -9999px;
    width: 64px;
    vertical-align: middle;
}

.component.cart .payment-choice input[type="radio"] {
    display: none;
}

.component.cart .payment-choice .radio-label:before {
    content: "";
    display: inline-block;
    font-family: "icomoon-ecommerce";
    font-size: 16px;
    height: 16px;
    width: 16px;
    line-height: 1;
    vertical-align: baseline;
    margin-left:-30px;
    margin-right: 14px;
}

.component.cart .payment-choice input[type="radio"]:checked + .radio-label:before {
    content: "";
}

.component.cart .thank-you {
    color: #adadad;
    margin: 50px auto;
    text-align: center;
    width: 450px;
}

.component.cart .thank-you .title {
    color: #000000;
    font-size: 22px;
}

@media  screen and (max-width:768px){
    .component.cart .order-recap{width:inherit;float: none}
    
    .component.cart .billing-content .contact-fields,
    .component.cart .billing-content .address-fields {
        border: 0;
        width:100%;
        float:none;
        display:block
    }

    .component.cart .thank-you {width: auto;}

}
