/* Exo - Cart Recommendations */
.exo-cr {
    box-sizing: border-box;
    margin: 12px 0 18px;
    padding: 13px 0 0;
    border-top: 1px solid rgba(0,0,0,.12);
    text-align: left;
}
.exo-cr__heading {
    margin: 0 0 11px !important;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
}
.exo-cr__products { display: grid; gap: 10px; }
.exo-cr__product {
    display: grid;
    grid-template-columns: 56px minmax(0,1fr) auto;
    gap: 10px;
    align-items: center;
    min-width: 0;
    padding: 0 0 10px;
    border-bottom: 1px solid rgba(0,0,0,.065);
}
.exo-cr__product:last-child { border-bottom: none; padding-bottom: 0; }
.exo-cr__image { width: 56px; height: 56px; display: block; }
.exo-cr__image img {
    display: block;
    width: 100%; height: 100%; object-fit: contain;
    margin: 0 !important;
}
.exo-cr__info { min-width: 0; }
.exo-cr__name {
    display: block;
    font-size: 12.5px;
    line-height: 1.3;
    font-weight: 600;
    text-decoration: none;
    overflow-wrap: anywhere;
}
.exo-cr__price { font-size: 12px; line-height: 1.5; margin-top: 3px; }
.exo-cr__price del { opacity: .6; }
.exo-cr__price ins { text-decoration: none; }
.exo-cr__add,
.exo-cr__choose {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    min-width: 52px;
    padding: 5px 9px;
    margin: 0 !important;
    border: 1px solid #333 !important;
    border-radius: 4px;
    background: #222 !important;
    color: #fff !important;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 600;
    text-decoration: none !important;
    cursor: pointer;
    text-transform: none;
    white-space: nowrap;
    box-shadow: none;
}
.exo-cr__add:hover,
.exo-cr__choose:hover { background: #414141 !important; color: #fff !important; }
.exo-cr__add:disabled { opacity: .5; cursor: wait; }
.exo-cr__status { margin: 9px 0 0; color: #ba2020; font-size: 12px; }
.exo-cr__status[hidden] { display: none !important; }

/* Small, uncluttered panel within the Flatsome cart drawer */
.exo-cr--drawer { margin: 13px 0 12px; }
.exo-cr--drawer .exo-cr__products { gap: 9px; }
.exo-cr--drawer .exo-cr__product { grid-template-columns: 48px minmax(0,1fr) auto; gap: 8px; }
.exo-cr--drawer .exo-cr__image { width: 48px; height: 48px; }
.exo-cr--drawer .exo-cr__name { font-size: 12px; }
.exo-cr--drawer .exo-cr__add, .exo-cr--drawer .exo-cr__choose {
    padding: 5px 7px;
    min-width: 48px;
    font-size: 10.5px;
}
/* Full classic cart - two responsive columns with all details visible */
.exo-cr--cart { margin: 20px 0 24px; padding: 16px 0 0; }
.exo-cr--cart .exo-cr__heading { font-size: 18px; margin-bottom: 16px !important; }
.exo-cr--cart .exo-cr__products { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px 24px; }
.exo-cr--cart .exo-cr__product { grid-template-columns: 70px minmax(0,1fr) auto; gap: 12px; }
.exo-cr--cart .exo-cr__image { width: 70px; height: 70px; }
.exo-cr--cart .exo-cr__name { font-size: 14px; }
.exo-cr--cart .exo-cr__price { font-size: 13px; }
@media (max-width: 849px) {
    .exo-cr--cart .exo-cr__products { grid-template-columns: 1fr; }
}
@media (max-width: 360px) {
    .exo-cr--drawer .exo-cr__product { grid-template-columns: 42px minmax(0,1fr) auto; gap: 6px; }
    .exo-cr--drawer .exo-cr__image { width: 42px; height: 42px; }
}

/* Exo - Correct full-cart column placement and suppress duplicate stock cross-sells.
   Flatsome may output cross-sells directly, rather than on the WooCommerce core hook. */
body.woocommerce-cart.exo-cr-hide-default-cross-sells .cross-sells {
    display: none !important;
}
form.woocommerce-cart-form .exo-cr--cart {
    display: block;
    width: 100%;
    max-width: 100%;
    clear: both;
}

/* Exo v1.1.0 — Entire drawer contents scroll as ONE unit.
   Do not let Flatsome cap its product list and force shoppers to scroll twice. */
#cart-popup.exo-cr-drawer-popup .widget_shopping_cart_content.exo-cr-drawer-ui {
    display: block !important;
    box-sizing: border-box;
    height: auto !important;
    max-height: calc(100vh - 110px) !important;
    max-height: calc(100dvh - 110px) !important;
    min-height: 0;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
    padding-right: 2px;
}
#cart-popup.exo-cr-drawer-popup .widget_shopping_cart_content.exo-cr-drawer-ui > ul.woocommerce-mini-cart,
#cart-popup.exo-cr-drawer-popup .widget_shopping_cart_content.exo-cr-drawer-ui ul.woocommerce-mini-cart {
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible !important;
    flex: none !important;
    padding-bottom: 0;
    margin-bottom: 12px;
}
#cart-popup.exo-cr-drawer-popup .exo-cr--drawer {
    clear: both;
    margin: 12px 0 16px;
    padding-top: 15px;
}
#cart-popup.exo-cr-drawer-popup .woocommerce-mini-cart__total,
#cart-popup.exo-cr-drawer-popup .widget_shopping_cart_content.exo-cr-drawer-ui p.total {
    clear: both;
    margin-top: 12px;
}

