/* ==========================================================================
   Gráfica Penha — Carrinho (/carrinho/) · shortcode clássico [woocommerce_cart]
   RECONSTRUÇÃO DEFINITIVA (estrutura limpa, sem conflitos)
   --------------------------------------------------------------------------
   Gotchas que quebraram versões anteriores:
   - `.woocommerce-cart` é classe do <body>, NÃO um wrapper → nunca aplicar layout nela.
   - O grid de 2 colunas vai em `.entry-content .woocommerce` (wrapper do shortcode).
   - `.entry-content .woocommerce` herda `max-width:1000px` do CSS core → sobrescrever com none.
   - Regras antigas de carrinho no institucional.css (cor antiga #1b65a5) foram removidas;
     tudo aqui usa a cor oficial #144e82.
   ========================================================================== */

/* ===== 1. ESTRUTURA GERAL (container 1200px) ===== */
body.woocommerce-cart .gp-institucional-wrapper {
    max-width: 1200px !important;
    margin: 30px auto !important;
    padding: 0 20px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Grid 65% / 35% (coluna esquerda flexível, direita fixa 380px) */
body.woocommerce-cart .entry-content .woocommerce {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 380px !important;
    gap: 32px !important;
    align-items: start !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
}

/* Avisos e carrinho vazio ocupam a largura total */
body.woocommerce-cart .entry-content .woocommerce > *:not(.woocommerce-cart-form):not(.cart-collaterals) {
    grid-column: 1 / -1;
}

/* ===== 2. TABELA DE PRODUTOS ===== */
body.woocommerce-cart .woocommerce-cart-form {
    width: 100% !important;
    min-width: 0;
    margin: 0;
}

body.woocommerce-cart .shop_table.cart {
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    border: none !important;
    background: #fff !important;
}

/* Cabeçalho: fundo azul contínuo com o corpo (sem gap no thead/tbody) */
body.woocommerce-cart .shop_table.cart thead th {
    background-color: #144e82 !important;
    color: #ffffff !important;
    padding: 12px 8px !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    text-align: left !important;
    border: none !important;
}

/* Células do corpo: alinhamento vertical central + padding uniforme */
body.woocommerce-cart .shop_table.cart tbody td {
    vertical-align: middle !important;
    padding: 14px 8px !important;
    border-top: none !important;
    border-bottom: 1px solid #e2e8f0 !important;
}

/* Larguras de coluna (table-layout:fixed — impede a tabela de estourar os 710px
   da coluna esquerda; o produto fica com o maior espaço, os demais são estreitos) */
body.woocommerce-cart .shop_table.cart th.product-remove,
body.woocommerce-cart .shop_table.cart td.product-remove {
    width: 40px !important;
    text-align: center !important;
    padding: 0 !important;
}

body.woocommerce-cart .shop_table.cart th.product-thumbnail,
body.woocommerce-cart .shop_table.cart td.product-thumbnail {
    width: 56px !important;
    text-align: center !important;
}

body.woocommerce-cart .shop_table.cart th.product-name,
body.woocommerce-cart .shop_table.cart td.product-name {
    width: 280px !important;
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
}

body.woocommerce-cart .shop_table.cart th.product-price,
body.woocommerce-cart .shop_table.cart td.product-price {
    width: 88px !important;
}

body.woocommerce-cart .shop_table.cart th.product-quantity,
body.woocommerce-cart .shop_table.cart td.product-quantity {
    width: 68px !important;
}

body.woocommerce-cart .shop_table.cart th.product-subtotal,
body.woocommerce-cart .shop_table.cart td.product-subtotal {
    width: 88px !important;
}

/* Thumbnail alinhada e com margem limpa */
body.woocommerce-cart .shop_table.cart td.product-thumbnail img {
    max-width: 48px !important;
    height: auto !important;
    display: inline-block !important;
    vertical-align: middle !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 4px !important;
}

/* Botão de remover: centralizado na linha, sem empurrar a tabela.
   flex (e não inline-block) para o SVG da lixeira ficar centralizado no
   círculo vermelho do hover sem depender de line-height. */
body.woocommerce-cart .shop_table.cart a.remove {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    vertical-align: middle !important;
    margin: 0 auto !important;
    width: 26px !important;
    height: 26px !important;
}

/* Lixeira: o ícone é um SVG inline com fill="currentColor", então a cor vem do
   próprio link — vermelho normal, branco sobre o fundo vermelho no hover. */
body.woocommerce-cart .shop_table.cart a.remove .gph-trash {
    display: block !important;
    width: 16px !important;
    height: 16px !important;
    pointer-events: none;
}

/* Metadados de variação: sem quebras forçadas. Neutraliza o float:left/clear:both
   que o WooCommerce aplica no <dt> (isso blockifica o dt e quebra a linha).
   Label + valor na mesma linha; pares separados por margem à direita. */
body.woocommerce-cart dl.variation {
    margin: 6px 0 0 !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
}

body.woocommerce-cart dl.variation dt {
    font-weight: 600 !important;
    display: inline-block !important;
    float: none !important;
    clear: none !important;
    margin: 0 4px 4px 0 !important;
}

body.woocommerce-cart dl.variation dd {
    display: inline-block !important;
    float: none !important;
    margin: 0 16px 4px 0 !important;
}

body.woocommerce-cart dl.variation dd p {
    display: inline !important;
    margin: 0 !important;
}

/* ===== 3. ÁREA DE CUPOM E AÇÕES ===== */
/* IMPORTANTE: .actions é um <td colspan="6"> DENTRO da tabela (template clássico WC),
   não um <div>. Aplicar display:flex nele colapsa a largura do td (~41px) e empilha tudo.
   Layout: .coupon flutua à esquerda (input+botão lado a lado) e o botão atualizar
   alinha à direita via text-align:right + inline-flex. */
body.woocommerce-cart .shop_table.cart td.actions {
    text-align: right !important;
    padding: 20px 0 0 !important;
    border-bottom: none !important;
}

body.woocommerce-cart .coupon {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: nowrap !important;
    float: left !important;
    margin: 0 !important;
}

body.woocommerce-cart #coupon_code {
    height: 42px !important;
    padding: 0 12px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 4px !important;
    box-sizing: border-box !important;
    width: 160px !important;
}

