/* Boali Smart Cart 1.6.0 - polished minimal cart UX for WoodMart + Elementor Menu Cart. */

.cart-widget-side {
    top: auto !important;
    left: 0 !important;
    right: auto !important;
    bottom: 0 !important;
    height: var(--boali-sc-drawer-height, 630px) !important;
    min-height: 420px !important;
    max-height: calc(100dvh - 12px) !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    border-radius: var(--boali-sc-radius, 18px) var(--boali-sc-radius, 18px) 0 0 !important;
    transform: translate3d(-105%, 0, 0) !important;
    transition: transform var(--boali-sc-speed, 500ms) cubic-bezier(.22, 1, .36, 1) !important;
    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    z-index: 1020 !important;
}

.cart-widget-side.wd-opened {
    transform: translate3d(0, 0, 0) !important;
}

.cart-widget-side.wd-opened::before {
    content: "";
    position: absolute;
    z-index: 50;
    top: 7px;
    left: 50%;
    width: 38px;
    height: 4px;
    border-radius: 999px;
    background: rgba(42,57,80,.12);
    transform: translateX(-50%);
    pointer-events: none;
}

.cart-widget-side .wd-heading {
    position: relative;
    z-index: 40;
    flex: 0 0 auto;
}

.cart-widget-side .wd-heading .title {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 9px !important;
}

.boali-smart-cart-heading-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 26px !important;
    height: 26px !important;
    flex: 0 0 26px !important;
    color: #c89432 !important;
    background: #fffaf0 !important;
    border-radius: 50% !important;
}

.boali-smart-cart-heading-icon svg {
    display: block !important;
    width: 18px !important;
    height: 18px !important;
}

.cart-widget-side > .widget_shopping_cart {
    display: flex !important;
    flex-direction: column !important;
    height: calc(100% - 58px) !important;
    min-height: 0 !important;
    overflow: hidden !important;
}

.cart-widget-side .widget_shopping_cart_content {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    position: relative !important;
}

/* One scroll zone: cart items + recommendations. Footer remains fixed. */
.cart-widget-side .boali-smart-cart-scroll-wrap {
    position: relative !important;
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: hidden !important;
}

.cart-widget-side .boali-smart-cart-scroll-area {
    position: relative !important;
    display: block !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(42,57,80,.16) transparent;
    scrollbar-gutter: stable;
    scroll-behavior: smooth;
    -ms-overflow-style: auto;
}

.cart-widget-side .elementor-menu-cart__products,
.cart-widget-side .woocommerce-mini-cart {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}

.cart-widget-side .elementor-menu-cart__products {
    padding-bottom: 0 !important;
}

.cart-widget-side .elementor-menu-cart__subtotal,
.cart-widget-side .elementor-menu-cart__footer-buttons {
    flex: 0 0 auto !important;
    position: relative !important;
    z-index: 35 !important;
    background: #fff !important;
}

.cart-widget-side .elementor-menu-cart__subtotal {
    border-top: 1px solid #f0f0f1 !important;
}

.cart-widget-side .elementor-menu-cart__footer-buttons {
    border-top: 0 !important;
}

.cart-widget-side .boali-smart-cart-scroll-area::-webkit-scrollbar {
    width: 4px;
}

.cart-widget-side .boali-smart-cart-scroll-area::-webkit-scrollbar-track {
    background: transparent;
}

.cart-widget-side .boali-smart-cart-scroll-area::-webkit-scrollbar-thumb {
    background: rgba(42,57,80,.16);
    border-radius: 999px;
}

