/* ============================================
   Cart Page — modernaminos.com
   Path: /assets/css/cart-styles.css
============================================ */

/* ── Font ── */
.custom-cart-wrapper,
.custom-cart-wrapper * {
    font-family: "Poppins", sans-serif !important;
    box-sizing: border-box !important;
}

/* Prevent horizontal scroll caused by the full-width header breakout */
body.woocommerce-cart {
    overflow-x: hidden !important;
}

body.woocommerce-cart .site-main
{
    max-width: 1254px !important;
    width: 100% !important;
    padding: 0 20px !important;
    margin: 0 auto !important;
}
/* ── Wrapper ── */
.custom-cart-wrapper {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    color: #4A5568 !important;
    background-color: transparent !important;
    margin: 0 auto !important;
    padding: 0 !important;
    font-size: 14px !important;
    clear: both !important;
}

/* ── Header ── */
.custom-cart-header {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    height: 205px !important;
    width: 100vw !important;
    margin-left: calc(-50vw + 50%) !important;
    margin-right: calc(-50vw + 50%) !important;
    background: linear-gradient(90deg, #003862 0%, #00203E 100%) !important;
    text-align: center !important;
    padding: 0 20px !important;
    flex-shrink: 0 !important;
    border-radius: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 30px !important;
}

.custom-cart-header h1 {
    color: #ffffff !important;
    font-size: 30.32px !important;
    font-weight: 700 !important;
    margin: 0 0 10px 0 !important;
    text-transform: none !important;
    line-height: 39.27px !important;
}

.custom-cart-header p {
    color: #D4A843 !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    line-height: 42.03px !important;
    margin: 0 !important;
}

/* ── Main container ── */
.custom-cart-container {
    width: 100% !important;
    margin: 0 auto 80px auto !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    gap: 30px !important;
    align-items: stretch !important;
}

.custom-cart-main {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    background: #ffffff !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04) !important;
    padding: 20px !important;
    border: 1px solid #EBEFF2 !important;
}

.custom-cart-sidebar {
    flex: 0 0 350px !important;
    width: 350px !important;
    background: #ffffff !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04) !important;
    padding: 18px !important;
    border: 1px solid #EBEFF2 !important;
}

/* ── Cart table ── */
.custom-cart-table {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border: 1px solid #DBE6EE !important;
    border-radius: 10px !important;
    margin: 0 !important;
    box-shadow: 0 2px 8px rgba(8, 32, 44, 0.05) !important;
    overflow: hidden !important;
    background: #ffffff !important;
}

.custom-cart-table thead { background: transparent !important; border: none !important; }

.custom-cart-table th,
.custom-cart-table td {
    border: none !important;
    background: transparent !important;
    padding: 15px 10px !important;
}

.custom-cart-table th {
    background-color: #EEF3F6 !important;
    color: #246B92 !important;
    font-weight: 600 !important;
    text-align: left !important;
    font-size: 13px !important;
    text-transform: capitalize !important;
}

.custom-cart-table th:first-child { border-radius: 6px 0 0 0 !important; padding-left: 20px !important; }
.custom-cart-table th:last-child  { border-radius: 0 6px 0 0 !important; text-align: right !important; padding-right: 20px !important; }

.custom-cart-table th.col-price,
.custom-cart-table td.col-price,
.custom-cart-table th.col-qty,
.custom-cart-table td.col-qty    { text-align: center !important; }

.custom-cart-table th.col-subtotal,
.custom-cart-table td.col-subtotal { text-align: right !important; }

.custom-cart-table td {
    vertical-align: middle !important;
    border-bottom: 1px solid #EBEFF2 !important;
}

.custom-cart-table td:first-child  { padding-left: 20px !important; }
.custom-cart-table td:last-child   { padding-right: 20px !important; }
.custom-cart-table tr:last-child td { border-bottom: none !important; }

/* Column widths */
.col-product  { width: 45% !important; }
.col-price    { width: 15% !important; }
.col-qty      { width: 25% !important; }
.col-subtotal { width: 15% !important; }

/* Product info */
.product-info-wrap {
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
    width: 100% !important;
}

.product-thumbnail {
    position: relative !important;
    width: 60px !important;
    height: 60px !important;
    min-width: 60px !important;
    background: #F4F6F8 !important;
    border-radius: 6px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 5px !important;
    border: none !important;
}

.product-thumbnail img {
    width: 100% !important;
    height: 100% !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    object-fit: contain !important;
}

/* Remove button */
.remove-item-icon {
    position: absolute !important;
    top: -8px !important;
    right: -8px !important;
    left: auto !important;
    background: #D32F2F !important;
    color: white !important;
    width: 20px !important;
    height: 20px !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-decoration: none !important;
    line-height: 1 !important;
    border: 2px solid #fff !important;
    z-index: 10 !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
}

.remove-item-icon svg { width: 10px !important; height: 10px !important; stroke: #fff !important; }

.product-name a {
    color: #116190 !important;
    text-decoration: none !important;
    font-weight: 400 !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
}

.product-name a:hover { text-decoration: underline !important; }

.col-price    { font-weight: 500 !important; color: #4A5568 !important; }
.col-subtotal { font-weight: 600 !important; color: #1a202c !important; }

/* ── Quantity ── */
.col-qty { display: table-cell !important; vertical-align: middle !important; }
.col-qty .quantity { margin: 0 auto !important; }

.qty-wrapper {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: 4px !important;
    background: #ffffff !important;
    height: 38px !important;
    padding: 0 !important;
    overflow: hidden !important;
    box-shadow: none !important;
}

.qty-btn {
    background: none !important;
    border: none !important;
    color: #246B92 !important;
    width: 32px !important;
    height: 100% !important;
    cursor: pointer !important;
    font-size: 16px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    outline: none !important;
}

.qty-btn:hover { background: #F4F6F8 !important; }

.qty-wrapper input.qty {
    width: 45px !important;
    height: 100% !important;
    border: none !important;
    border-left: 1px solid #E2E8F0 !important;
    border-right: 1px solid #E2E8F0 !important;
    border-radius: 0 !important;
    text-align: center !important;
    font-weight: 600 !important;
    color: #1a202c !important;
    background: #fff !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    -moz-appearance: textfield !important;
}

.qty-wrapper input.qty::-webkit-outer-spin-button,
.qty-wrapper input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

/* ── Sidebar totals ── */
.custom-totals-wrap tr.total-row,
.custom-totals-wrap tr.shipping,
.custom-totals-wrap .total-row,
.custom-totals-wrap .shipping-row {
    display: flex !important;
    justify-content: space-between !important;
    padding: 12px 0 !important;
    color: #08202C !important;
    align-items: center !important;
    border-bottom: 1px solid #F0F4F8 !important;
    font-size: 18px !important;
    line-height: 25px !important;
    font-weight: 400 !important;
    background: transparent !important;
}

.custom-totals-wrap .total-row > span:first-child,
.custom-totals-wrap .shipping-row > span:first-child {
    font-weight: 400 !important;
    font-size: 18px !important;
    color: #08202C !important;
    text-align: left !important;
    background: transparent !important;
}

.custom-totals-wrap .total-row .val,
.custom-totals-wrap .shipping-row .val {
    font-weight: 500 !important;
    font-size: 18px !important;
    line-height: 25px !important;
    color: #116190 !important;
    text-align: right !important;
    background: transparent !important;
}

.custom-totals-wrap .shipping-row {
    flex-direction: column !important;
    align-items: flex-start !important;
    padding-bottom: 20px !important;
}

.custom-totals-wrap .shipping-row > span:first-child {
    font-weight: 600 !important;
    margin-bottom: 8px !important;
    display: block !important;
    width: 100% !important;
}

.custom-totals-wrap .shipping-row .val {
    width: 100% !important;
    text-align: left !important;
    color: #116190 !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    display: block !important;
}

/* Grand total */
.custom-totals-wrap .grand-total,
.custom-totals-wrap tr.grand-total {
    border-top: 2px solid #EBEFF2 !important;
    border-bottom: none !important;
    padding-top: 20px !important;
    margin-top: 15px !important;
    font-weight: 600 !important;
}

.custom-totals-wrap .grand-total > span:first-child,
.custom-totals-wrap tr.grand-total th { font-weight: 600 !important; font-size: 18px !important; }

.custom-totals-wrap .grand-total .val,
.custom-totals-wrap tr.grand-total td {
    font-size: 20px !important;
    font-weight: 600 !important;
    color: #116190 !important;
    line-height: 25px !important;
}

.custom-totals-wrap tr.grand-total td strong,
.custom-totals-wrap tr.grand-total td bdi,
.custom-totals-wrap .grand-total .val strong,
.custom-totals-wrap .grand-total .val bdi {
    font-weight: 600 !important;
    font-size: 20px !important;
}

.sidebar-title {
    font-size: 24px !important;
    font-weight: 600 !important;
    color: #1a202c !important;
    margin: 0 0 25px 0 !important;
    border: none !important;
    padding: 0 !important;
    line-height: 1 !important;
}

.custom-totals-wrap table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}

.custom-totals-wrap tr:last-child { border-bottom: none !important; }

.custom-totals-wrap th {
    font-weight: 400 !important;
    font-size: 18px !important;
    color: #08202C !important;
    text-align: left !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}

.custom-totals-wrap td {
    font-weight: 500 !important;
    font-size: 18px !important;
    line-height: 25px !important;
    color: #116190 !important;
    text-align: right !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    width: auto !important;
}

.custom-totals-wrap tr.shipping {
    flex-direction: column !important;
    align-items: flex-start !important;
    padding-bottom: 20px !important;
}

.custom-totals-wrap tr.shipping th {
    color: #08202C !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    margin-bottom: 8px !important;
    display: block !important;
    width: 100% !important;
}

.custom-totals-wrap tr.shipping td {
    width: 100% !important;
    text-align: left !important;
    color: #116190 !important;
    font-size: 16px !important;
    font-weight: 400 !important;
}

.woocommerce-shipping-package-name { display: none !important; }
.woocommerce-shipping-destination,
.woocommerce-shipping-destination strong { display: none !important; }

.custom-totals-wrap ul#shipping_method {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.custom-totals-wrap ul#shipping_method li {
    margin-bottom: 12px !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 16px !important;
    color: #4A5568 !important;
    line-height: 1.5 !important;
}

.custom-totals-wrap ul#shipping_method li:last-child { margin-bottom: 0 !important; }

.custom-totals-wrap ul#shipping_method input[type="radio"] {
    margin: 0 !important;
    flex-shrink: 0 !important;
    accent-color: #116190 !important;
    transform: scale(1.2) !important;
    cursor: pointer !important;
    outline: none !important;
    box-shadow: none !important;
}

.custom-totals-wrap ul#shipping_method input[type="radio"]:focus,
.custom-totals-wrap ul#shipping_method input[type="radio"]:focus-visible,
.custom-totals-wrap ul#shipping_method input[type="radio"]:active {
    outline: none !important;
    box-shadow: none !important;
}

.custom-totals-wrap ul#shipping_method label {
    margin: 0 !important;
    display: inline-block !important;
    color: #4A5568 !important;
    font-weight: 400 !important;
    cursor: pointer !important;
}

