/*
 * LESHI MAX — Carrinho (CSS do front-end).
 * Vem depois de lshmax-checkout.css e reaproveita as variáveis --lco-* (cores, fonte, cantos, espaços) e os
 * componentes do checkout (cabeçalho, rodapé, indicador de etapas, botões, campos). Aqui ficam só as regras do
 * carrinho: grade, quadro de produtos, resumo, frete, venda cruzada e barra do celular.
 * Tudo é escopado em .lshmax-ca e dirigido por atributos data-* na raiz. O mesmo arquivo alimenta a prévia do painel.
 */

/* ============ Raiz ============ */
.lshmax-ca { --lca-vc-cols: 4; --lca-gap: var(--lco-gap, 18px); }
/* Dentro do tema ou como shortcode: sem o fundo/altura de página inteira do checkout. */
.lshmax-ca--tema,
.lshmax-ca--peca { display: block; min-height: 0; background: transparent; }
.lshmax-ca--tema .lshmax-ca-conteudo,
.lshmax-ca--peca .lshmax-ca-conteudo,
.lshmax-ca--tema .lshmax-ca-etapas,
.lshmax-ca--tema .lshmax-ca-topo { max-width: var(--lco-largura); margin-left: auto; margin-right: auto; }
.lshmax-ca .woocommerce-notices-wrapper { margin-bottom: var(--lca-gap); }
.lshmax-ca .woocommerce-message,
.lshmax-ca .woocommerce-info,
.lshmax-ca .woocommerce-error {
    margin: 0 0 var(--lca-gap); padding: 12px 16px; list-style: none;
    background: var(--lco-card); color: var(--lco-texto); border: 1px solid var(--lco-card-borda); border-left-width: 4px; border-radius: var(--lco-raio-card);
}
.lshmax-ca .woocommerce-error { border-left-color: var(--lco-erro); }
.lshmax-ca .woocommerce-message { border-left-color: var(--lco-destaque); }
.lshmax-ca .woocommerce-message::before, .lshmax-ca .woocommerce-info::before, .lshmax-ca .woocommerce-error::before { display: none; }
.lshmax-ca .woocommerce-message .button, .lshmax-ca .woocommerce-info .button { float: none; margin: 0 0 0 12px; }
.lshmax-ca .woocommerce { margin: 0; padding: 0; }

/* Indicador das etapas da compra (.lshmax-co-ec vem do CSS do checkout) */
.lshmax-ca .lshmax-co-ec { margin-bottom: calc(var(--lca-gap) + 6px); }
.lshmax-ca--tema .lshmax-co-ec { max-width: var(--lco-largura); }

/* Título da página */
.lshmax-ca-topo { display: flex; align-items: baseline; gap: 12px; margin: 0 0 var(--lca-gap); }
.lshmax-ca[data-titulo="no"] .lshmax-ca-topo { display: none; }
.lshmax-ca-h1 { font-size: 1.6em; }
.lshmax-ca-contagem { color: var(--lco-texto-suave); font-size: .9em; font-weight: 600; white-space: nowrap; }

/* ============ Grade ============ */
.lshmax-ca-grid { display: grid; gap: var(--lca-gap); align-items: start; grid-template-columns: minmax(0, 1fr); }
.lshmax-ca-col-itens { display: flex; flex-direction: column; gap: var(--lca-gap); min-width: 0; }
.lshmax-ca-col-resumo { min-width: 0; }
.lshmax-ca[data-largura="desktop"][data-layout="colunas"] .lshmax-ca-grid { grid-template-columns: minmax(0, 1fr) minmax(320px, 390px); }
.lshmax-ca[data-largura="tablet"][data-layout="colunas"] .lshmax-ca-grid { grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); }
.lshmax-ca[data-largura="desktop"][data-fixo="yes"] .lshmax-ca-col-resumo,
.lshmax-ca[data-largura="tablet"][data-fixo="yes"] .lshmax-ca-col-resumo { position: sticky; top: 16px; }
.lshmax-ca[data-layout="pilha"] .lshmax-ca-grid { max-width: 760px; margin: 0 auto; }
.lshmax-ca--previa .lshmax-ca-col-resumo { position: static !important; }

