/*
 * Custom Cart Widget
 */
/* hide loading animation */
.elementor-widget-my-custom-cart .blockUI.blockOverlay {
    display: none !important;
}

/* Loading style */
.woocommerce-cart-form__cart-item.updating .product-total-content .woocommerce-Price-amount,
tr.order-total .woocommerce-Price-amount.updating,
tr.cart-subtotal .woocommerce-Price-amount.updating  {
    opacity: 0.5 !important;
    transition: opacity 0.3s ease;
}

/* TOAST */
body.toast-overlay::before {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(189, 189, 189, 0.35);
  z-index: 9998;
  pointer-events: unset;
  transition: opacity 0.3s ease;
}
.delete-product-toast {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -600px);
  background: #FFF;
  text-align: center;
  z-index: 9999;
  border-radius: 2px;
  
  opacity: 0;
  transition: transform 0.3s ease;
  pointer-events: none; /* Prevent accidental hover while hidden */
  
  padding: 40px 34px;
  width: 329px;
}
.delete-product-toast.show {
  opacity: 1;
  transform: translate(-50%, -50%);
  pointer-events: auto;
}

.delete-product-toast-title {
    font-family: 'Montserrat';
    color: #151515;
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 24px; /* 150% */
    letter-spacing: 0.96px;
    text-transform: capitalize;
    
    margin-bottom: 4px;
}
.delete-product-toast-text {
    font-family: 'Montserrat';
    color: #151515;
    font-size: 13px;
    font-style: normal;
    font-weight: 300;
    line-height: 24px; /* 184.615% */
    letter-spacing: 0.78px;

}
@media (min-width: 768px) {
    .delete-product-toast {
      width: 462px;
    }
    .delete-product-toast-title {
        font-size: 22px;
        line-height: 32px; /* 145.455% */
        letter-spacing: 0.44px;
    }
    .delete-product-toast-text {
        font-size: 15px;
        line-height: 24px; /* 160% */
        letter-spacing: 0.9px;
    }
}
@media (min-width: 1440px) {
    .delete-product-toast {
      width: 443px;
      padding: 54px 44px;
    }
    .delete-product-toast-title {
        font-size: 26px;
        line-height: 32px; /* 123.077% */
        letter-spacing: 1.56px;
        
        margin-bottom: 8px;
    }
    .delete-product-toast-text {
        font-size: 17px;
        line-height: 32px; /* 188.235% */
        letter-spacing: 1.02px;
    }
}




/* BUTTONS */
.elementor-widget-my-custom-cart .custom-button {
    width: 100%;
    border-radius: 1px;
    border-style: solid;
    border-width: 1px;
    border-color: #151515;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .2s;
    
    font-family: 'Montserrat';
    text-transform: uppercase;
    font-size: 14px;
    letter-spacing: 0.56px;
    font-weight: 400;
    line-height: 24px;
    
    padding: 12px 24px;
}
.elementor-widget-my-custom-cart .delete-product-toast .custom-button {
     text-transform: capitalize;
}
@media (min-width: 1440px) {
    .elementor-widget-my-custom-cart .custom-button {
        padding: 14px 28px;
    }
}

.elementor-widget-my-custom-cart .cancel-button:hover,
.elementor-widget-my-custom-cart .delete-button,
.elementor-widget-my-custom-cart .custom-button,
.elementor-widget-my-custom-cart .return-shop-button,
.elementor-widget-my-custom-cart .proceed-checkout-button,
.elementor-widget-my-custom-cart .continue-shopping-button:hover
{
    background: #151515;
    color: #FFF;
}
.elementor-widget-my-custom-cart .cancel-button,
.elementor-widget-my-custom-cart .delete-button:hover,
.elementor-widget-my-custom-cart .return-shop-button:hover,
.elementor-widget-my-custom-cart .proceed-checkout-button:hover,
.elementor-widget-my-custom-cart .continue-shopping-button
{
    background: #FFF;
    color: #151515;
}

.elementor-widget-my-custom-cart .button-section {
    width: 100%; display: flex; justify-content: center;
}