/* Two side-by-side drawer actions: cart outline, checkout filled. */
#cart-popup .widget_shopping_cart_content.exo-cr-drawer-ui .woocommerce-mini-cart__buttons,
#cart-popup .widget_shopping_cart_content.exo-cr-drawer-ui p.buttons {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 9px !important;
    align-items: stretch;
    margin: 10px 0 0 !important;
}
#cart-popup .widget_shopping_cart_content.exo-cr-drawer-ui .woocommerce-mini-cart__buttons > a,
#cart-popup .widget_shopping_cart_content.exo-cr-drawer-ui p.buttons > a {
    display: flex !important;
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 41px;
    margin: 0 !important;
    padding: 7px 5px !important;
    align-items: center;
    justify-content: center;
    text-align: center;
    white-space: nowrap;
    line-height: 1.15;
    font-size: 12px;
    letter-spacing: .02em;
    border-radius: 4px;
}
#cart-popup .widget_shopping_cart_content.exo-cr-drawer-ui p.buttons > a.wc-forward:not(.checkout) {
    border: 2px solid #69b5ea !important;
    background: transparent !important;
    color: #338fcb !important;
    box-shadow: none !important;
}
#cart-popup .widget_shopping_cart_content.exo-cr-drawer-ui p.buttons > a.wc-forward:not(.checkout):hover {
    background: rgba(105, 181, 234, .08) !important;
}
#cart-popup .widget_shopping_cart_content.exo-cr-drawer-ui p.buttons > a.checkout {
    border: 2px solid #69b5ea !important;
    background: #69b5ea !important;
    color: #fff !important;
}
#cart-popup .widget_shopping_cart_content.exo-cr-drawer-ui p.buttons > a.checkout:hover {
    border-color: #4a9bcf !important;
    background: #4a9bcf !important;
}

/* Compact quantity controls below product names, alongside unit price. */
#cart-popup .exo-cr-cart-quantity {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 6px 8px;
    margin: 8px 0 0;
    font-size: 12px;
    line-height: 1.35;
}
#cart-popup .exo-cr-cart-unit-price { font-size: 12px; }
#cart-popup .exo-cr-quantity-picker {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    border: 1px solid #ddd;
    border-radius: 4px;
    line-height: 1;
    overflow: hidden;
}
#cart-popup .exo-cr-qty-btn {
    width: 26px;
    height: 27px;
    min-height: 27px;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: #f7f7f7 !important;
    color: #333 !important;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    box-shadow: none;
    cursor: pointer;
}
#cart-popup .exo-cr-qty-btn:disabled { opacity: .4; cursor: default; }
#cart-popup .exo-cr-qty-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 27px;
    height: 27px;
    padding: 0 3px;
    border-left: 1px solid #ddd;
    border-right: 1px solid #ddd;
    font-variant-numeric: tabular-nums;
    font-size: 12px;
}
#cart-popup .exo-cr-qty-loading { opacity: .55; }

/* Original Exo Product Announcements banners stay product-specific. */
.exo-cr-item-announcements {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    margin: 6px 0 4px;
    line-height: 1.25;
}
.exo-cr-item-announcements .exo-pa-banner {
    display: inline-flex;
    max-width: 100%;
    margin: 0 !important;
    font-size: 10px;
    line-height: 1.25;
    white-space: normal;
}
.woocommerce-cart .product-name .exo-cr-item-announcements { margin-top: 7px; }

@media (max-width: 360px) {
    #cart-popup .widget_shopping_cart_content.exo-cr-drawer-ui p.buttons > a {
        padding: 7px 3px !important;
        font-size: 11px;
    }
}

/* Exo v1.1.1 — show original and sale unit prices on drawer cart items. */
#cart-popup .exo-cr-cart-unit-price {
    display: inline-flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 3px 7px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
#cart-popup .exo-cr-cart-unit-price del {
    font-weight: 400;
    color: #888;
    opacity: 1;
    text-decoration: line-through;
}
#cart-popup .exo-cr-cart-unit-price del .woocommerce-Price-amount {
    color: inherit !important;
}
#cart-popup .exo-cr-cart-unit-price ins {
    color: #ff0000 !important;
    font-weight: 700;
    text-decoration: none !important;
    background: transparent !important;
}
#cart-popup .exo-cr-cart-unit-price ins .woocommerce-Price-amount {
    color: inherit !important;
}
