/** #region Bootstrap modal Left/Right */
.modal.left .modal-dialog, .modal.right .modal-dialog { position: fixed; margin: auto; height: 100%!important; top: 0; -webkit-transform: translate3d(0%, 0, 0); -ms-transform: translate3d(0%, 0, 0); transform: translate3d(0%, 0, 0); width: 100%; max-width: 80%; }
@media (min-width: 680px) { .modal.left .modal-dialog, .modal.right .modal-dialog { width: 420px; } }

.modal.left .modal-content, .modal.right .modal-content { position: relative; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-flow: column wrap; flex-flow: column wrap; height: 100%; width: 100%; border-radius: 0; }
.modal.left .modal-content > div, .modal.right .modal-content > div { z-index: 1; }
.modal.left .modal-content .modal-header, .modal.right .modal-content .modal-header { text-align: center; }
.modal.left .modal-content .modal-header .close, .modal.right .modal-content .modal-header .close { position: absolute; top: 20px; left: -60px; color: #fff; opacity: 1; }
.modal.left .modal-content .modal-body, .modal.right .modal-content .modal-body { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; width: 100%; overflow-y: auto; overflow-x: hidden; }
.modal.left .modal-content .modal-loading, .modal.right .modal-content .modal-loading { position: absolute; z-index: 0; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.8); }
.modal.left .modal-content .modal-loading.in, .modal.right .modal-content .modal-loading.in { z-index: 100; }
.modal.left .modal-content .modal-loading .wrap, .modal.right .modal-content .modal-loading .wrap { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); }

.modal.left .modal-body, .modal.right .modal-body { padding: 15px 15px 80px; }

/*Left*/
.modal.left.fade .modal-dialog { -webkit-transition: opacity 0.3s linear, left 0.3s ease-out; -o-transition: opacity 0.3s linear, left 0.3s ease-out; transition: opacity 0.3s linear, left 0.3s ease-out; left: -100%; }
@media (min-width: 680px) { .modal.left.fade .modal-dialog { left: -420px; } }

.modal.left.fade.in .modal-dialog { left: 0; }

/*Right*/
.modal.right.fade .modal-dialog { -webkit-transition: opacity 0.3s linear, right 0.3s ease-out; -o-transition: opacity 0.3s linear, right 0.3s ease-out; transition: opacity 0.3s linear, right 0.3s ease-out; right: -100%; }
@media (min-width: 680px) { .modal.right.fade .modal-dialog { right: -420px; } }

.modal.right.fade.in .modal-dialog { right: 0; }

@-webkit-keyframes rotate { to { -webkit-transform: rotate(360deg); transform: rotate(360deg); } }

@keyframes rotate { to { -webkit-transform: rotate(360deg); transform: rotate(360deg); } }
.spinner-border { display: inline-block; width: 2rem; height: 2rem; vertical-align: text-bottom; border: .25em solid currentColor; border-right-color: transparent; border-radius: 50%; -webkit-animation: spinner-border 1.75s linear infinite; animation: rotate 2s linear infinite; }

/* #endregion Bootstrap modal */
@media (max-width: 580px) {
    .modal.right .modal-dialog {max-width: 90%!important;}
    .modal.right .modal-content .modal-header .close {left:-30px!important;}
}
#mainMenu .modal-body { padding: 0; }
#mainCart {z-index: 100000;}
#mainCart.modal .modal-body {padding: 15px 15px 10px !important;}

#mainCart .modal-body .cart-item { background-color: unset; border: unset; padding: 0; }
#mainCart .modal-body .cart-item + .cart-item { margin-top: 1rem; }
#mainCart .modal-body .product-line-grid { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -ms-flex-flow: row wrap; flex-flow: row wrap; gap: .5rem; }
#mainCart .modal-body .product-line-grid > div { margin: 0; padding: 0; width: 100%; float: unset; }
#mainCart .modal-body .product-line-grid .product-line-grid-left { -webkit-box-flex: 0; -ms-flex: 0 0 90px; flex: 0 0 90px; }
#mainCart .modal-body .product-line-grid .product-line-grid-left img { width: 100%; max-width: 100%; }
#mainCart .modal-body .product-line-grid .product-line-grid-body { -webkit-box-flex: 1; -ms-flex: 1; flex: 1;}
#mainCart .modal-body .product-line-grid .product-line-grid-body .product-line-info { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; gap: .5rem; }
#mainCart .modal-body .product-line-grid .product-line-grid-body .product-line-info .current-price { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; }
#mainCart .modal-body .product-line-grid .product-line-grid-right { -webkit-box-flex: 0; -ms-flex: 0 0 70px; flex: 0 0 70px; }
#mainCart .modal-body .product-line-grid .product-line-grid-right .bootstrap-touchspin input { padding: 10px; width: 4rem; height: unset; }
#mainCart .modal-body .product-line-grid .product-line-grid-right .bootstrap-touchspin button { position: relative; font-size: .8rem; padding: 1em; }
#mainCart .modal-body .product-line-grid .product-line-grid-right .bootstrap-touchspin button i { top: 0; left: 50%; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); font-size: 1.4em; z-index: 10; line-height: 1.4em; }
#mainCart .modal-body .product-line-grid-body .cart-line-product-actions a { padding: 5px; }
#mainCart .modal-body .product-line-grid-body .cart-line-product-actions a span { font-size: 20px; }
#mainCart .modal-footer { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-flow: column; flex-flow: column;}
#mainCart .modal-footer > div { width: 100%; padding-left: 0; padding-right: 0; }
#mainCart .modal-footer .card-block { width: 100%; }
#mainCart .modal-footer .card-block > div { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-flow: row wrap; flex-flow: row wrap; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; }
#mainCart .modal-footer .card-block > div .label { text-align: left; }
#mainCart .modal-footer .card-block > div .value { text-align: right; }
#mainCart .modal-footer .card-block > div > span { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; }
#mainCart .modal-footer .card-block > div:after { display: none; }
#mainCart .modal-footer .block-promo { display: none; }
#mainCart .modal-footer .cart-line-product-actions a { display: block; width: 100%; text-align: center; }
#mainCart .modal-footer .cart-line-product-actions a i { float: none !important; }
#mainCart .modal-footer .cart-total { padding: 0; background: transparent; }
#mainCart .modal-footer .cart-detailed-actions { padding-top: 0; padding-bottom: 0; }
#mainCart .modal-footer .cart-detailed-actions a { width: 100%; }
@media (max-width: 580px) {
    #mainCart .modal-footer .cart-detailed-subtotals,
    #mainCart .modal-footer .cart-summary-totals .cart-summary-line:not(.cart-total) {display: none;}
}