.elementor-widget-my-custom-cart .delete-product-toast .button-wrapper,
.elementor-widget-my-custom-cart .button-section .button-wrapper {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
    margin-top: 34px;
}
@media (min-width: 768px) {
    .elementor-widget-my-custom-cart .button-section .button-wrapper {
        flex-direction: row;
        width: 540px;
        margin-top: 16px;
    }
    .elementor-widget-my-custom-cart .delete-product-toast .button-wrapper {
         flex-direction: row;
    }
}
@media (min-width: 1025px) {
    .elementor-widget-my-custom-cart .button-section .button-wrapper {
        width: 631px;
        margin-top: 37px;
    }
}
@media (min-width: 1440px) {
    .elementor-widget-my-custom-cart .button-section .button-wrapper {
        width: 980px;
        margin-top: 44px;
    }
    .elementor-widget-my-custom-cart  .delete-product-toast .button-wrapper {
        margin-top: 44px;
    }
}



/* EMPTY */
.elementor-widget-my-custom-cart .custom-empty-cart {
    text-align: center;
    justify-self: center;
    width: 300px;
    margin-top: 191px;
}
.elementor-widget-my-custom-cart .custom-empty-cart .wrapper {
    padding: 0px 18px;
}

.elementor-widget-my-custom-cart .custom-empty-cart svg {
    width: auto;
    height: 96px;
    margin-bottom: 16px;
}
.elementor-widget-my-custom-cart .empty-cart-title {
    font-family: 'Montserrat';
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 24px; /* 150% */
    letter-spacing: 0.96px;
    text-transform: capitalize;
    color: #151515;
    
    margin-bottom: 0px;
}
.elementor-widget-my-custom-cart .empty-cart-text {
    font-family: 'Montserrat';
    font-size: 13px;
    font-style: normal;
    font-weight: 300;
    line-height: 24px; /* 184.615% */
    letter-spacing: 0.78px;
    color: #151515;
    
    margin-bottom: 34px;
}
@media (min-width: 768px) {
    .elementor-widget-my-custom-cart .custom-empty-cart svg {
        width: 140px;
        height: auto;
        margin-bottom: 16px;
    }
    .elementor-widget-my-custom-cart .custom-empty-cart {
        width: 351px;
        margin-top: 114px;
    }
    .elementor-widget-my-custom-cart .custom-empty-cart .wrapper {
        padding: 0px 0px;
    }
    .elementor-widget-my-custom-cart .empty-cart-title {
        font-size: 22px;
        line-height: 32px; /* 145.455% */
        letter-spacing: 0.44px;
        
        margin-bottom: 0px;
    }
    .elementor-widget-my-custom-cart .empty-cart-text {
        font-size: 15px;
        line-height: 24px;
        letter-spacing: 0px;
        
        margin-bottom: 44px;
    }

}
@media (min-width: 1025px) {
    .elementor-widget-my-custom-cart .custom-empty-cart {
        margin-top: 63px;
    
    }
}
@media (min-width: 1440px) {
    .elementor-widget-my-custom-cart .custom-empty-cart {
        width: 423px;
        margin-top: 98px;
    }
    .elementor-widget-my-custom-cart .custom-empty-cart .wrapper {
         padding: 0px 36px;
    }
}



/* LAYOUT */
.elementor-widget-my-custom-cart .e-cart__container {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 0px;
    border: none;
}
@media (min-width: 768px) {
    .elementor-widget-my-custom-cart .e-cart__container {
        border-radius: 2px;
        border: 0.5px solid #BDBDBD;
        padding: 23px 33px 23px 33px;
    }
}
@media (min-width: 1025px) {
    .elementor-widget-my-custom-cart .e-cart__container {
        padding: 23px 33px 23px 33px;
    }
}
@media (min-width: 1440px) {
    .elementor-widget-my-custom-cart .e-cart__container {
        padding: 33px 33px 33px 33px;
    }
}

.elementor-widget-my-custom-cart .e-shop-table {
   margin-bottom: 24px; 
}
@media (min-width: 768px) {
    .elementor-widget-my-custom-cart .e-shop-table {
       margin-bottom: 0px; 
    }
}


/* SHOP TABLE */
.elementor-widget-my-custom-cart .shop_table,
.elementor-widget-my-custom-cart .shop_table th,
.elementor-widget-my-custom-cart .shop_table td {
    background-color: transparent !important;
    border: none !important;
    padding: 0px !important;
    font-family: 'Montserrat' !important;
    color: #151515 !important;
}
.elementor-widget-my-custom-cart .shop_table thead,
.elementor-widget-my-custom-cart td.hide-mobile,
.elementor-widget-my-custom-cart .shop_table td::before{
    display: none !important;
}

@media (min-width: 768px) {
  .elementor-widget-my-custom-cart .shop_table thead {
    display: table-header-group !important;
  }
  .elementor-widget-my-custom-cart td.hide-mobile {
    display: table-cell !important;
  }
  .elementor-widget-my-custom-cart .mobile {
    display: none !important;
  }
}