/* Cartões */
.lshmax-ca-card {
    background: var(--lco-card); border: var(--lco-borda-card) solid var(--lco-card-borda);
    border-radius: var(--lco-raio-card); box-shadow: var(--lco-sombra); padding: var(--lco-pad);
}
.lshmax-ca-card-cab { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0 0 6px; }
.lshmax-ca-titulo { font-size: 1.1em; }

/* ============ Quadro de produtos ============ */
.lshmax-ca .shop_table.lshmax-ca-tabela,
.lshmax-ca .lshmax-ca-tabela tbody { display: block; width: 100%; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.lshmax-ca .lshmax-ca-tabela thead { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; }
.lshmax-ca .lshmax-ca-tabela td,
.lshmax-ca .lshmax-ca-tabela th { display: block; padding: 0; border: 0; background: transparent; text-align: left; }
/* O CSS responsivo do WooCommerce acrescenta o nome da coluna antes de cada célula: aqui não. */
.lshmax-ca .lshmax-ca-tabela td::before { display: none !important; content: none !important; }

.lshmax-ca .lshmax-ca-tabela tr.cart_item {
    display: grid; align-items: start; column-gap: 16px; row-gap: 4px;
    grid-template-columns: var(--lco-mini) minmax(0, 1fr) auto auto;
    grid-template-areas: "thumb name qty total" "thumb price qty total" "thumb rem qty total";
    padding: 18px 0; border-top: 1px solid var(--lco-card-borda);
}
.lshmax-ca .lshmax-ca-tabela tr.cart_item:first-of-type { border-top: 0; }
.lshmax-ca[data-miniaturas="no"] .lshmax-ca-tabela tr.cart_item {
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-areas: "name qty total" "price qty total" "rem qty total";
}
.lshmax-ca[data-miniaturas="no"] .lshmax-ca-tabela .product-thumbnail { display: none; }

.lshmax-ca .lshmax-ca-tabela .product-thumbnail { grid-area: thumb; width: var(--lco-mini); }
.lshmax-ca .lshmax-ca-tabela .product-thumbnail a { display: block; }
.lshmax-ca .lshmax-ca-tabela .product-thumbnail img,
.lshmax-ca-previa-img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; background: #fff; border: 1px solid var(--lco-card-borda); border-radius: var(--lco-raio-campo); }
.lshmax-ca .lshmax-ca-tabela .product-thumbnail .lshmax-co-adm-img-exemplo { aspect-ratio: 1; min-height: 0; border-radius: var(--lco-raio-campo); }

.lshmax-ca .lshmax-ca-tabela .product-name { grid-area: name; min-width: 0; font-weight: 600; line-height: 1.35; }
.lshmax-ca .lshmax-ca-tabela .product-name > a:first-child {
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: var(--lco-nome-linhas, 2); line-clamp: var(--lco-nome-linhas, 2);
    overflow: hidden; overflow-wrap: anywhere; color: inherit; text-decoration: none;
}
.lshmax-ca .lshmax-ca-tabela .product-name > a:first-child:hover { color: var(--lco-link); }
.lshmax-ca .lshmax-ca-tabela dl.variation { margin: 4px 0 0; font-size: .82em; font-weight: 400; color: var(--lco-texto-suave); }
.lshmax-ca .lshmax-ca-tabela dl.variation dt, .lshmax-ca .lshmax-ca-tabela dl.variation dd { display: inline; margin: 0; }
.lshmax-ca .lshmax-ca-tabela dl.variation p { display: inline; margin: 0; }
.lshmax-ca .lshmax-ca-tabela .backorder_notification { margin: 4px 0 0; font-size: .82em; font-weight: 400; color: var(--lco-texto-suave); }
.lshmax-ca-sku { display: none; margin-top: 2px; font-size: .8em; font-weight: 400; color: var(--lco-texto-suave); }
.lshmax-ca[data-sku="yes"] .lshmax-ca-sku { display: block; }

.lshmax-ca .lshmax-ca-tabela .product-price { grid-area: price; color: var(--lco-texto-suave); font-size: .88em; }
.lshmax-ca[data-preco-unit="no"] .lshmax-ca-tabela .product-price { display: none; }
.lshmax-ca .lshmax-ca-tabela .product-quantity { grid-area: qty; align-self: center; }
.lshmax-ca .lshmax-ca-tabela .product-subtotal { grid-area: total; align-self: center; min-width: 96px; font-weight: 700; text-align: right; white-space: nowrap; }

/* Remover: ícone e texto (ou só o ícone). Zera o "×" e os estilos do tema. */
.lshmax-ca .lshmax-ca-tabela .product-remove { grid-area: rem; }
.lshmax-ca a.remove,
.lshmax-ca a.lshmax-ca-remover {
    display: inline-flex; align-items: center; gap: 6px; width: auto; height: auto; margin: 0 0 0 -6px; padding: 4px 6px;
    background: none; border: 0; border-radius: var(--lco-raio-campo); box-shadow: none;
    color: var(--lco-texto-suave) !important; font-size: .85em; font-weight: 600; line-height: 1.2; text-decoration: none; text-indent: 0; cursor: pointer;
}
.lshmax-ca a.remove::before, .lshmax-ca a.remove::after { content: none !important; display: none !important; }
.lshmax-ca a.remove:hover, .lshmax-ca a.remove:focus-visible { color: var(--lco-erro) !important; background: color-mix(in srgb, var(--lco-erro) 9%, transparent); }
.lshmax-ca[data-remover="icone"] .lshmax-ca-remover-txt { display: none; }

/* Quantidade: - 1 + (com ou sem os botões do tema) */
.lshmax-ca .quantity {
    display: inline-flex; align-items: center; margin: 0; height: 42px; overflow: hidden;
    background: var(--lco-campo-fundo); border: 1px solid var(--lco-campo-borda); border-radius: var(--lco-raio-campo);
}
.lshmax-ca .quantity input.qty,
.lshmax-ca .quantity input[type="number"] {
    width: 46px; height: 40px; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none;
    color: var(--lco-texto); font: inherit; font-weight: 600; text-align: center; -moz-appearance: textfield; appearance: textfield;
}
.lshmax-ca .quantity input[type="number"]::-webkit-outer-spin-button,
.lshmax-ca .quantity input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.lshmax-ca .quantity .minus,
.lshmax-ca .quantity .plus {
    position: static; width: 38px; height: 40px; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none;
    color: var(--lco-texto); font-size: 1.15em; font-weight: 600; line-height: 1; cursor: pointer;
}
.lshmax-ca .quantity .minus:hover, .lshmax-ca .quantity .plus:hover { background: color-mix(in srgb, var(--lco-campo-borda) 35%, transparent); }
.lshmax-ca .quantity:focus-within { border-color: var(--lco-campo-foco); box-shadow: 0 0 0 3px color-mix(in srgb, var(--lco-campo-foco) 18%, transparent); }

/* Linha de ações: cupom e atualizar */
.lshmax-ca .lshmax-ca-tabela tr.lshmax-ca-linha-acoes { display: block; padding: 14px 0 0; border-top: 1px solid var(--lco-card-borda); }
.lshmax-ca .lshmax-ca-tabela td.actions { padding: 0; }
.lshmax-ca .lshmax-ca-acoes { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px; }
.lshmax-ca[data-cupom="oculto"] .lshmax-ca-cupom { display: none; }
.lshmax-ca-cupom { flex: 1 1 320px; min-width: 0; }
.lshmax-ca-cupom-abrir {
    display: inline-flex; align-items: center; gap: 6px; padding: 6px 0; background: none; border: 0; cursor: pointer;
    color: var(--lco-link); font: inherit; font-weight: 600; text-align: left;
}
.lshmax-ca-cupom-abrir .lshmax-co-seta { transition: transform .2s ease; }
.lshmax-ca-cupom[data-aberto="1"] .lshmax-ca-cupom-abrir .lshmax-co-seta { transform: rotate(180deg); }
.lshmax-ca-cupom-campo { display: none; align-items: stretch; gap: 8px; margin-top: 8px; max-width: 440px; }
.lshmax-ca-cupom[data-aberto="1"] .lshmax-ca-cupom-campo { display: flex; }
.lshmax-ca[data-cupom="aberto"] .lshmax-ca-cupom-abrir { display: none; }
.lshmax-ca[data-cupom="aberto"] .lshmax-ca-cupom-campo { display: flex; margin-top: 0; }
.lshmax-ca-cupom-campo input.input-text { flex: 1 1 auto; width: auto; min-width: 0; }
.lshmax-ca .button,
.lshmax-ca a.button,
.lshmax-ca button.button {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin: 0; padding: 0 20px; min-height: var(--lco-campo-altura);
    background: transparent; color: var(--lco-primaria); border: 1px solid var(--lco-primaria); border-radius: var(--lco-raio-botao);
    font: inherit; font-weight: 700; line-height: 1.2; text-decoration: none; text-transform: none; letter-spacing: 0; cursor: pointer; box-shadow: none;
}
.lshmax-ca .button:hover { background: var(--lco-primaria); color: var(--lco-primaria-texto); border-color: var(--lco-primaria); }
.lshmax-ca .button.alt,
.lshmax-ca .checkout-button { background: var(--lco-primaria); color: var(--lco-primaria-texto); border-color: var(--lco-primaria); }
.lshmax-ca .button.alt:hover,
.lshmax-ca .checkout-button:hover { background: var(--lco-primaria-hover); border-color: var(--lco-primaria-hover); color: var(--lco-primaria-texto); }
.lshmax-ca .button[disabled], .lshmax-ca .button:disabled { opacity: .5; cursor: default; }
.lshmax-ca .button[disabled]:hover { background: transparent; color: var(--lco-primaria); }
/* "Atualizar carrinho": escondido quando o carrinho atualiza sozinho (o botão continua no DOM, o WooCommerce e o tema o usam). */
.lshmax-ca-atualizar { margin-left: auto; }
.lshmax-ca[data-js="1"][data-atualizar="yes"] .lshmax-ca-atualizar { display: none; }

/* ============ Resumo ============ */
.lshmax-ca .cart_totals { float: none; width: 100%; margin: 0; padding: 0; }
.lshmax-ca .cart_totals > h2 { margin: 0 0 14px; font-size: 1.1em; }
.lshmax-ca .cart_totals table.shop_table { display: block; width: 100%; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.lshmax-ca .cart_totals table.shop_table tbody { display: block; }
.lshmax-ca .cart_totals table.shop_table tr { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding: 9px 0; border: 0; }
.lshmax-ca .cart_totals table.shop_table th,
.lshmax-ca .cart_totals table.shop_table td { display: block; padding: 0; border: 0; background: transparent; color: var(--lco-texto-suave); font-weight: 500; }
.lshmax-ca .cart_totals table.shop_table td { text-align: right; color: var(--lco-texto); }
.lshmax-ca .cart_totals table.shop_table td::before { display: none !important; content: none !important; }
.lshmax-ca .cart_totals tr.cart-discount td { color: var(--lco-destaque); }
.lshmax-ca .cart_totals tr.cart-discount td a { font-size: .85em; }
.lshmax-ca .cart_totals tr.order-total { margin-top: 6px; padding-top: 14px; border-top: 1px solid var(--lco-card-borda); }
.lshmax-ca .cart_totals tr.order-total th { color: var(--lco-texto); font-size: 1.05em; font-weight: 700; }
.lshmax-ca .cart_totals tr.order-total td { color: var(--lco-destaque); font-size: 1.35em; font-weight: 800; }
.lshmax-ca .cart_totals tr.order-total td small { display: block; color: var(--lco-texto-suave); font-size: .6em; font-weight: 500; }
.lshmax-ca .cart_totals .amount,
.lshmax-ca .cart_totals .woocommerce-Price-amount { color: inherit; }

/* Frete: cada opção vira um cartão clicável (ou lista simples) */
.lshmax-ca .cart_totals table.shop_table tr.woocommerce-shipping-totals,
.lshmax-ca .cart_totals table.shop_table tr.shipping { display: block; }
.lshmax-ca .cart_totals table.shop_table tr.shipping th { display: block; margin-bottom: 8px; color: var(--lco-texto); font-weight: 700; }
.lshmax-ca .cart_totals table.shop_table tr.shipping td { display: block; text-align: left; }
.lshmax-ca #shipping_method { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.lshmax-ca #shipping_method li {
    position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: 12px; margin: 0; padding: 0;
    text-indent: 0; list-style: none; background: var(--lco-campo-fundo); border: 1px solid var(--lco-campo-borda); border-radius: var(--lco-raio-campo); cursor: pointer;
}
.lshmax-ca #shipping_method li::before, .lshmax-ca #shipping_method li::after { display: none; }
.lshmax-ca #shipping_method li:has(input:checked) { border-color: var(--lco-etapa-ativa); box-shadow: 0 0 0 1px var(--lco-etapa-ativa) inset; }
.lshmax-ca #shipping_method li input[type="radio"],
.lshmax-ca #shipping_method li input[type="hidden"] + label { margin: 0; }
.lshmax-ca #shipping_method li input.shipping_method { margin: 0 0 0 16px !important; }
.lshmax-ca #shipping_method li label { display: block; margin: 0; padding: 13px 14px 13px 0; color: var(--lco-texto); font-size: .95em; font-weight: 500; line-height: 1.45; cursor: pointer; }
.lshmax-ca #shipping_method li p { grid-column: 2; margin: -8px 0 0; padding: 0 14px 12px 0; color: var(--lco-texto-suave); font-size: .85em; }
.lshmax-ca #shipping_method li:has(> input[type="hidden"]) { grid-template-columns: minmax(0, 1fr); border-color: var(--lco-etapa-ativa); box-shadow: 0 0 0 1px var(--lco-etapa-ativa) inset; cursor: default; }
.lshmax-ca #shipping_method li:has(> input[type="hidden"]) label { padding-left: 16px; }
.lshmax-ca[data-frete="lista"] #shipping_method { gap: 6px; }
.lshmax-ca[data-frete="lista"] #shipping_method li { background: transparent; border: 0; box-shadow: none !important; border-radius: 0; }
.lshmax-ca[data-frete="lista"] #shipping_method li input.shipping_method { margin-left: 0 !important; }
.lshmax-ca .woocommerce-shipping-destination { margin: 10px 0 0; color: var(--lco-texto-suave); font-size: .85em; }
.lshmax-ca .woocommerce-shipping-destination strong { color: var(--lco-texto); }
.lshmax-ca[data-calc="no"] .woocommerce-shipping-calculator,
.lshmax-ca[data-calc="no"] .lshmax-ca-calc { display: none; }
.lshmax-ca .woocommerce-shipping-calculator { margin: 8px 0 0; }
.lshmax-ca .shipping-calculator-button { color: var(--lco-link); font-size: .9em; font-weight: 600; cursor: pointer; }
.lshmax-ca .shipping-calculator-form { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; }
.lshmax-ca .shipping-calculator-form p { margin: 0; }
.lshmax-ca .shipping-calculator-form .form-row { margin: 0; }

/* Botão de finalizar, link de continuar, nota e selos */
.lshmax-ca .wc-proceed-to-checkout { display: block; margin: 18px 0 0; padding: 0; }
.lshmax-ca .wc-proceed-to-checkout .checkout-button {
    display: flex; width: 100%; min-height: var(--lco-botao-altura); margin: 0; padding: 0 24px; font-size: 1em; font-weight: 700; float: none;
}
.lshmax-ca[data-btn-largo="no"] .wc-proceed-to-checkout .checkout-button { width: auto; display: inline-flex; }
.lshmax-ca[data-btn-caixa="yes"] .wc-proceed-to-checkout .checkout-button { text-transform: uppercase; letter-spacing: .04em; }
.lshmax-ca .wc-proceed-to-checkout .wc-forward::after { display: none; }
.lshmax-ca-nota { margin: 12px 0 0; color: var(--lco-texto-suave); font-size: .85em; text-align: center; }
.lshmax-ca-nota:empty { display: none; }
.lshmax-ca-continuar { display: block; margin-top: 12px; color: var(--lco-link); font-size: .92em; font-weight: 600; text-align: center; text-decoration: underline; cursor: pointer; }
.lshmax-ca[data-continuar="no"] .lshmax-ca-continuar { display: none; }
.lshmax-ca-selos { display: none; flex-direction: column; gap: 8px; margin: 16px 0 0; padding: 14px 0 0; border-top: 1px solid var(--lco-card-borda); list-style: none; }
.lshmax-ca[data-selos="yes"] .lshmax-ca-selos { display: flex; }
.lshmax-ca-selos li { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--lco-texto-suave); font-size: .85em; font-weight: 600; }
.lshmax-ca-selos .lshmax-co-icone { color: var(--lco-destaque); }
.lshmax-ca .lshmax-ca-selos-solto { display: flex; }

