﻿#checkoutApp {
    background: rgba(var(--yellow), 1);
    padding-bottom: calc(var(--base-spacing) * 4);
}

.checkout {
    display: flex;
    gap: var(--base-spacing);
}

    .checkout .checkout-backdrop {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.6);
        transition: all 0.4s cubic-bezier(0, 1, 0.6, 1);
        opacity: 0;
        pointer-events: none;
        cursor: pointer;
        display: none;
    }

    .checkout .checkout-cart-toggle {
        position: absolute;
        background: #fff;
        font-size: 1.6em;
        font-weight: 700;
        text-transform: uppercase;
        padding: 12px;
        align-items: center;
        gap: var(--base-half-spacing);
        writing-mode: sideways-lr;
        width: 55px;
        top: 50%;
        left: -55px;
        transform: translateY(-50%);
        display: none;
    }

        .checkout .checkout-cart-toggle .icon.usn_ion-ios-basket {
            font-family: "copcoy-icons" !important;
            font-size: 1.2em;
            position: relative;
            top: -2px;
            margin-top: 6px;
            transform: rotate(90deg);
        }

            .checkout .checkout-cart-toggle .icon.usn_ion-ios-basket::before {
                content: "\e900" !important;
            }

    .checkout .cart-close {
        position: absolute;
        top: 0;
        right: 0;
        z-index: 1;
        font-size: 3em;
        height: 60px;
        width: 60px;
        line-height: 0;
        padding: var(--base-half-spacing);
        display: flex;
        align-items: center;
        justify-content: center;
        display: none;
    }

    .checkout .checkout-loading {
        background: #fff;
        flex: 1;
        height: 300px;
    }

    .checkout .cart-empty {
        background: #fff;
        flex: 1;
    }

        .checkout .cart-empty .no-products {
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
            margin: 3rem 0;
            gap: 1rem;
        }

            .checkout .cart-empty .no-products .btn {
                border: 1px solid rgba(var(--yellow), 1);
                color: rgba(var(--yellow), 1);
                background: #000;
            }

                .checkout .cart-empty .no-products .btn:hover {
                    background: rgba(var(--yellow), 1);
                    color: #000;
                }

    .checkout .checkout-steps {
        flex: 1;
        background: #fff;
        padding: 12px 18px;
        counter-reset: checkout-steps;
    }

        .checkout .checkout-steps .checkout-step {
            background: #eee;
            padding: 12px;
        }

            .checkout .checkout-steps .checkout-step:not(:last-child) {
                margin-bottom: var(--base-half-spacing);
            }

            .checkout .checkout-steps .checkout-step .step-heading {
                margin: 0;
                font-size: 1.4rem;
                font-weight: 600;
                text-transform: uppercase;
                counter-increment: checkout-steps;
            }

                .checkout .checkout-steps .checkout-step .step-heading .accordion-button {
                    font: inherit;
                    color: inherit;
                    background: none;
                    display: flex;
                    align-items: center;
                    gap: var(--base-half-spacing);
                }

                    .checkout .checkout-steps .checkout-step .step-heading .accordion-button[data-bs-target=""] {
                        cursor: not-allowed;
                    }


                    .checkout .checkout-steps .checkout-step .step-heading .accordion-button::before {
                        content: counter(checkout-steps);
                        display: flex;
                        justify-content: center;
                        align-items: center;
                        background: #000;
                        width: 30px;
                        height: 30px;
                        border-radius: 100px;
                        color: rgba(var(--yellow), 1);
                        font-size: 1.2rem;
                    }

            .checkout .checkout-steps .checkout-step .step-detail {
                text-align: center;
            }

                .checkout .checkout-steps .checkout-step .step-detail .form {
                    text-align: left;
                    margin: var(--base-half-spacing) 0;
                }

                .checkout .checkout-steps .checkout-step .step-detail .checkout-or {
                    text-align: center;
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    font-weight: 400;
                    font-size: 1.2em;
                    color: #888;
                    padding: var(--base-spacing) 0;
                }

                    .checkout .checkout-steps .checkout-step .step-detail .checkout-or span {
                        position: relative;
                    }

                        .checkout .checkout-steps .checkout-step .step-detail .checkout-or span::before,
                        .checkout .checkout-steps .checkout-step .step-detail .checkout-or span::after {
                            content: "";
                            position: absolute;
                            left: -50px;
                            top: 50%;
                            width: 30px;
                            height: 2px;
                            transform: translateY(-50%);
                            background: #888;
                        }

                        .checkout .checkout-steps .checkout-step .step-detail .checkout-or span::after {
                            left: auto;
                            right: -50px;
                        }

                .checkout .checkout-steps .checkout-step .step-detail .step-buttons {
                    text-align: right;
                    margin-top: calc(var(--base-spacing) * 1.2);
                    border-top: 1px solid #dee2e6;
                    padding-top: var(--base-half-spacing);
                }

    .checkout .checkout-cart {
        flex-basis: 40%;
        background: #fff;
        padding: 12px 18px;
    }

        .checkout .checkout-cart .cart-wrapper {
            position: sticky;
            top: calc(var(--large-header) + 12px);
        }

        .checkout .checkout-cart .basket-heading {
            font-size: 2.2em;
            font-weight: 600;
            border-bottom: 4px solid #000;
            padding-bottom: 8px;
            margin-bottom: 12px;
            margin-top: 0;
        }

        .checkout .checkout-cart .cart {
            overflow: auto;
            flex: 1;
            scroll-behavior: smooth;
        }

            .checkout .checkout-cart .cart div.item {
                display: flex;
                padding: 20px 0;
                gap: 20px;
            }

                .checkout .checkout-cart .cart div.item:not(:last-child) {
                    border-bottom: 1px solid #000;
                }

                .checkout .checkout-cart .cart div.item .cart-image {
                    width: 150px;
                    flex: 0 1 150px;
                }

                    .checkout .checkout-cart .cart div.item .cart-image img {
                        width: 150px;
                        height: 100%;
                        object-fit: contain;
                    }

                .checkout .checkout-cart .cart div.item div.itemText {
                    flex: 1 0 0%;
                }

                    .checkout .checkout-cart .cart div.item div.itemText h5 {
                        display: flex;
                        justify-content: space-between;
                        align-items: center;
                    }

                        .checkout .checkout-cart .cart div.item div.itemText h5 i.usn_ion {
                            font-size: 0.7em;
                        }

                    .checkout .checkout-cart .cart div.item div.itemText p {
                        max-height: 100px;
                        overflow-x: hidden;
                        overflow-y: auto;
                        width: 100%;
                        font-size: 1rem;
                        line-height: 1.2rem;
                    }

                .checkout .checkout-cart .cart div.item:first-child {
                    padding-top: 0;
                }

            .checkout .checkout-cart .cart .no-products {
                display: flex;
                flex-direction: column;
                align-items: center;
                text-align: center;
                margin: 3rem 0;
                gap: 1rem;
            }

                .checkout .checkout-cart .cart .no-products h3 {
                    color: #fff;
                }

                .checkout .checkout-cart .cart .no-products .btn {
                    border: 1px solid rgba(var(--yellow), 1);
                    color: rgba(var(--yellow), 1);
                    background: #000;
                }

                    .checkout .checkout-cart .cart .no-products .btn:hover {
                        background: rgba(var(--yellow), 1);
                        color: #000;
                    }

            .checkout .checkout-cart .cart .quantity,
            .checkout .checkout-cart .cart .price {
                display: flex;
                gap: 0.6em;
                align-items: center;
                justify-content: space-between;
            }

                .checkout .checkout-cart .cart .quantity button,
                .checkout .checkout-cart .cart .price button {
                    padding: 0.15em 0.3em;
                    background: none;
                    border: none;
                    transition: color 0.2s ease-in-out, background 0.2s ease-in-out;
                    color: #000;
                    display: flex;
                    align-items: flex-end;
                    gap: .5em;
                    background: #fff;
                }

                    .checkout .checkout-cart .cart .quantity button:hover,
                    .checkout .checkout-cart .cart .price button:hover {
                        background: rgba(var(--yellow), 1);
                        color: #000;
                    }

                    .checkout .checkout-cart .cart .quantity button i,
                    .checkout .checkout-cart .cart .price button i {
                        font-size: 1.3em;
                    }

                .checkout .checkout-cart .cart .price div {
                    font-weight: 600;
                    font-size: 1.4em;
                }

        .checkout .checkout-cart .price div span {
            font-size: .6em;
        }

        .checkout .checkout-cart .price div .tax-price {
            display: flex;
            flex-direction: column;
        }

        .checkout .checkout-cart .basket-footer {
            display: flex;
            flex-direction: column;
            gap: 1em;
            margin-top: var(--base-half-spacing);
        }

            .checkout .checkout-cart .basket-footer .basket-msg {
                border: 2px solid #000;
                color: #000;
                font-size: 1.2em;
                padding: 0.7em 1.2em;
                display: flex;
                flex-direction: column;
                text-align: center;
                text-wrap: balance;
                gap: .5em;
            }

                .checkout .checkout-cart .basket-footer .basket-msg div {
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    gap: 2em;
                    padding: 0 .3em;
                }

                    .checkout .checkout-cart .basket-footer .basket-msg div:not(:last-child) {
                        border-bottom: 1px solid #ccc;
                        padding-bottom: .5em;
                    }

                .checkout .checkout-cart .basket-footer .basket-msg p {
                    margin: 0;
                }

                .checkout .checkout-cart .basket-footer .basket-msg .basket-totals {
                    display: flex;
                    gap: .5em;
                    font-size: .95em
                }

                    .checkout .checkout-cart .basket-footer .basket-msg .basket-totals span:not(:last-child) {
                        border-right: 1px solid #ccc;
                        padding-right: .5em;
                    }