/* Recommendation section */
.boali-smart-cart-recommendations {
    position: relative;
    margin: 18px 0 6px;
    padding: 0 14px;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.boali-smart-cart-recommendations[hidden] {
    display: none !important;
}

.boali-smart-cart-recommendations::before {
    content: "";
    position: absolute;
    top: -2px;
    left: 14px;
    right: 14px;
    height: 1px;
    background: #ececed;
}

.boali-smart-cart-recommendations__heading {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    min-height: 68px !important;
    margin: 0 !important;
    padding: 10px 14px !important;
    box-sizing: border-box !important;
    background: #fcfaf5 !important;
    border: 0 !important;
    border-bottom: 1px solid #f1eee8 !important;
    border-radius: 10px !important;
    color: var(--boali-sc-heading-color, #2a3950) !important;
}

.boali-smart-cart-recommendations__heading-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    color: #c89432;
}

.boali-smart-cart-recommendations__heading-icon svg {
    display: block;
}

.boali-smart-cart-recommendations__heading-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.boali-smart-cart-recommendations__heading-text {
    display: block;
    min-width: 0;
    color: var(--boali-sc-heading-color, #2a3950);
    font-family: inherit;
    font-size: var(--boali-sc-heading-size, 15px);
    line-height: 1.45;
    font-weight: 750;
    letter-spacing: -.15px;
}

.boali-smart-cart-recommendations__heading-subtext {
    display: block;
    color: #777f88;
    font-family: inherit;
    font-size: 10.5px;
    line-height: 1.45;
    font-weight: 450;
}

.boali-smart-cart-recommendations__list {
    display: flex;
    flex-direction: column;
}

/* Recommendation row: image right, copy center, add icon left — always one line. */
.boali-smart-cart-recommendation {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 32px minmax(0, 1fr) 58px !important;
    grid-template-areas: "add content image" !important;
    align-items: center !important;
    direction: ltr !important;
    column-gap: 10px !important;
    width: 100% !important;
    min-height: 76px !important;
    margin: 0 !important;
    padding: 8px 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid #f0f0f1 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}

.boali-smart-cart-recommendation:last-child {
    border-bottom: 0 !important;
}

.boali-smart-cart-recommendation__image {
    grid-area: image !important;
    position: relative !important;
    justify-self: end !important;
    display: block !important;
    width: 58px !important;
    height: 58px !important;
    overflow: hidden !important;
    border-radius: 9px !important;
    background: #f7f7f7 !important;
}

.boali-smart-cart-recommendation__image img {
    display: block !important;
    width: 58px !important;
    height: 58px !important;
    object-fit: cover !important;
    border-radius: 9px !important;
}

.boali-smart-cart-recommendation__content {
    grid-area: content !important;
    min-width: 0 !important;
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 2px !important;
    padding: 0 !important;
    direction: rtl !important;
    text-align: right !important;
}

.boali-smart-cart-recommendation__title {
    display: -webkit-box !important;
    width: 100% !important;
    max-height: 37px !important;
    overflow: hidden !important;
    color: var(--boali-sc-title-color, #2a3950) !important;
    font-family: inherit !important;
    font-size: var(--boali-sc-title-size, 12.5px) !important;
    line-height: 1.48 !important;
    font-weight: 650 !important;
    text-decoration: none !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
}

.boali-smart-cart-recommendation__title:hover {
    color: var(--boali-sc-title-color, #2a3950) !important;
}

.boali-smart-cart-recommendation__price {
    display: block !important;
    color: #4d5660 !important;
    font-family: inherit !important;
    font-size: 11.5px !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
}

.boali-smart-cart-recommendation__price del {
    opacity: .45;
    margin-inline-end: 4px;
}

.boali-smart-cart-recommendation__price ins {
    text-decoration: none;
}

/* Compact icon-only add button: left edge of the same row. */
.boali-smart-cart-recommendation__add {
    grid-area: add !important;
    justify-self: start !important;
    align-self: center !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
    max-height: 30px !important;
    flex: 0 0 30px !important;
    aspect-ratio: 1 / 1 !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(200,148,50,.28) !important;
    border-radius: 50% !important;
    clip-path: none !important;
    rotate: 0deg !important;
    background: #fffaf0 !important;
    color: #b47c17 !important;
    box-shadow: none !important;
    font-family: inherit !important;
    font-size: 0 !important;
    line-height: 1 !important;
    cursor: pointer !important;
    transform: none !important;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease !important;
    z-index: 3 !important;
}

.boali-smart-cart-recommendation__add:hover {
    background: #c89432 !important;
    border-color: #c89432 !important;
    color: #fff !important;
    transform: none !important;
}

.boali-smart-cart-recommendation__add:focus-visible {
    outline: 2px solid rgba(200,148,50,.22) !important;
    outline-offset: 2px !important;
}

.boali-smart-cart-recommendation__add svg {
    display: block !important;
    width: 14px !important;
    height: 14px !important;
}

.boali-smart-cart-recommendation__add:disabled {
    cursor: wait !important;
    opacity: .68 !important;
    transform: none !important;
}

.boali-smart-cart-recommendation__add.is-added {
    background: #edf7ef !important;
    border-color: #cde7d3 !important;
    color: #3f8f61 !important;
}

.boali-smart-cart-recommendation__add.is-loading span {
    display: none !important;
}

.boali-smart-cart-recommendation__add.is-loading::after {
    content: "";
    width: 10px;
    height: 10px;
    border: 2px solid rgba(180,124,23,.18);
    border-top-color: #b47c17;
    border-radius: 50%;
    animation: boali-sc-spin .65s linear infinite;
}

.boali-smart-cart-recommendation__add.is-added.is-loading::after {
    border-color: rgba(63,143,97,.18);
    border-top-color: #3f8f61;
}

/* Scroll cue: only visible when the content actually overflows and the user is at the top. */
.boali-smart-cart-scroll-cue {
    position: absolute !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    z-index: 22 !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    width: 100% !important;
    min-height: 36px !important;
    margin: 0 !important;
    padding: 7px 12px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: rgba(247,248,249,.98) !important;
    color: #66717c !important;
    box-shadow: inset 0 1px 0 rgba(42,57,80,.05) !important;
    font-family: inherit !important;
    font-size: 11px !important;
    font-weight: 650 !important;
    line-height: 1.35 !important;
    cursor: pointer !important;
    opacity: 0 !important;
    transform: translateY(6px) !important;
    pointer-events: none !important;
    transition: opacity .2s ease, transform .2s ease !important;
}

.boali-smart-cart-scroll-cue__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 17px;
    height: 17px;
    color: #7a838d;
}

.boali-smart-cart-scroll-cue__icon svg {
    display: block;
    animation: boali-sc-cue 1.35s ease-in-out infinite;
}

.boali-smart-cart-scroll-cue em {
    font-style: normal;
    white-space: nowrap;
}

.boali-smart-cart-scroll-cue.is-visible {
    display: flex !important;
    opacity: 1 !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
}

.boali-smart-cart-scroll-area.has-scroll-cue {
    padding-bottom: 36px !important;
}

#boali-smart-cart-template {
    display: none !important;
}

@keyframes boali-sc-spin {
    to { transform: rotate(360deg); }
}

@keyframes boali-sc-cue {
    0%, 100% { transform: translateY(-1px); }
    50% { transform: translateY(3px); }
}

@media (max-width: 767px) {
    .cart-widget-side {
        top: 0 !important;
        right: auto !important;
        left: 0 !important;
        bottom: 0 !important;
        width: 100vw !important;
        height: 100dvh !important;
        min-height: 100dvh !important;
        max-height: 100dvh !important;
        border-radius: 0 !important;
        transform: translate3d(-105%, 0, 0) !important;
    }

    .cart-widget-side.wd-opened {
        transform: translate3d(0, 0, 0) !important;
    }

    .cart-widget-side.wd-opened::before {
        display: none;
    }

    .cart-widget-side > .widget_shopping_cart {
        height: calc(100% - 56px) !important;
    }

    .boali-smart-cart-recommendations {
        margin: 16px 0 6px;
        padding: 0 12px;
    }

    .boali-smart-cart-recommendations::before {
        left: 12px;
        right: 12px;
    }

    .boali-smart-cart-recommendations__heading {
        min-height: 64px !important;
        padding: 9px 10px !important;
        border-radius: 9px !important;
    }

    .boali-smart-cart-recommendations__heading-text {
        font-size: 14px !important;
    }

    .boali-smart-cart-recommendations__heading-subtext {
        font-size: 10px !important;
    }

    .boali-smart-cart-recommendation {
        grid-template-columns: 31px minmax(0,1fr) 56px !important;
        column-gap: 9px !important;
        min-height: 70px !important;
        padding: 7px 0 !important;
    }

    .boali-smart-cart-recommendation__image,
    .boali-smart-cart-recommendation__image img {
        width: 56px !important;
        height: 56px !important;
    }

    .boali-smart-cart-recommendation__title {
        font-size: 11.8px !important;
        line-height: 1.46 !important;
    }

    .boali-smart-cart-recommendation__price {
        font-size: 11px !important;
    }

    .boali-smart-cart-recommendation__add {
        width: 30px !important;
        min-width: 30px !important;
        max-width: 30px !important;
        height: 30px !important;
        min-height: 30px !important;
        max-height: 30px !important;
        flex-basis: 30px !important;
    }

    .boali-smart-cart-scroll-cue {
        min-height: 36px !important;
        padding-block: 8px !important;
        font-size: 10.8px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cart-widget-side,
    .boali-smart-cart-scroll-cue,
    .boali-smart-cart-recommendation__add,
    .boali-smart-cart-scroll-cue__icon {
        transition: none !important;
        animation: none !important;
    }

    .boali-smart-cart-recommendation__add.is-loading::after {
        animation: none !important;
    }
}