/* Botões "Aplicar cupom" e "Atualizar carrinho": mesma cor azul, sem cinza, sem quebra forçada */
body.woocommerce-cart button[name="apply_coupon"],
body.woocommerce-cart button[name="update_cart"] {
    background-color: #144e82 !important;
    color: #ffffff !important;
    height: 42px !important;
    padding: 0 20px !important;
    border: none !important;
    border-radius: 4px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    float: none !important;
    vertical-align: middle !important;
}

/* Atualizar carrinho: força cor idêntica em TODOS os estados.
   O WC aplica opacity:0.5 no :disabled → deixa o azul desbotado/cinza. */
body.woocommerce-cart button[name="update_cart"],
body.woocommerce-cart button[name="update_cart"]:disabled,
body.woocommerce-cart button[name="update_cart"][disabled] {
    background-color: #144e82 !important;
    color: #ffffff !important;
    opacity: 1 !important;
    border: none !important;
    border-radius: 4px !important;
    font-weight: 600 !important;
    height: 42px !important;
    padding: 0 20px !important;
    box-shadow: none !important;
}

body.woocommerce-cart button[name="update_cart"]:hover:not(:disabled) {
    background-color: #0f3d66 !important;
}

body.woocommerce-cart button[name="apply_coupon"]:hover {
    background-color: #0f3d66 !important;
    color: #fff !important;
}

/* Quantidade */
body.woocommerce-cart .shop_table.cart .product-quantity .qty {
    width: 60px !important;
    box-sizing: border-box !important;
    padding: 8px 6px !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 4px !important;
    text-align: center !important;
}

/* ===== 4. CARD DE TOTAIS ===== */
body.woocommerce-cart .cart-collaterals {
    width: 100% !important;
    min-width: 0;
    margin: 0;
}