/* ============ Venda cruzada ============ */
.lshmax-ca[data-vc="nao"] .lshmax-ca-vc { display: none; }
.lshmax-ca .cross-sells { float: none; width: 100%; margin: 0; padding: var(--lco-pad); background: var(--lco-card); border: var(--lco-borda-card) solid var(--lco-card-borda); border-radius: var(--lco-raio-card); box-shadow: var(--lco-sombra); }
.lshmax-ca .cross-sells > h2 { margin: 0 0 14px; font-size: 1.1em; }
.lshmax-ca-vc-grade { display: grid; gap: var(--lca-gap); grid-template-columns: repeat(var(--lca-vc-cols), minmax(0, 1fr)); }
.lshmax-ca[data-largura="tablet"] .lshmax-ca-vc-grade { grid-template-columns: repeat(min(var(--lca-vc-cols), 3), minmax(0, 1fr)); }
.lshmax-ca[data-largura="movel"] .lshmax-ca-vc-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lshmax-ca-vc-item { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; min-width: 0; text-align: left; }
.lshmax-ca-vc-img { display: block; }
.lshmax-ca-vc-img img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; background: #fff; border: 1px solid var(--lco-card-borda); border-radius: var(--lco-raio-campo); }
.lshmax-ca-vc-img .lshmax-co-adm-img-exemplo { aspect-ratio: 1; min-height: 0; border-radius: var(--lco-raio-campo); }
.lshmax-ca-vc-nome { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; color: var(--lco-texto); font-size: .92em; font-weight: 600; line-height: 1.3; text-decoration: none; }
.lshmax-ca-vc-nome:hover { color: var(--lco-link); }
.lshmax-ca-vc-preco { color: var(--lco-texto); font-size: .92em; font-weight: 700; }
.lshmax-ca-vc-preco del { color: var(--lco-texto-suave); font-weight: 400; }
.lshmax-ca-vc-preco ins { text-decoration: none; }
.lshmax-ca-vc-item .button { margin-top: auto; min-height: 38px; padding: 0 14px; font-size: .88em; }
.lshmax-ca-vc-item .added_to_cart { display: block; margin-top: 4px; color: var(--lco-link); font-size: .85em; font-weight: 600; }