.custom-totals-wrap ul#shipping_method label .amount {
    color: #08202C !important;
    font-weight: 700 !important;
    font-size: 16px !important;
}

/* ── Coupon ── */
.coupon-box {
    border: 1px dashed #8EB5C7 !important;
    border-radius: 8px !important;
    padding: 10px !important;
    margin: 20px 0 !important;
    background: transparent !important;
}

.coupon-title {
    color: #246B92 !important;
    font-weight: 600 !important;
    margin: 0 0 12px 0 !important;
    font-size: 14px !important;
}

.coupon-input-wrap { display: flex !important; gap: 10px !important; }

.coupon-input-wrap input {
    flex: 1 !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: 4px !important;
    padding: 12px 15px !important;
    font-size: 14px !important;
    width: 100% !important;
    background: #fff !important;
    box-shadow: none !important;
    outline: none !important;
}

.coupon-input-wrap input:focus { border-color: #246B92 !important; }

.coupon-input-wrap button,
.coupon-input-wrap .btn-apply {
    background: #115E8C !important;
    color: #fff !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 12px 25px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: background 0.3s !important;
    box-shadow: none !important;
}

.coupon-input-wrap button:hover,
.coupon-input-wrap .btn-apply:hover { background: #0E4B72 !important; }

/* Coupon remove — × icon */
.woocommerce-remove-coupon {
    font-size: 0 !important;
    color: transparent !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 18px !important;
    height: 18px !important;
    margin-left: 8px !important;
    border-radius: 50% !important;
    background: #FEE2E2 !important;
    border: 1px solid #FCA5A5 !important;
    vertical-align: middle !important;
    transition: all 0.2s ease !important;
    cursor: pointer !important;
    line-height: 1 !important;
}

.woocommerce-remove-coupon::before {
    content: "\00d7" !important;
    font-size: 14px !important;
    color: #D32F2F !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    display: block !important;
}

.woocommerce-remove-coupon:hover {
    background: #D32F2F !important;
    border-color: #D32F2F !important;
    transform: scale(1.08) !important;
}

.woocommerce-remove-coupon:hover::before { color: #ffffff !important; }

/* ── WC Notices ── */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error {
    background: #ffffff !important;
    border: 1px solid #EBEFF2 !important;
    border-radius: 10px !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04) !important;
    padding: 16px 22px !important;
    color: #08202C !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
    list-style: none !important;
    margin: 0 0 20px 0 !important;
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    animation: notice-slide-in 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.woocommerce-notices-wrapper .woocommerce-message { border-left: 4px solid #65A30D !important; }
.woocommerce-notices-wrapper .woocommerce-info    { border-left: 4px solid #116190 !important; }
.woocommerce-notices-wrapper .woocommerce-error   { border-left: 4px solid #D32F2F !important; }

.woocommerce-notices-wrapper .woocommerce-message::before,
.woocommerce-notices-wrapper .woocommerce-info::before,
.woocommerce-notices-wrapper .woocommerce-error::before {
    position: static !important;
    top: auto !important; left: auto !important; right: auto !important;
    margin: 0 4px 0 0 !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    line-height: 1 !important;
    background: transparent !important;
}

.woocommerce-notices-wrapper .woocommerce-message::before { color: #65A30D !important; font-size: 18px !important; }
.woocommerce-notices-wrapper .woocommerce-info::before    { color: #116190 !important; font-size: 18px !important; }
.woocommerce-notices-wrapper .woocommerce-error::before   { color: #D32F2F !important; font-size: 18px !important; }

.woocommerce-notices-wrapper .woocommerce-message li,
.woocommerce-notices-wrapper .woocommerce-error li,
.woocommerce-notices-wrapper .woocommerce-info li {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    align-items: center !important;
    gap: 8px !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    word-break: break-word !important;
}

.woocommerce-notices-wrapper .restore-item,
.woocommerce-notices-wrapper a.restore-item {
    display: inline-block !important;
    flex-shrink: 0 !important;
    margin-left: 4px !important;
    padding: 5px 14px !important;
    background: #116190 !important;
    color: #ffffff !important;
    border-radius: 20px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 2px 6px rgba(17, 97, 144, 0.2) !important;
}

.woocommerce-notices-wrapper .restore-item:hover,
.woocommerce-notices-wrapper a.restore-item:hover {
    background: #0E4B72 !important;
    color: #ffffff !important;
    transform: translateY(-1px) !important;
    text-decoration: none !important;
}

@keyframes notice-slide-in {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Cart actions footer ── */
.cart-actions-footer {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 18px 20px 4px 20px !important;
    margin-top: 4px !important;
}

.cart-actions-footer .update-hint {
    color: #A0B2BC !important;
    font-size: 13px !important;
    margin: 0 !important;
    flex: 1 1 auto !important;
}

/* Update cart button */
.btn-update-cart {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    background: #ffffff !important;
    color: #116190 !important;
    border: 1.5px solid #116190 !important;
    border-radius: 30px !important;
    padding: 10px 22px !important;
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    cursor: pointer !important;
    transition: all 0.25s ease !important;
    box-shadow: none !important;
    outline: none !important;
}

.btn-update-cart:hover:not(:disabled) {
    background: #116190 !important;
    color: #ffffff !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 10px rgba(17, 97, 144, 0.2) !important;
}

.btn-update-cart:disabled { opacity: 0.55 !important; cursor: not-allowed !important; }

.btn-update-cart.is-dirty {
    background: #116190 !important;
    color: #ffffff !important;
    box-shadow: 0 4px 10px rgba(17, 97, 144, 0.25) !important;
    animation: cart-pulse 1.4s ease-in-out infinite !important;
}

.btn-update-cart.is-loading {
    background: #116190 !important;
    color: #ffffff !important;
    pointer-events: none !important;
    opacity: 0.85 !important;
    cursor: progress !important;
    animation: none !important;
}

.btn-update-cart.is-loading svg { animation: cart-spin 0.7s linear infinite !important; }
.btn-update-cart svg { width: 14px !important; height: 14px !important; }

@keyframes cart-pulse {
    0%, 100% { box-shadow: 0 4px 10px rgba(17, 97, 144, 0.25); }
    50%       { box-shadow: 0 4px 18px rgba(17, 97, 144, 0.55); }
}

@keyframes cart-spin {
    to { transform: rotate(360deg); }
}

/* Coupon apply loading */
.coupon-input-wrap .btn-apply.is-loading {
    position: relative !important;
    pointer-events: none !important;
    opacity: 0.85 !important;
    color: transparent !important;
    cursor: progress !important;
}

.coupon-input-wrap .btn-apply.is-loading::after {
    content: "" !important;
    position: absolute !important;
    top: 50% !important; left: 50% !important;
    width: 16px !important; height: 16px !important;
    margin: -8px 0 0 -8px !important;
    border: 2px solid #ffffff !important;
    border-right-color: transparent !important;
    border-radius: 50% !important;
    animation: cart-spin 0.7s linear infinite !important;
}

/* Loading overlay — permanently hidden */
.cart-loading-overlay,
.cart-loading-box,
.cart-loading-spinner,
.cart-loading-msg {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* ── Checkout button ── */
.btn-checkout {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    background: #116190 !important;
    color: #ffffff !important;
    width: 100% !important;
    height: 59px !important;
    padding: 0 !important;
    border-radius: 150px !important;
    text-decoration: none !important;
    font-weight: 500 !important;
    font-size: 16px !important;
    line-height: 1 !important;
    margin-top: 25px !important;
    border: none !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 10px rgba(17, 94, 140, 0.2) !important;
}

.btn-checkout:hover {
    background: #0E4B72 !important;
    color: #fff !important;
    transform: translateY(-2px) !important;
}

/* ── Empty state ── */
.custom-empty-cart {
    text-align: center !important;
    padding: 100px 20px !important;
}

.empty-icon-wrap { margin-bottom: 25px !important; }

.empty-icon-wrap svg {
    width: 100px !important;
    height: 100px !important;
    stroke: #DBE3E7 !important;
}

.custom-empty-cart p {
    color: #A0B2BC !important;
    font-size: 18px !important;
    margin: 0 0 30px 0 !important;
    font-weight: 500 !important;
}

.btn-primary {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    background: #115E8C !important;
    color: #fff !important;
    padding: 16px 35px !important;
    border-radius: 40px !important;
    text-decoration: none !important;
    font-weight: 600 !important;
    transition: all 0.3s ease !important;
}

.btn-primary:hover {
    background: #0E4B72 !important;
    transform: translateY(-2px) !important;
}

/* ── Tablet ── */
@media (max-width: 991px) {
    .custom-cart-container {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .custom-cart-main,
    .custom-cart-sidebar {
        width: 100% !important;
        flex: 1 1 100% !important;
    }
}

/* ── Mobile ── */
@media (max-width: 767px) {
    html, body { overflow-x: hidden !important; }

    .custom-cart-wrapper {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
    }

    .custom-cart-container {
        width: 100vw !important;
        max-width: 100vw !important;
        margin: 0 0 40px 0 !important;
        margin-left: calc(-50vw + 50%) !important;
        margin-right: calc(-50vw + 50%) !important;
        padding: 0 15px !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 20px !important;
        align-items: stretch !important;
        box-sizing: border-box !important;
    }

    .custom-cart-main {
        width: 100% !important;
        max-width: 100% !important;
        flex: 1 1 100% !important;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .custom-cart-sidebar {
        width: 100% !important;
        max-width: 100% !important;
        flex: 1 1 100% !important;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        padding: 10px 0 0 0 !important;
        margin: 0 !important;
    }

    .woocommerce-cart-form {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        display: block !important;
    }

    .woocommerce-notices-wrapper {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-left: calc(-50vw + 50%) !important;
        margin-right: calc(-50vw + 50%) !important;
        padding: 0 15px !important;
        margin-top: 0 !important;
        margin-bottom: 15px !important;
        box-sizing: border-box !important;
    }

    .custom-cart-table,
    .custom-cart-table tbody {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        border: none !important;
    }

    .custom-cart-table thead { display: none !important; }

    .custom-cart-table tr.cart-item,
    .custom-cart-table tr.cart_item {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        background: #ffffff !important;
        margin: 0 0 20px 0 !important;
        border: 1px solid #EBEFF2 !important;
        border-radius: 8px !important;
        padding: 20px !important;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04) !important;
        position: relative !important;
        box-sizing: border-box !important;
    }

    .custom-cart-table td {
        display: flex !important;
        width: 100% !important;
        padding: 10px 0 !important;
        border-bottom: none !important;
        align-items: center !important;
        justify-content: space-between !important;
        text-align: right !important;
        font-size: 14px !important;
        color: #1a202c !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }

    .custom-cart-table td:first-child { padding-left: 0 !important; }
    .custom-cart-table td:last-child  { border-bottom: none !important; padding-bottom: 0 !important; font-weight: 700 !important; color: #000 !important; padding-right: 0 !important; }

    .custom-cart-table td.col-product {
        justify-content: flex-start !important;
        text-align: left !important;
        padding: 0 0 15px 0 !important;
        margin-bottom: 10px !important;
        border-bottom: none !important;
    }

    .custom-cart-table td.col-price::before   { content: "Price:" !important;    color: #A0B2BC !important; font-size: 14px !important; font-weight: 400 !important; }
    .custom-cart-table td.col-qty::before     { content: "Quantity:" !important; color: #A0B2BC !important; font-size: 14px !important; font-weight: 400 !important; }
    .custom-cart-table td.col-subtotal::before{ content: "Price:" !important;    color: #A0B2BC !important; font-size: 14px !important; font-weight: 400 !important; }

    .col-qty .quantity { margin: 0 !important; }

    .product-thumbnail {
        width: 90px !important;
        height: 90px !important;
        min-width: 90px !important;
        position: static !important;
    }

    .product-info-wrap {
        justify-content: flex-start !important;
        gap: 20px !important;
        align-items: center !important;
    }

    .product-name { flex: 1 1 auto !important; text-align: left !important; margin-left: 0 !important; }
    .product-name a { font-size: 14px !important; }

    .remove-item-icon {
        display: flex !important;
        position: absolute !important;
        top: 15px !important;
        right: 15px !important;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        width: 24px !important;
        height: 24px !important;
    }

    .remove-item-icon svg { width: 16px !important; height: 16px !important; }
    .remove-item-icon svg path { stroke: #D32F2F !important; }

    .cart-actions-footer {
        flex-direction: column !important;
        align-items: stretch !important;
        padding: 16px 0 0 0 !important;
    }

    .cart-actions-footer .update-hint { text-align: center !important; }
    .btn-update-cart { width: 100% !important; padding: 14px 22px !important; }

    /* Sidebar totals responsive */
    .custom-totals-wrap .shop_table_responsive tr {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
    }

    .custom-totals-wrap .shop_table_responsive tr th {
        display: block !important;
        text-align: left !important;
        float: none !important;
        width: auto !important;
    }

    .custom-totals-wrap .shop_table_responsive tr td {
        display: block !important;
        text-align: right !important;
        float: none !important;
        width: auto !important;
    }

    .custom-totals-wrap .shop_table_responsive tr td::before {
        content: none !important;
        display: none !important;
    }

    .custom-totals-wrap .shop_table_responsive tr.shipping,
    .custom-totals-wrap .shop_table_responsive tr.woocommerce-shipping-totals {
        flex-direction: column !important;
        align-items: flex-start !important;
        text-align: left !important;
    }

    .custom-totals-wrap .shop_table_responsive tr.shipping th,
    .custom-totals-wrap .shop_table_responsive tr.shipping td,
    .custom-totals-wrap .shop_table_responsive tr.woocommerce-shipping-totals th,
    .custom-totals-wrap .shop_table_responsive tr.woocommerce-shipping-totals td {
        text-align: left !important;
        width: 100% !important;
    }
}