body.woocommerce-cart .cart_totals {
    width: 100% !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 24px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

/* Título do card */
body.woocommerce-cart .cart_totals h2 {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #144e82 !important;
    text-transform: uppercase !important;
    border-bottom: 2px solid #144e82 !important;
    padding-bottom: 10px !important;
    margin: 0 0 16px !important;
}

/* Tabela interna: sem larguras fixas em px, sem overflow */
body.woocommerce-cart .cart_totals table {
    width: 100% !important;
    table-layout: fixed !important;
    border: none !important;
}

body.woocommerce-cart .cart_totals table th,
body.woocommerce-cart .cart_totals table td {
    width: auto !important;
    max-width: 100% !important;
    padding: 8px 0 !important;
    border: none !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
}

body.woocommerce-cart .cart_totals th {
    text-align: left !important;
    font-weight: 600 !important;
    color: #334155 !important;
}

body.woocommerce-cart .cart_totals td {
    text-align: right !important;
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
    color: #334155 !important;
}

/* Frete e opções de entrega em tamanho contido */
body.woocommerce-cart .cart_totals ul#shipping_method li,
body.woocommerce-cart .cart_totals .shipping-calculator-button,
body.woocommerce-cart .cart_totals .woocommerce-shipping-destination {
    font-size: 15px !important;
    line-height: 1.5 !important;
}

/* Valor do Total final em destaque */
body.woocommerce-cart .cart_totals .order-total td,
body.woocommerce-cart .cart_totals .order-total .amount,
body.woocommerce-cart .cart_totals .order-total strong {
    font-size: 20px !important;
    font-weight: 800 !important;
    color: #144e82 !important;
}

/* Botão CONTINUAR PARA FINALIZAÇÃO */
body.woocommerce-cart .checkout-button {
    width: 100% !important;
    background-color: #144e82 !important;
    color: #ffffff !important;
    padding: 14px !important;
    border-radius: 4px !important;
    font-size: 16px !important;
    font-weight: bold !important;
    text-align: center !important;
    margin-top: 20px !important;
    display: block !important;
    text-decoration: none !important;
    border: none !important;
    box-sizing: border-box !important;
}

body.woocommerce-cart .checkout-button:hover {
    background-color: #10406a !important;
    color: #ffffff !important;
}

/* ===== Responsivo: empilha em coluna única ===== */
@media (max-width: 991px) {
    body.woocommerce-cart .entry-content .woocommerce {
        grid-template-columns: 1fr !important;
    }
}

/* ==========================================================================
   AJUSTE 2026-09-06 — Botões do carrinho + card de totais
   (cor base oficial #144e82; hover padronizado #0d385e)
   ========================================================================== */

/* 1. Atualizar carrinho: idêntico a "Aplicar cupom" em todos os estados */
.woocommerce-cart .cart td.actions .button[name="update_cart"],
.woocommerce-cart .cart td.actions .button[name="update_cart"]:disabled,
.woocommerce-cart .cart td.actions .button[name="update_cart"][disabled] {
    background-color: #144e82 !important;
    color: #ffffff !important;
    opacity: 1 !important;
    cursor: pointer !important;
    filter: none !important;
}

/* Hover padronizado dos botões de ação (cupom + atualizar) */
.woocommerce-cart .cart td.actions .button[name="update_cart"]:hover,
.woocommerce-cart .cart td.actions .button[name="apply_coupon"]:hover {
    background-color: #0d385e !important;
    color: #ffffff !important;
    opacity: 1 !important;
}

/* Padronização de tamanho dos botões de ação (cupom + atualizar) */
.woocommerce-cart .cart td.actions .button,
.woocommerce-cart .cart td.actions input.button {
    font-size: 15px !important;
    font-weight: 700 !important;
    padding: 10px 20px !important;
    border-radius: 4px !important;
    height: 44px !important;
    line-height: 22px !important;
    box-sizing: border-box !important;
}

/* 2. Continuar para Finalização: escala reduzida */
.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout a.checkout-button {
    background-color: #144e82 !important;
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    padding: 12px 20px !important;
    line-height: 1.3 !important;
    border-radius: 4px !important;
    display: block !important;
    text-align: center !important;
    box-sizing: border-box !important;
    width: 100% !important;
}

.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout a.checkout-button:hover {
    background-color: #0d385e !important;
}

/* 3. Card de totais: container e tabela alinhados (box-sizing: border-box) */
.woocommerce-cart .cart-collaterals .cart_totals {
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 20px !important;
    background: #ffffff !important;
    box-sizing: border-box !important;
    width: 100% !important;
}

.woocommerce-cart .cart-collaterals .cart_totals > h2 {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #144e82 !important;
    margin: 0 0 16px 0 !important;
    padding: 0 !important;
    border: none !important;
}

.woocommerce-cart .cart-collaterals .cart_totals table.shop_table {
    width: 100% !important;
    border-collapse: collapse !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 4px !important;
    margin: 0 0 20px 0 !important;
    box-sizing: border-box !important;
}

.woocommerce-cart .cart-collaterals .cart_totals table.shop_table th,
.woocommerce-cart .cart-collaterals .cart_totals table.shop_table td {
    padding: 12px 14px !important;
    border-top: 1px solid #edf2f7 !important;
    box-sizing: border-box !important;
}

/* ==========================================================================
   AJUSTE 2026-09-06 (b) — Calculadora de frete: só CEP
   (País/Estado/Cidade ocultos via PHP; cor base #144e82, hover #0d385e)
   ========================================================================== */

.woocommerce-cart .woocommerce-shipping-calculator p#calc_shipping_country_field,
.woocommerce-cart .woocommerce-shipping-calculator p#calc_shipping_state_field,
.woocommerce-cart .woocommerce-shipping-calculator p#calc_shipping_city_field {
    display: none !important;
}

.woocommerce-cart .woocommerce-shipping-calculator p#calc_shipping_postcode_field {
    width: 100% !important;
    margin-bottom: 12px !important;
}

.woocommerce-cart .woocommerce-shipping-calculator p#calc_shipping_postcode_field input {
    width: 100% !important;
    box-sizing: border-box !important;
    height: 40px !important;
    border: 1px solid #ccd0d5 !important;
    border-radius: 4px !important;
    padding: 8px 12px !important;
}

