/* ==========================================================
   SERVAUX - CHECKOUT / CARRINHO
   Arquivo: 05-checkout.css
   ========================================================== */


/* ==========================================================
   1. CHECKOUT / VIA CEP
   ========================================================== */

.servaux-cep-loading {
    opacity: 0.7;
}

.woocommerce-checkout .servaux-cep-loading input,
.woocommerce-checkout input.servaux-cep-loading {
    opacity: 0.7;
    pointer-events: none;
}

.woocommerce-checkout .woocommerce-error a,
.woocommerce-checkout .woocommerce-error li a,
.woocommerce-checkout .woocommerce-notices-wrapper .woocommerce-error a,
.woocommerce-checkout .woocommerce-NoticeGroup .woocommerce-error a {
    color: #111111 !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

.woocommerce-checkout .woocommerce-error a:hover,
.woocommerce-checkout .woocommerce-error li a:hover,
.woocommerce-checkout .woocommerce-notices-wrapper .woocommerce-error a:hover,
.woocommerce-checkout .woocommerce-NoticeGroup .woocommerce-error a:hover {
    color: #0099ff !important;
    text-decoration: underline !important;
}


/* ==========================================================
   2. BARRA DE FRETE GRÁTIS
   ========================================================== */

.servaux-free-shipping-box {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 28px 0 !important;
    padding: 16px 18px 14px !important;
    box-sizing: border-box !important;
    background: #f0fdf4 !important;
    border: 1px solid #86efac !important;
    border-radius: 18px !important;
    box-shadow: 0 10px 24px rgba(34, 197, 94, 0.08) !important;
}

.servaux-free-shipping-text {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 0 12px !important;
    color: #166534 !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    line-height: 1.4 !important;
}

.servaux-free-shipping-text strong,
.servaux-free-shipping-success strong {
    color: #166534 !important;
    font-weight: 900 !important;
}

.servaux-free-shipping-icon {
    font-size: 16px !important;
    line-height: 1 !important;
}

.servaux-free-shipping-progress {
    position: relative !important;
    width: 100% !important;
    height: 6px !important;
    overflow: hidden !important;
    background: #dbeafe !important;
    border-radius: 999px !important;
}

.servaux-free-shipping-progress span {
    display: block !important;
    height: 100% !important;
    background: linear-gradient(90deg, #0099ff 0%, #22c55e 100%) !important;
    border-radius: 999px !important;
    transition: width 0.35s ease !important;
}


/* ==========================================================
   3. MENSAGENS DO CARRINHO
   ========================================================== */

body.woocommerce-cart .woocommerce-notices-wrapper {
    width: 100% !important;
    margin: 0 0 26px !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

/* Oculta somente notices de sucesso na página do carrinho. */
body.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-message {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error {
    width: 100% !important;
    margin: 0 0 22px !important;
    padding: 16px 22px 16px 52px !important;
    color: #374151 !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 14px !important;
    outline: none !important;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.04) !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
}

body.woocommerce-cart .woocommerce-info {
    background: #f5faff !important;
    border-left: 4px solid #0099ff !important;
}

body.woocommerce-cart .woocommerce-error {
    background: #fff7f7 !important;
    border-left: 4px solid #ef4444 !important;
}

body.woocommerce-cart .woocommerce-info::before {
    color: #0099ff !important;
}

body.woocommerce-cart .woocommerce-error::before {
    color: #ef4444 !important;
}


/* ==========================================================
   4. WRAPPER DO ELEMENTOR
   Classe no widget Shortcode: servaux-cart-shortcode-wrap
   ========================================================== */

body.woocommerce-cart .servaux-cart-shortcode-wrap {
    position: relative !important;
    left: 50% !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: -50vw !important;
    margin-right: -50vw !important;
    padding: 0 48px 72px !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap,
body.woocommerce-cart .servaux-cart-shortcode-wrap .elementor-widget-container,
body.woocommerce-cart .servaux-cart-shortcode-wrap .elementor-shortcode {
    min-width: 0 !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .elementor-widget-container,
body.woocommerce-cart .servaux-cart-shortcode-wrap .elementor-shortcode {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .woocommerce {
    width: 100% !important;
    max-width: 1280px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    color: #111111 !important;
    font-family: inherit !important;
}


/* ==========================================================
   5. CARRINHO COM ITENS / LAYOUT
   ========================================================== */

body.woocommerce-cart.servaux-cart-has-items
.servaux-cart-shortcode-wrap .woocommerce {
    display: grid !important;
    grid-template-columns: minmax(0, 1.55fr) minmax(390px, 0.9fr) !important;
    align-items: start !important;
    gap: 28px !important;
}

body.woocommerce-cart.servaux-cart-has-items
.servaux-cart-shortcode-wrap .woocommerce > .woocommerce-notices-wrapper,
body.woocommerce-cart.servaux-cart-has-items
.servaux-cart-shortcode-wrap .woocommerce > .servaux-free-shipping-box {
    grid-column: 1 / -1 !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap form.woocommerce-cart-form {
    grid-column: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 18px !important;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.06) !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .cart-collaterals {
    grid-column: 2 !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
}


/* ==========================================================
   6. TABELA DO CARRINHO
   ========================================================== */

body.woocommerce-cart .servaux-cart-shortcode-wrap table.cart,
body.woocommerce-cart .servaux-cart-shortcode-wrap table.shop_table {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    background: #ffffff !important;
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    box-shadow: none !important;
    table-layout: auto !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap table.cart thead th {
    padding: 20px 16px !important;
    color: #111111 !important;
    background: #ffffff !important;
    border: 0 !important;
    border-bottom: 1px solid #edf2f7 !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap table.cart td {
    padding: 22px 16px !important;
    color: #1f2937 !important;
    background: #ffffff !important;
    border: 0 !important;
    border-bottom: 1px solid #edf2f7 !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    vertical-align: middle !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap table.cart .product-remove {
    width: 48px !important;
    text-align: center !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap table.cart .product-thumbnail {
    width: 86px !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap table.cart .product-name {
    width: auto !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap table.cart .product-price,
body.woocommerce-cart .servaux-cart-shortcode-wrap table.cart .product-quantity,
body.woocommerce-cart .servaux-cart-shortcode-wrap table.cart .product-subtotal {
    width: 130px !important;
    text-align: center !important;
    white-space: nowrap !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .product-thumbnail img {
    width: 62px !important;
    height: 62px !important;
    padding: 4px !important;
    object-fit: contain !important;
    background: #ffffff !important;
    border-radius: 14px !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .product-name a {
    color: #0099ff !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    text-decoration: none !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .product-name a:hover {
    color: #007ed6 !important;
    text-decoration: underline !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap td.product-price,
body.woocommerce-cart .servaux-cart-shortcode-wrap td.product-subtotal,
body.woocommerce-cart .servaux-cart-shortcode-wrap td.product-price *,
body.woocommerce-cart .servaux-cart-shortcode-wrap td.product-subtotal * {
    color: #16a34a !important;
    font-size: 17px !important;
    font-weight: 900 !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .quantity input.qty {
    width: 76px !important;
    height: 44px !important;
    padding: 0 8px !important;
    color: #111111 !important;
    background: #ffffff !important;
    border: 1px solid #cfd8e3 !important;
    border-radius: 12px !important;
    box-shadow: none !important;
    outline: none !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    text-align: center !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .quantity input.qty:focus {
    border-color: #0099ff !important;
    box-shadow: 0 0 0 3px rgba(0, 153, 255, 0.12) !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .product-remove a {
    width: 30px !important;
    height: 30px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #ef4444 !important;
    background: #fff1f2 !important;
    border-radius: 999px !important;
    font-size: 18px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    transition: all 0.2s ease !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .product-remove a:hover {
    color: #ffffff !important;
    background: #ef4444 !important;
    transform: scale(1.05) !important;
}


/* ==========================================================
   7. CUPOM E ATUALIZAR CARRINHO
   ========================================================== */

body.woocommerce-cart .servaux-cart-shortcode-wrap .actions {
    padding: 20px 22px !important;
    background: #ffffff !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .coupon {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 230px !important;
    align-items: center !important;
    gap: 16px !important;
    width: calc(100% - 190px) !important;
    max-width: 100% !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .coupon input.input-text,
body.woocommerce-cart .servaux-cart-shortcode-wrap input[name="coupon_code"] {
    width: 100% !important;
    height: 50px !important;
    padding: 0 16px !important;
    color: #111111 !important;
    background: #ffffff !important;
    border: 1px solid #d7dce5 !important;
    border-radius: 12px !important;
    box-shadow: none !important;
    outline: none !important;
    font-size: 15px !important;
    font-weight: 500 !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .coupon button.button,
body.woocommerce-cart .servaux-cart-shortcode-wrap button[name="apply_coupon"] {
    width: 100% !important;
    min-height: 50px !important;
    padding: 12px 22px !important;
    background: #0099ff !important;
    color: #ffffff !important;
    border: 1px solid #0099ff !important;
    border-radius: 14px !important;
    box-shadow: none !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    transition: all 0.2s ease !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .coupon button.button:hover,
body.woocommerce-cart .servaux-cart-shortcode-wrap button[name="apply_coupon"]:hover {
    background: #007ed6 !important;
    border-color: #007ed6 !important;
    color: #ffffff !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap button[name="update_cart"] {
    min-height: 50px !important;
    padding: 12px 20px !important;
    float: right !important;
    background: #f8fbff !important;
    color: #0099ff !important;
    border: 1px solid #b7e2ff !important;
    border-radius: 14px !important;
    box-shadow: none !important;
    font-size: 14px !important;
    font-weight: 900 !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap button[name="update_cart"]:hover:not(:disabled) {
    background: #0099ff !important;
    color: #ffffff !important;
    border-color: #0099ff !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap button[name="update_cart"]:disabled {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
}


/* ==========================================================
   8. TOTAIS DO CARRINHO
   ========================================================== */

body.woocommerce-cart .servaux-cart-shortcode-wrap .cart_totals {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 30px 32px !important;
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 18px !important;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.06) !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .cart_totals h2 {
    margin: 0 0 24px !important;
    color: #111111 !important;
    font-size: 26px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .cart_totals table.shop_table {
    width: 100% !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .cart_totals th,
body.woocommerce-cart .servaux-cart-shortcode-wrap .cart_totals td {
    padding: 15px 0 !important;
    color: #374151 !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid #edf2f7 !important;
    font-size: 15px !important;
    line-height: 1.45 !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .cart_totals th {
    text-align: left !important;
    font-weight: 800 !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .cart_totals td {
    text-align: right !important;
    font-weight: 800 !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .cart-subtotal td,
body.woocommerce-cart .servaux-cart-shortcode-wrap .cart-subtotal td *,
body.woocommerce-cart .servaux-cart-shortcode-wrap .order-total td,
body.woocommerce-cart .servaux-cart-shortcode-wrap .order-total td *,
body.woocommerce-cart .servaux-cart-shortcode-wrap .order-total strong {
    color: #16a34a !important;
    font-weight: 900 !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .cart-subtotal td,
body.woocommerce-cart .servaux-cart-shortcode-wrap .cart-subtotal td * {
    font-size: 18px !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .order-total td,
body.woocommerce-cart .servaux-cart-shortcode-wrap .order-total td *,
body.woocommerce-cart .servaux-cart-shortcode-wrap .order-total strong {
    font-size: 23px !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .shipping td {
    text-align: left !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .shipping ul {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .shipping li {
    margin: 0 0 10px !important;
    color: #374151 !important;
    font-size: 15px !important;
    font-weight: 600 !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .shipping li:has(input[type="radio"]:checked),
body.woocommerce-cart .servaux-cart-shortcode-wrap .shipping li:has(input[type="radio"]:checked) label {
    color: #16a34a !important;
    font-weight: 900 !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .woocommerce-shipping-destination {
    margin-top: 10px !important;
    color: #374151 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .shipping-calculator-button {
    color: #0099ff !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
}


/* ==========================================================
   9. BOTÃO FINALIZAR COMPRA
   ========================================================== */

body.woocommerce-cart .servaux-cart-shortcode-wrap .wc-proceed-to-checkout {
    padding: 24px 0 0 !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .checkout-button,
body.woocommerce-cart .servaux-cart-shortcode-wrap .checkout-button.button,
body.woocommerce-cart .servaux-cart-shortcode-wrap .checkout-button.button.alt {
    width: 100% !important;
    min-height: 58px !important;
    padding: 17px 24px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #ffffff !important;
    background: linear-gradient(135deg, #16a34a 0%, #22c55e 100%) !important;
    border: 0 !important;
    border-radius: 14px !important;
    box-shadow: 0 14px 28px rgba(34, 197, 94, 0.24) !important;
    font-size: 17px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    text-align: center !important;
    text-decoration: none !important;
}

body.woocommerce-cart .servaux-cart-shortcode-wrap .checkout-button:hover {
    color: #ffffff !important;
    background: linear-gradient(135deg, #15803d 0%, #16a34a 100%) !important;
    transform: translateY(-1px) !important;
}


/* ==========================================================
   10. CARRINHO VAZIO
   ========================================================== */

body.woocommerce-cart.servaux-cart-empty
.servaux-cart-shortcode-wrap .woocommerce,
body.woocommerce-cart .servaux-cart-empty-root {
    display: block !important;
}

.servaux-empty-cart {
    width: 100% !important;
    max-width: 920px !important;
    margin: 10px auto 70px !important;
    padding: 0 20px !important;
}

.servaux-empty-cart-card {
    width: 100% !important;
    padding: 48px 42px 42px !important;
    box-sizing: border-box !important;
    text-align: center !important;
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 28px !important;
    box-shadow: 0 22px 60px rgba(15, 23, 42, 0.10) !important;
}

.servaux-empty-cart-icon {
    width: 82px !important;
    height: 82px !important;
    margin: 0 auto 22px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: linear-gradient(135deg, #eaf7ff 0%, #f2fff9 100%) !important;
    border: 1px solid #b7e2ff !important;
    border-radius: 999px !important;
    font-size: 40px !important;
    line-height: 1 !important;
}

.servaux-empty-cart-title {
    margin: 0 0 12px !important;
    color: #111111 !important;
    font-size: 36px !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
}

.servaux-empty-cart-text {
    max-width: 540px !important;
    margin: 0 auto 28px !important;
    color: #4b5563 !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 1.6 !important;
}

.servaux-empty-cart-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 14px !important;
    flex-wrap: wrap !important;
    margin-bottom: 34px !important;
}

.servaux-empty-cart-button {
    min-width: 160px !important;
    min-height: 48px !important;
    padding: 13px 24px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 14px !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
}

.servaux-empty-cart-button-primary {
    min-width: 190px !important;
    color: #ffffff !important;
    background: #0099ff !important;
    border: 1px solid #0099ff !important;
    box-shadow: 0 10px 22px rgba(0, 153, 255, 0.18) !important;
}

.servaux-empty-cart-button-primary:hover {
    color: #ffffff !important;
    background: #007ed6 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 12px 26px rgba(0, 126, 214, 0.22) !important;
}



.servaux-empty-cart-benefits {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
    padding-top: 24px !important;
    border-top: 1px solid #edf2f7 !important;
}

.servaux-empty-cart-benefit {
    min-height: 58px !important;
    padding: 12px 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    color: #111111 !important;
    background: #f8fbff !important;
    border: 1px solid #edf2f7 !important;
    border-radius: 16px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
}

.servaux-empty-cart-benefit span {
    font-size: 18px !important;
    line-height: 1 !important;
}

/* Fallback: nunca deixa o carrinho padrão vazio invisível. */
body.woocommerce-cart .cart-empty {
    display: block !important;
    max-width: 720px !important;
    margin: 20px auto !important;
    padding: 24px !important;
    color: #374151 !important;
    text-align: center !important;
    background: #f8fbff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 18px !important;
}

body.woocommerce-cart .return-to-shop {
    display: block !important;
    text-align: center !important;
}

body.woocommerce-cart .return-to-shop .button {
    color: #ffffff !important;
    background: #0099ff !important;
    border-radius: 14px !important;
}


/* ==========================================================
   11. EVITA ANCORAGEM AUTOMÁTICA
   ========================================================== */

body.woocommerce-cart .woocommerce,
body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart-collaterals,
body.woocommerce-cart .cart_totals,
body.woocommerce-cart .woocommerce-notices-wrapper,
body.woocommerce-cart .servaux-free-shipping-box {
    overflow-anchor: none !important;
}

html,
body {
    scroll-behavior: auto !important;
}


/* ==========================================================
   12. RESPONSIVO
   ========================================================== */

@media (max-width: 1100px) {
    body.woocommerce-cart.servaux-cart-has-items
    .servaux-cart-shortcode-wrap .woocommerce {
        grid-template-columns: minmax(0, 1.35fr) minmax(340px, 0.85fr) !important;
        gap: 22px !important;
    }

    body.woocommerce-cart .servaux-cart-shortcode-wrap {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    body.woocommerce-cart .servaux-cart-shortcode-wrap .coupon {
        width: 100% !important;
        grid-template-columns: minmax(0, 1fr) 210px !important;
    }

    body.woocommerce-cart .servaux-cart-shortcode-wrap button[name="update_cart"] {
        width: 100% !important;
        margin-top: 12px !important;
        float: none !important;
    }
}

@media (max-width: 900px) {
    body.woocommerce-cart.servaux-cart-has-items
    .servaux-cart-shortcode-wrap .woocommerce {
        display: block !important;
        max-width: 760px !important;
    }

    body.woocommerce-cart .servaux-cart-shortcode-wrap form.woocommerce-cart-form {
        margin-bottom: 24px !important;
    }
}

@media (max-width: 767px) {
    .servaux-free-shipping-box {
        padding: 14px !important;
        border-radius: 14px !important;
    }

    .servaux-free-shipping-text {
        font-size: 14px !important;
    }

    body.woocommerce-cart .servaux-cart-shortcode-wrap {
        padding: 0 14px 50px !important;
    }

    body.woocommerce-cart .servaux-cart-shortcode-wrap table.cart thead {
        display: none !important;
    }

    body.woocommerce-cart .servaux-cart-shortcode-wrap table.cart,
    body.woocommerce-cart .servaux-cart-shortcode-wrap table.cart tbody,
    body.woocommerce-cart .servaux-cart-shortcode-wrap table.cart tr,
    body.woocommerce-cart .servaux-cart-shortcode-wrap table.cart td {
        display: block !important;
        width: 100% !important;
    }

    body.woocommerce-cart .servaux-cart-shortcode-wrap table.cart tr.cart_item {
        padding: 18px !important;
        border-bottom: 1px solid #edf2f7 !important;
    }

    body.woocommerce-cart .servaux-cart-shortcode-wrap table.cart td {
        padding: 8px 0 !important;
        border: 0 !important;
        text-align: center !important;
    }

    body.woocommerce-cart .servaux-cart-shortcode-wrap .product-remove {
        text-align: right !important;
    }

    body.woocommerce-cart .servaux-cart-shortcode-wrap .product-thumbnail img {
        margin: 0 auto !important;
    }

    body.woocommerce-cart .servaux-cart-shortcode-wrap .coupon {
        width: 100% !important;
        grid-template-columns: 1fr !important;
    }

    body.woocommerce-cart .servaux-cart-shortcode-wrap .cart_totals {
        padding: 24px 20px !important;
        border-radius: 16px !important;
    }

    .servaux-empty-cart {
        margin-bottom: 50px !important;
        padding: 0 !important;
    }

    .servaux-empty-cart-card {
        padding: 36px 20px 30px !important;
        border-radius: 22px !important;
    }

    .servaux-empty-cart-icon {
        width: 70px !important;
        height: 70px !important;
        font-size: 34px !important;
    }

    .servaux-empty-cart-title {
        font-size: 28px !important;
    }

    .servaux-empty-cart-text {
        font-size: 14px !important;
    }

    .servaux-empty-cart-actions {
        flex-direction: column !important;
        gap: 10px !important;
    }

    .servaux-empty-cart-button {
        width: 100% !important;
        min-width: 0 !important;
    }

    .servaux-empty-cart-benefits {
        grid-template-columns: 1fr !important;
    }
}

/* ==========================================================
   SERVAUX - TRANSIÇÃO ENTRE CARRINHO CHEIO E VAZIO
   ========================================================== */

body.woocommerce-cart
.servaux-cart-shortcode-wrap .woocommerce {
    transition:
        opacity 0.24s ease,
        transform 0.24s ease !important;
}

body.woocommerce-cart
.servaux-cart-shortcode-wrap .woocommerce.servaux-cart-content-leaving {
    opacity: 0 !important;
    transform: translateY(-8px) scale(0.995) !important;
    pointer-events: none !important;
}

/*
   Na página de destino, a cortina crítica é removida enquanto
   o card vazio entra suavemente.
*/
html.servaux-cart-empty-transition-in::after {
    transition: opacity 0.38s ease !important;
}

html.servaux-cart-empty-transition-in.servaux-cart-empty-transition-reveal::after {
    opacity: 0 !important;
    pointer-events: none !important;
}

html.servaux-cart-empty-transition-in
.servaux-cart-shortcode-wrap {
    opacity: 0 !important;
    transform: translateY(12px) scale(0.99) !important;
}

html.servaux-cart-empty-transition-in.servaux-cart-empty-transition-reveal
.servaux-cart-shortcode-wrap {
    opacity: 1 !important;
    transform: translateY(0) scale(1) !important;
    transition:
        opacity 0.38s ease 0.06s,
        transform 0.38s cubic-bezier(0.22, 1, 0.36, 1) 0.06s !important;
}

/* Mantém altura suficiente para o rodapé não subir durante a troca. */
body.woocommerce-cart.servaux-cart-empty
.servaux-cart-shortcode-wrap {
    min-height: 500px !important;
}

@media (prefers-reduced-motion: reduce) {
    body.woocommerce-cart
    .servaux-cart-shortcode-wrap .woocommerce,
    html.servaux-cart-empty-transition-in::after,
    html.servaux-cart-empty-transition-in
    .servaux-cart-shortcode-wrap,
    html.servaux-cart-empty-transition-in.servaux-cart-empty-transition-reveal
    .servaux-cart-shortcode-wrap {
        transition: none !important;
        transform: none !important;
    }
}

/* ==========================================================
   SERVAUX - ATUALIZAÇÃO AUTOMÁTICA DA QUANTIDADE
   ========================================================== */

/*
   O botão continua no HTML para ser usado como submitter pelo
   WooCommerce, mas sai completamente do fluxo visual.
*/
body.woocommerce-cart
form.woocommerce-cart-form button[name="update_cart"],
body.woocommerce-cart
form.woocommerce-cart-form input[name="update_cart"] {
    position: absolute !important;
    left: -10000px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    min-width: 1px !important;
    min-height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* O cupom passa a ocupar toda a largura liberada pelo botão. */
body.woocommerce-cart
.servaux-cart-shortcode-wrap form.woocommerce-cart-form .coupon {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    grid-template-columns: minmax(0, 1fr) 230px !important;
}

/* Feedback discreto enquanto subtotal, frete e total são atualizados. */
body.woocommerce-cart.servaux-cart-auto-updating
.servaux-cart-shortcode-wrap form.woocommerce-cart-form {
    cursor: progress !important;
}

body.woocommerce-cart.servaux-cart-auto-updating
.servaux-cart-shortcode-wrap .cart_item,
body.woocommerce-cart.servaux-cart-auto-updating
.servaux-cart-shortcode-wrap .cart-collaterals {
    opacity: 0.72 !important;
    transition: opacity 0.18s ease !important;
    pointer-events: none !important;
}

@media (max-width: 767px) {
    body.woocommerce-cart
    .servaux-cart-shortcode-wrap form.woocommerce-cart-form .coupon {
        grid-template-columns: 1fr !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.woocommerce-cart.servaux-cart-auto-updating
    .servaux-cart-shortcode-wrap .cart_item,
    body.woocommerce-cart.servaux-cart-auto-updating
    .servaux-cart-shortcode-wrap .cart-collaterals {
        transition: none !important;
    }
}
/* ==========================================================
   SERVAUX - ÍCONE DO CARRINHO VISÍVEL, MAS SEM AÇÃO NO CHECKOUT
   Adicionar no final de: 05-checkout.css
   ========================================================== */

/*
   Mantém o widget visível no header.
*/
body.woocommerce-checkout:not(.woocommerce-order-received)
.elementor-location-header
.elementor-widget-woocommerce-menu-cart,
body.woocommerce-checkout:not(.woocommerce-order-received)
[data-elementor-type="header"]
.elementor-widget-woocommerce-menu-cart,
body.woocommerce-checkout:not(.woocommerce-order-received)
header.site-header
.elementor-widget-woocommerce-menu-cart {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/*
   Bloqueia apenas a interação, sem remover o ícone.
*/
body.woocommerce-checkout:not(.woocommerce-order-received)
.elementor-widget-woocommerce-menu-cart
.elementor-menu-cart__toggle_button,
body.woocommerce-checkout:not(.woocommerce-order-received)
.elementor-widget-woocommerce-menu-cart
.elementor-menu-cart__toggle,
body.woocommerce-checkout:not(.woocommerce-order-received)
.elementor-widget-woocommerce-menu-cart
.elementor-menu-cart__toggle_wrapper,
body.woocommerce-checkout:not(.woocommerce-order-received)
.elementor-widget-woocommerce-menu-cart a,
body.woocommerce-checkout:not(.woocommerce-order-received)
.elementor-widget-woocommerce-menu-cart button {
    pointer-events: none !important;
    cursor: default !important;
}

/*
   Mantém o carrinho lateral fechado mesmo que o Elementor tente
   reabri-lo por JavaScript após uma atualização AJAX do checkout.
*/
body.woocommerce-checkout:not(.woocommerce-order-received)
.elementor-menu-cart__container,
body.servaux-checkout-side-cart-disabled
.elementor-menu-cart__container {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transform: translateX(100%) !important;
}

/*
   Opcional: leve redução visual para indicar que o ícone está inativo.
   Remova este bloco caso prefira o ícone com aparência 100% normal.
*/
body.woocommerce-checkout:not(.woocommerce-order-received)
.elementor-widget-woocommerce-menu-cart {
    opacity: 0.72 !important;
}