/* HEADERS */
.elementor-widget-my-custom-cart .shop_table th {
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 24px !important;
    letter-spacing: 0.78px !important;
    
    border-bottom: 0.5px solid #BDBDBD !important;
    padding-bottom: 16px !important;
}

/* BORDER */
.elementor-widget-my-custom-cart .e-shop-table .shop_table td {
    padding: 0px 0px !important;
}
@media (min-width: 768px) {
    .elementor-widget-my-custom-cart .e-shop-table .shop_table td {
        padding: 16px 0px !important;
    }
    .elementor-widget-my-custom-cart .shop_table th.product-total-header {
        width: 140px; /* prevent changing width on high prices 7-8 digits */
    }
}
@media (min-width: 1025px) {
    .elementor-widget-my-custom-cart .shop_table th.product-total-header {
        width: 213px; /* prevent changing width on high prices 7-8 digits */
    }
}
@media (min-width: 1440px) {
    .elementor-widget-my-custom-cart .shop_table th.product-total-header {
        width: 250px; /* prevent changing width on high prices 7-8 digits */
    }
}

/* SPACING */
.elementor-widget-my-custom-cart .shop_table {
    table-layout: auto; /* Allows columns to have different widths */
    width: 100%;
    border-collapse: collapse; /* Ensures padding is inside the cell */
    border-spacing: 0px 0px;
    margin: 0px !important;
}

.elementor-widget-my-custom-cart .shop_table td {
    vertical-align: middle; /* Vertically center all cell content */
}
.elementor-widget-my-custom-cart .vertical-wrapper {
    display: flex;
    flex-direction: column;
    width: auto;
    max-width: 214px;
}
@media (min-width: 768px) {
    .elementor-widget-my-custom-cart .vertical-wrapper {
        width: fit-content;
        max-width: auto;
    }
}

/* --- Column 1: Product Details --- */
.elementor-widget-my-custom-cart .product-detail-content {
    display: flex !important;
    flex-direction: row;
    align-items: center;
    gap: 16px;
}
@media (min-width: 768px) {
    .elementor-widget-my-custom-cart .product-detail-content {
        gap: 12px;
    }
}
@media (min-width: 1025px) {
    .elementor-widget-my-custom-cart .product-detail-content {
        gap: 26px;
    }
}
@media (min-width: 1440px) {
    .elementor-widget-my-custom-cart .product-detail-content {
        gap: 26px;
    }
}

.elementor-widget-my-custom-cart  .product-detail-content .product-remove {
    margin-left: 4px;
    margin-right: 14px;
    flex: 0 0 auto;
}
.elementor-widget-my-custom-cart .product-remove a:hover {
    outline: none;
    background: none !important;
}
@media (min-width: 768px) {
    .elementor-widget-my-custom-cart  .product-detail-content .product-remove {
        margin-right: 8px;
    }
}
@media (min-width: 1025px) {
    .elementor-widget-my-custom-cart  .product-detail-content .product-remove {
        margin-right: 7px;
    }
}
@media (min-width: 1440px) {
     .elementor-widget-my-custom-cart  .product-detail-content .product-remove {
        margin-right: 7px;
    }
}

.elementor-widget-my-custom-cart  .product-detail-content .product-thumbnail {
    display: block !important;
    flex: 0 0 auto;
}
.elementor-widget-my-custom-cart  .product-detail-content .product-thumbnail img {
    width: 100px !important;
    height: 200px !important;
    object-fit: cover;
    display: block;
}
@media (min-width: 768px) {
    .elementor-widget-my-custom-cart  .product-detail-content .product-thumbnail img {
        width: 80px !important;
        height: 80px !important;
    }
}
@media (min-width: 1025px) {
    .elementor-widget-my-custom-cart  .product-detail-content .product-thumbnail img {
        width: 120px !important;
        height: 120px !important;
    }
}

.elementor-widget-my-custom-cart .product-detail-content .product-name {
    text-align: left;
    flex: 1;
    min-width: 0;
}
.elementor-widget-my-custom-cart .product-detail-content .product-name .product-title {
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 24px !important; /* 213.333% */
    letter-spacing: 0.84px !important;
}
@media (min-width: 1025px) {
    .elementor-widget-my-custom-cart .product-detail-content .product-name .product-title {
        font-size: 15px !important;
        line-height: 32px !important; /* 213.333% */
        letter-spacing: 0.9px !important;
    }
}
.elementor-widget-my-custom-cart .product-detail-content .product-name .product-tag {
    font-size: 12px !important;
    font-weight: 200 !important;
    line-height: 22px !important; /* 183.333% */
    letter-spacing: 0.72px !important;
}