@media screen and (min-width: 501px) {
    .checkout .checkout-cart .basket-footer .basket-msg {
        text-align: left;
        text-wrap: auto;
    }

        .checkout .checkout-cart .basket-footer .basket-msg p {
            max-width: 80%;
        }
}

@media screen and (max-width: 992px) {
    .checkout .checkout-cart {
        position: fixed;
        top: 0;
        z-index: 9999;
        bottom: 0;
        flex-basis: 100%;
        max-width: 520px;
        width: 100%;
        right: -520px;
        display: flex;
        transition: right 0.4s cubic-bezier(0, 1, 0.6, 1);
    }

    html.reveal-out .checkout .checkout-cart {
        z-index: 1000;
    }

    .checkout .checkout-backdrop {
        display: block;
    }

    .checkout .checkout-cart-toggle {
        display: flex;
    }

    .checkout .cart-close {
        display: block;
    }

    .checkout .checkout-cart .cart-wrapper {
        position: relative;
        top: 0;
        display: flex;
        flex-direction: column;
    }

    .checkout.cart-open .checkout-cart {
        right: 0;
    }

    .checkout.cart-open .checkout-backdrop {
        opacity: 1;
        pointer-events: all;
    }
}

@media screen and (max-width: 520px) {
    .checkout .checkout-cart {
        max-width: 100%;
        width: 100%;
        right: -100%;
    }

    .checkout .login-form .form-inner,
    .checkout .login-form .form-inner > fieldset {
        flex-direction: column;
    }

    .checkout .login-form .form-inner .buttons span.d-block {
        display: none !important;
    }
}