﻿/* ============ OFFCANVAS SHELL ============ */
#cartOffcanvas {
    width: min(420px, 100%);
    color: var(--spf-olive);
    border-left: 0;
}

    #cartOffcanvas .offcanvas-header {
        padding: 16px 22px;
        border-bottom: 1px solid var(--spf-line);
    }

.offcanvas-title {
    font-family: var(--font-head);
    font-size: 1.6rem;
    color: var(--spf-olive);
}

.offcanvas-body {
    overflow-x: hidden;
}

.offcanvas-backdrop.show {
    background: rgb(15,20,3);
    opacity: .55;
}

/* ============ CART | INSTRUCTION TABS ============ */
.ViewCartTitle,
.ViewCartTitle.bg-green {
    background: #fff !important;
    color: var(--spf-olive);
    padding: 14px 22px 4px !important;
}

.ViewCartTitle .toggle-switch {
    padding: 4px;
    background: var(--spf-sand);
    border-radius: 99px;
    font-family: var(--font-body);
}

.ViewCartTitle .toggle-option {
    padding: 8px 12px;
    border-radius: 99px;
    color: var(--spf-muted);
    font-weight: 700;
    font-size: 15px;
}

    .ViewCartTitle .toggle-option.active {
        background-color: var(--spf-olive);
        color: #fff;
    }

/* ============ LINE ITEMS ============ */
.cartInner {
    padding: 0 22px !important;
}

#ViewCartContent {
    padding: 14px 0 !important;
    border-bottom: 1px solid var(--spf-line);
}

.ItemName {
    color: var(--spf-olive) !important;
    font-family: var(--font-body);
    font-weight: 700;
}

.ItemDescription, .ItemDescription p {
    color: var(--spf-muted);
    font-size: 13px;
}

.ItemPrice,
.ItemPriceValue {
    color: var(--spf-orange-dark) !important;
    font-weight: 700;
}

.cartHeaderFont,
.cartHeaderFontTotal {
    font-family: var(--font-body);
    font-weight: 700;
    color: var(--spf-olive);
}

.cartHeaderFontTotal {
    font-size: 1.15rem;
}

/* quantity stepper */
#DltItem {
    gap: 6px;
    padding: 3px;
    background: var(--spf-sand);
    border-radius: 99px;
}

.DcrItemQtnBtn, .IcrItemQtnBtn {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: var(--spf-olive);
    font-weight: 700;
    outline: none;
}

    .DcrItemQtnBtn img, .IcrItemQtnBtn img {
        display: none;
    }

    .DcrItemQtnBtn::before {
        content: "\2212";
    }

    .IcrItemQtnBtn::before {
        content: "+";
    }

    .DcrItemQtnBtn:hover, .IcrItemQtnBtn:hover {
        background: var(--spf-orange);
        color: #fff;
    }

.ItemQtn {
    width: 26px;
    height: 28px;
    vertical-align: middle;
    border: none;
    outline: none;
    background: transparent;
    text-align: center;
    font-weight: 700;
    color: var(--spf-olive);
}

.EditItemQtnBtn, .DltItemBtn, #EmptyCart {
    border: none;
    padding: 4px;
    margin-left: 4px;
    background: none;
}

#EmptyCart {
    width: fit-content;
    color: var(--spf-muted);
    text-decoration: underline;
}

    #EmptyCart:hover {
        color: var(--spf-orange-dark);
    }

.EditItemQtnBtn:hover span, .DltItemBtn:hover span, #AddItem:hover {
    color: var(--spf-orange-dark) !important;
}

#AddItem {
    display: none;
    width: auto;
    color: var(--spf-orange-dark);
    border-radius: 10px;
}

.hr-cart {
    border-color: var(--spf-line);
    opacity: 1;
}

/* ============ TIP / COUPON ============ */
#tipContainer {
    display: flex;
}

#tipInput {
    position: relative;
    float: left;
}

#tipApply, #ApplyBtn {
    background: var(--spf-orange);
    border: 1px solid var(--spf-orange);
    color: #fff;
    cursor: pointer;
}

    #tipApply:hover, #ApplyBtn:hover {
        background: var(--spf-orange-dark);
        border-color: var(--spf-orange-dark);
    }

.button-group {
    display: flex;
    gap: 6px;
}

    .button-group input[type="radio"] {
        display: none;
    }

    .button-group label {
        display: flex;
        justify-content: center;
        padding: 8px 10px;
        background-color: var(--spf-sand);
        border-radius: 99px;
        color: var(--spf-olive);
        font-weight: 700;
        font-size: 15px;
        cursor: pointer;
    }

        .button-group label:hover {
            background-color: var(--spf-line);
        }

    .button-group input[type="radio"]:checked + label {
        background-color: var(--spf-olive);
        color: #fff;
    }

input[type=radio] {
    appearance: none;
    width: 16px;
    height: 16px;
    vertical-align: middle;
    border: 1px solid var(--spf-orange);
    border-radius: 50%;
    background-clip: content-box;
    padding: 2px;
}

.accordion-button:not(.collapsed) {
    color: var(--spf-orange-dark);
    background: var(--spf-sand);
}

/* ============ CHECKOUT BUTTON ============ */
.CheckOutBtn,
.CheckOutBtn.bg-green {
    width: 100%;
    padding: 15px !important;
    border: 0;
    border-radius: 14px;
    background-color: var(--spf-orange) !important;
    color: #fff;
    font-weight: 700;
    transition: background .15s ease;
}

    .CheckOutBtn:hover {
        background-color: var(--spf-orange-dark) !important;
        color: #fff;
    }

.OnlineOrderingDisabledMessage {
    background-color: var(--spf-muted) !important;
}

/* ============ EMPTY STATE / INSTRUCTIONS ============ */
.ECtext {
    color: var(--spf-olive) !important;
    font-family: var(--font-head);
}

#instructions {
    padding: 0 22px;
}

    #instructions ul {
        list-style-type: disc !important;
    }

        #instructions ul li {
            margin-top: 15px;
        }

.changelink:hover {
    color: var(--spf-orange-dark) !important;
}

/* ============ LOADING ============ */
#offcanvasCartContent.loading::after, #orderTypeModal.loading::after, #toppingsArea.loading::after, #ViewCartContainer.loading::after {
    content: "";
    width: 32px;
    height: 32px;
    border: 3px solid var(--spf-line);
    border-top-color: var(--spf-orange);
    border-radius: 50%;
    animation: spin1 0.8s linear infinite;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

@keyframes spin1 {
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}