/* ============ Carrinho vazio ============ */
.lshmax-ca .cart-empty, .lshmax-ca .wc-empty-cart-message { margin: 0; }
.lshmax-ca .wc-empty-cart-message .cart-empty,
.lshmax-ca p.cart-empty {
    margin: 0 auto var(--lca-gap); padding: 40px var(--lco-pad) 12px; text-align: center; background: var(--lco-card); color: var(--lco-texto);
    border: var(--lco-borda-card) solid var(--lco-card-borda); border-bottom: 0; border-radius: var(--lco-raio-card) var(--lco-raio-card) 0 0; font-size: 1.15em; font-weight: 700;
}
.lshmax-ca .return-to-shop { margin: -1px 0 0; padding: 4px var(--lco-pad) 40px; text-align: center; background: var(--lco-card); border: var(--lco-borda-card) solid var(--lco-card-borda); border-top: 0; border-radius: 0 0 var(--lco-raio-card) var(--lco-raio-card); }
.lshmax-ca .return-to-shop .button { background: var(--lco-primaria); color: var(--lco-primaria-texto); border-color: var(--lco-primaria); }
.lshmax-ca .return-to-shop .button:hover { background: var(--lco-primaria-hover); border-color: var(--lco-primaria-hover); }

/* ============ Barra fixa do celular ============ */
.lshmax-ca-barra-movel { display: none; }
.lshmax-ca .lshmax-ca-barra-movel[hidden] { display: none !important; }
.lshmax-ca[data-largura="movel"][data-barra="yes"] .lshmax-ca-barra-movel {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between; gap: 14px;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px)); background: var(--lco-card); border-top: 1px solid var(--lco-card-borda); box-shadow: 0 -4px 16px rgba(16, 24, 40, .08);
}
.lshmax-ca-barra-total { display: flex; flex-direction: column; line-height: 1.2; }
.lshmax-ca-barra-total small { color: var(--lco-texto-suave); font-size: .78em; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.lshmax-ca-barra-total strong { color: var(--lco-destaque); font-size: 1.15em; font-weight: 800; }
.lshmax-ca-barra-btn { flex: 0 0 auto; min-width: 150px; }
.lshmax-ca[data-largura="movel"][data-barra="yes"] .lshmax-ca-conteudo { padding-bottom: 76px; }
/* Na prévia do painel a barra não é fixa na tela: fica no fim do quadro. */
.lshmax-ca--previa[data-largura="movel"][data-barra="yes"] .lshmax-ca-barra-movel { position: static; margin-top: var(--lca-gap); border: var(--lco-borda-card) solid var(--lco-card-borda); border-radius: var(--lco-raio-card); box-shadow: none; }
.lshmax-ca--previa[data-largura="movel"][data-barra="yes"] .lshmax-ca-conteudo { padding-bottom: 0; }

/* ============ Celular ============ */
.lshmax-ca[data-largura="movel"] .lshmax-ca-h1 { font-size: 1.35em; }
.lshmax-ca[data-largura="movel"] .lshmax-ca-tabela tr.cart_item {
    grid-template-columns: var(--lco-mini) minmax(0, 1fr) auto;
    grid-template-areas: "thumb name total" "thumb price total" "qty qty rem";
    row-gap: 8px; column-gap: 12px;
}
.lshmax-ca[data-largura="movel"][data-miniaturas="no"] .lshmax-ca-tabela tr.cart_item {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "name total" "price total" "qty rem";
}
.lshmax-ca[data-largura="movel"] .lshmax-ca-tabela .product-subtotal { min-width: 0; }
.lshmax-ca[data-largura="movel"] .lshmax-ca-tabela .product-remove { justify-self: end; }
.lshmax-ca[data-largura="movel"] .lshmax-ca-acoes { flex-direction: column; align-items: stretch; }
.lshmax-ca[data-largura="movel"] .lshmax-ca-cupom-campo { max-width: none; }
.lshmax-ca[data-largura="movel"] .lshmax-ca-card { padding: 16px; }

.lshmax-ca .cart_totals table.shop_table tr.shipping th { text-align: left; }
.lshmax-ca[data-largura="movel"] .lshmax-ca-cupom { flex: 0 0 auto; }

/* ============ Dentro do tema: o CSS do tema (Woodmart) não pode repintar valores nem realinhar o cupom ============ */
.lshmax-ca .lshmax-ca-tabela .amount,
.lshmax-ca .lshmax-ca-tabela .woocommerce-Price-amount,
.lshmax-ca .lshmax-ca-tabela .product-subtotal { color: inherit; }
.lshmax-ca .lshmax-ca-tabela td.actions,
.lshmax-ca .lshmax-ca-acoes,
.lshmax-ca .lshmax-ca-cupom { text-align: left; }
.lshmax-ca .cart_totals table.shop_table tr.order-total { align-items: center; }
.lshmax-ca .cart_totals table.shop_table tr.order-total th,
.lshmax-ca .cart_totals table.shop_table tr.order-total td { line-height: 1.25; }
.lshmax-ca .cart_totals table.shop_table th,
.lshmax-ca .cart_totals table.shop_table td { line-height: 1.4; }
.lshmax-ca .cart_totals table.shop_table tr { flex-wrap: nowrap; }
.lshmax-ca .cart_totals table.shop_table tr:not(.shipping) th,
.lshmax-ca .cart_totals table.shop_table tr:not(.shipping) td { width: auto; max-width: none; flex: 0 1 auto; }
.lshmax-ca .cart_totals table.shop_table tr:not(.shipping) td { margin-left: auto; }
.lshmax-ca a.lshmax-ca-vc-nome { color: var(--lco-texto); }
.lshmax-ca a.lshmax-ca-vc-nome:hover { color: var(--lco-link); }
.lshmax-ca .lshmax-ca-vc-item .button { text-transform: none !important; letter-spacing: 0 !important; width: 100%; }
.lshmax-ca .lshmax-ca-vc-item .button.loading { opacity: .6; }
.lshmax-ca .lshmax-ca-vc-item .button.added { background: var(--lco-primaria); color: var(--lco-primaria-texto); }
.lshmax-ca .lshmax-ca-vc-item .button.added::after { content: none; }

/* ============ Carrinho vazio: um cartão centralizado (o título/texto vêm do tema ou do WooCommerce e são trocados pelo módulo) ============ */
.lshmax-ca .woocommerce:has(> .return-to-shop) {
    display: flex; flex-direction: column; align-items: center; max-width: 560px; margin: 0 auto; padding: 44px 32px; text-align: center;
    background: var(--lco-card); border: var(--lco-borda-card) solid var(--lco-card-borda); border-radius: var(--lco-raio-card); box-shadow: var(--lco-sombra);
}
.lshmax-ca .woocommerce:has(> .return-to-shop) > .woocommerce-notices-wrapper { order: -1; align-self: stretch; margin: 0 0 24px; text-align: left; }
.lshmax-ca .woocommerce:has(> .return-to-shop) > p:empty { display: none; }
.lshmax-ca .woocommerce:has(> .return-to-shop) > link { display: none; }
.lshmax-ca h2.cart-empty,
.lshmax-ca .wd-empty-block-title {
    margin: 0 0 8px; padding: 0; background: none; border: 0; border-radius: 0; color: var(--lco-texto); font-size: 1.45em; font-weight: var(--lco-peso-titulo); text-align: center;
}
.lshmax-ca .wd-empty-block-text { max-width: 44ch; margin: 0 auto 22px; color: var(--lco-texto-suave); }
.lshmax-ca .woocommerce:has(> .return-to-shop) .return-to-shop { margin: 0; padding: 0; background: none; border: 0; border-radius: 0; }
.lshmax-ca .coupon-error-notice { margin: 10px 0 0; color: var(--lco-erro); font-size: .9em; font-weight: 600; }
.lshmax-ca .lshmax-ca-cupom-extra { margin: 0; }
.lshmax-ca[data-cupom="oculto"] .lshmax-ca-cupom-extra { flex: 0 0 auto; }

/* Barra fixa do celular: o botão "Finalizar compra" divide a linha com o total e nunca passa da tela (o "botão largo" herdado do Checkout dá width:100% a .lshmax-co-btn e o empurrava para fora). */
.lshmax-ca .lshmax-ca-barra-movel { box-sizing: border-box; max-width: 100%; }
.lshmax-ca .lshmax-ca-barra-movel a.lshmax-ca-barra-btn { flex: 1 1 auto; width: auto; min-width: 0; max-width: 100%; padding-left: 12px; padding-right: 12px; white-space: normal; text-align: center; }
.lshmax-ca .lshmax-ca-barra-total { flex: 0 0 auto; }