/* --- Column 2: Product Price --- */
.elementor-widget-my-custom-cart .product-price-content {
    font-size: 13px !important;
    font-weight: 300 !important;
    line-height: 24px !important; /* 160% */
    letter-spacing: 0.78px !important;
    margin-bottom: 24px;
    margin-top: 4px;
}
.elementor-widget-my-custom-cart .product-price-content .spacer {
    height: 20px;
}
@media (min-width: 1025px) {
    .elementor-widget-my-custom-cart .product-price-content {
        font-size: 15px !important;;
        line-height: 24px !important; /* 160% */
        letter-spacing: 0.9px !important;
        margin: 0px;
    }
}


/* --- Column 3: Quantity --- */
.elementor-widget-my-custom-cart .product-quantity-content .spacer {
    height: 6px;
}

/* --- Column 4: Total --- */
.elementor-widget-my-custom-cart .product-total-content {
    font-size: 13px !important;
    font-weight: 300 !important;
    line-height: 24px !important; /* 160% */
    letter-spacing: 0.78px !important;
}
.elementor-widget-my-custom-cart .product-total-content .spacer {
    height: 20px;
}
@media (min-width: 1025px) {
    .elementor-widget-my-custom-cart .product-total-content {
        font-size: 15px !important;
        line-height: 24px !important; /* 160% */
        letter-spacing: 0.9px !important;
    }
}

/* HIDE ACTIONS ROW (HIDDEN UPDATE CART BUTTON) */
.elementor-widget-my-custom-cart .cart-actions-row { display: none !important; }

/* QUANTITY STEPPER */
@media (min-width: 768px) {
    .hide-mobile .custom-quantity-stepper {
        display: inline-flex;
        border: 0.5px solid #151515 !important;
        border-radius: 0px;
    }
    .hide-mobile .custom-quantity-stepper input.qty {
        -moz-appearance: textfield;
        border: none !important;
        cursor: default !important;
        background: transparent;
        outline: none;
        border-radius: 0px;
        border-left: 0.5px solid #151515 !important;
        border-right: 0.5px solid #151515 !important;
        padding: 3px 0 !important;
        
        text-align: center;
        width: 30px !important; /* Set the exact width you want */
        font-size: 12px !important;
        font-weight: 400 !important;
        line-height: 24px !important; /* 171.429% */
        letter-spacing: 0px !important;
    
    }
    .hide-mobile .custom-quantity-stepper input.qty::-webkit-outer-spin-button,
    .hide-mobile .custom-quantity-stepper input.qty::-webkit-inner-spin-button {
        -webkit-appearance: none; margin: 0;
    }
    .hide-mobile .custom-quantity-stepper .quantity-button {
        background-color: transparent !important;
        border: none;
        cursor: pointer;
        color: #151515 !important;
        
        display: flex;          /* Use flexbox to center the content */
        justify-content: center;/* Horizontally center the SVG */
        align-items: center;    /* Vertically center the SVG */
        
        /* --- This is the key for identical sizing --- */
        padding: 10px;             /* Reset padding to ensure size is exact */
    }
    .hide-mobile .custom-quantity-stepper .quantity-button svg {
        width: 10px;  /* Set the icon width */
        height: 10px; /* Set the icon height */
    }
    .hide-mobile .custom-quantity-stepper div.quantity { 
        margin: 0 !important;
    }
}
@media (min-width: 1025px) {
    .custom-quantity-stepper input.qty {
        width: 60px !important; /* Set the exact width you want */
        padding: 6px 0 !important;
        
        font-size: 14px !important;
        line-height: 24px !important; /* 171.429% */
        letter-spacing: 0.56px !important;
    }
    
    .custom-quantity-stepper .quantity-button {
        padding: 12px;             /* Reset padding to ensure size is exact */
    }
    .custom-quantity-stepper .quantity-button svg {
        width: 12px;  /* Set the icon width */
        height: 12px; /* Set the icon height */
    }
}