.woocommerce-cart .woocommerce-shipping-calculator button[name="calc_shipping"] {
    width: 100% !important;
    background-color: #144e82 !important;
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    height: 42px !important;
    border-radius: 4px !important;
    border: none !important;
    cursor: pointer !important;
}

.woocommerce-cart .woocommerce-shipping-calculator button[name="calc_shipping"]:hover {
    background-color: #0d385e !important;
}

/* ==========================================================================
   AJUSTE 2026-09-06 (e) — Calculadora de frete em LARGURA TOTAL do card
   --------------------------------------------------------------------------
   O tr.shipping fica preso no `table-layout:fixed` 50/50 da .cart_totals e
   nenhum `display` isolado no tr/th/td destrava (o browser re-embrulha a
   célula numa tabela anônima). Fix definitivo: converter a TABELA de totais
   inteira p/ layout de blocos (table/tbody/tr/th/td = block/flex), removendo
   qualquer contexto de tabela. A linha de frete vira coluna full-width com
   CEP + botão centralizados exatamente no meio do card.
   ========================================================================== */

/* Mata o contexto de tabela (senão o flex no tr é re-embrulhado) */
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table {
    display: block !important;
    width: 100% !important;
    table-layout: auto !important;
}
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tbody {
    display: block !important;
    width: 100% !important;
}

/* Cada linha de totais vira flex: rótulo à esquerda, valor à direita */
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tbody tr {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    width: 100% !important;
    padding: 12px 0 !important;
    border-top: 1px solid #edf2f7 !important;
}
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tbody tr:first-child {
    border-top: none !important;
}

body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tbody th,
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tbody td {
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    padding: 0 !important;
    border: none !important;
}
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tbody th {
    flex: 0 0 auto !important;
    text-align: left !important;
}
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tbody td {
    flex: 1 1 auto !important;
    text-align: right !important;
}

/* Linha de frete: vira coluna, ocupa 100% da largura do card */
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tr.shipping {
    flex-direction: column !important;
    align-items: stretch !important;
}
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tr.shipping th {
    width: 100% !important;
    text-align: left !important;
    padding-bottom: 5px !important;
}
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tr.shipping td {
    width: 100% !important;
    text-align: left !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 0 8px 0 !important;
}

/* Opções de frete (radio) alinhadas à esquerda em largura total */
body.woocommerce-cart .cart-collaterals .cart_totals ul#shipping_method {
    width: 100% !important;
    text-align: left !important;
    margin-bottom: 15px !important;
    padding: 0 !important;
}

/* Formulário de cálculo de CEP centralizado no eixo do card */
body.woocommerce-cart .woocommerce-shipping-calculator {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 10px auto 0 auto !important;
}
body.woocommerce-cart .woocommerce-shipping-calculator .shipping-calculator-form {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}
body.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-shipping-calculator p#calc_shipping_postcode_field {
    width: 260px !important;
    max-width: 260px !important;
    margin: 0 auto 10px auto !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 !important;
    float: none !important;
}
body.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-shipping-calculator p#calc_shipping_postcode_field input {
    width: 100% !important;
    text-align: center !important;
    height: 42px !important;
    box-sizing: border-box !important;
}
body.woocommerce-cart .cart-collaterals .cart_totals .woocommerce-shipping-calculator button[name="calc_shipping"] {
    width: 260px !important;
    max-width: 260px !important;
    height: 38px !important;
    min-height: 38px !important;
    line-height: 38px !important;
    padding: 0 16px !important;
    margin: 8px auto 12px auto !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    border-radius: 4px !important;
    display: block !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

/* ==========================================================================
   AJUSTE 2026-09-08 — Botão "Continuar comprando" no carrinho
   --------------------------------------------------------------------------
   Injetado via hook `woocommerce_cart_actions` (depois de "Atualizar carrinho").
   Herda o tamanho dos demais botões via `.cart td.actions .button` (44px/15px/700).
   Posicionamento: coupon flutua à esquerda; update e continue flutuam à direita.
   Como o DOM é [update][continue] e ambos float:right, o "Continuar comprando"
   fica à ESQUERDA de "Atualizar carrinho" — ou seja, entre cupom e atualizar.
   O ::after restaura a altura do td (todos os filhos ficam flutuando).
   ========================================================================== */

body.woocommerce-cart .shop_table.cart td.actions::after {
    content: "";
    display: block;
    clear: both;
}

body.woocommerce-cart .shop_table.cart td.actions button[name="update_cart"] {
    float: right !important;
}

body.woocommerce-cart .shop_table.cart td.actions a.gp-continue-shopping {
    float: right !important;
    margin-right: 8px !important;
    background-color: #144e82 !important;
    color: #ffffff !important;
    border: none !important;
    box-shadow: none !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
}

body.woocommerce-cart .shop_table.cart td.actions a.gp-continue-shopping:hover {
    background-color: #0d385e !important;
    color: #ffffff !important;
}