/* Mobile version*/ 
div.product-quantity-content.mobile {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}
div.product-quantity-content.mobile span {
    font-family: "Montserrat";
    color: #151515 !important;
    text-transform: uppercase;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 20px !important; /* 166.667% */
    letter-spacing: 0.48px !important;
    
}
.mobile .custom-quantity-stepper {
    display: inline-flex;
}
.mobile .custom-quantity-stepper input.qty {
        -moz-appearance: textfield;
        border: none !important;
        cursor: default !important;
        background: transparent;
        outline: none;
        padding: 0px 0 !important;
        
        text-align: center;
        width: 20px !important; /* Set the exact width you want */
        font-size: 12px !important;
        font-weight: 400 !important;
        line-height: 24px !important; /* 171.429% */
        letter-spacing: 0px !important;
    
    }
.mobile .custom-quantity-stepper input.qty::-webkit-outer-spin-button,
.mobile .custom-quantity-stepper input.qty::-webkit-inner-spin-button {
        -webkit-appearance: none; margin: 0;
    }
.mobile .custom-quantity-stepper .quantity-button {
        background-color: transparent !important;
        border: none;
        cursor: pointer;
        color: #151515 !important;
        
        display: flex;          /* Use flexbox to center the content */
        justify-content: center;/* Horizontally center the SVG */
        align-items: center;    /* Vertically center the SVG */
        
        /* --- This is the key for identical sizing --- */
        padding: 6px;             /* Reset padding to ensure size is exact */
    }
.mobile .custom-quantity-stepper .quantity-button svg {
        width: 8px;  /* Set the icon width */
        height: 8px; /* Set the icon height */
    }
.mobile .custom-quantity-stepper div.quantity { 
        margin: 0 !important;
    }


/* TOTALS TABLE */
.elementor-widget-my-custom-cart .cart_totals tr {
    display: table-row !important;
}
.elementor-widget-my-custom-cart .cart_totals th {
    display: table-cell !important;
}
.elementor-widget-my-custom-cart .cart_totals,
.elementor-widget-my-custom-cart .cart_totals th,
.elementor-widget-my-custom-cart .cart_totals td {
    background-color: transparent !important;
    border: none !important;
    padding: 0px !important;
    font-family: 'Montserrat' !important;
    color: #151515 !important;
}
.elementor-widget-my-custom-cart .cart_totals td {
    text-align: right;
}
.elementor-widget-my-custom-cart .cart_totals .shipping-fee th,
.elementor-widget-my-custom-cart .cart_totals .shipping-fee td {
    padding: 16px 0px 12px 0px !important;
    border: none !important;
    border-top: 0.5px solid #BDBDBD !important;
}

.elementor-widget-my-custom-cart .cart_totals .cart-subtotal th,
.elementor-widget-my-custom-cart .cart_totals .cart-subtotal td {
    padding: 0px 0px 16px 0!important;
    border: none !important;
    border-bottom: 0.5px solid #BDBDBD !important;
}
.elementor-widget-my-custom-cart .cart_totals .cart-subtotal th,
.elementor-widget-my-custom-cart .cart_totals .shipping-fee th {
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 20px !important; /* 184.615% */
    letter-spacing: 0.48px !important;
}
.elementor-widget-my-custom-cart .cart_totals .cart-subtotal td,
.elementor-widget-my-custom-cart .cart_totals .shipping-fee td {
    font-size: 12px !important;
    font-weight: 200 !important;
    line-height: 22px !important; /* 184.615% */
    letter-spacing: 0.72px !important;
}
.elementor-widget-my-custom-cart .cart_totals .order-total th,
.elementor-widget-my-custom-cart .cart_totals .order-total td {
    padding: 12px 0px 0px 0px !important;
    border: none !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 24px !important; /* 213.333% */
    letter-spacing: 0.78px !important;
}
.elementor-widget-my-custom-cart .cart_totals .order-total td strong {
    font-weight: 600 !important;
}
@media (min-width: 768px) {
    .elementor-widget-my-custom-cart .cart_totals .shipping-fee th,
    .elementor-widget-my-custom-cart .cart_totals .shipping-fee td {
        padding: 16px 0px 9px 0px !important;
    }
    .elementor-widget-my-custom-cart .cart_totals .cart-subtotal th,
    .elementor-widget-my-custom-cart .cart_totals .shipping-fee th {
        font-size: 13px !important;
        font-weight: 300 !important;
        line-height: 24px !important; /* 184.615% */
        letter-spacing: 0.78px !important;
    }
    .elementor-widget-my-custom-cart .cart_totals .order-total th,
    .elementor-widget-my-custom-cart .cart_totals .order-total td {
        font-size: 15px !important;
        line-height: 32px !important; /* 213.333% */
        letter-spacing: 0.9px !important;
    }
}
