/*
Checkout, mesma decisão do carrinho: NÃO reescrevemos form-checkout.php.
O checkout clássico do WooCommerce é obrigatório aqui (3 plugins BR:
ViaCEP, CPF/CNPJ, PagSeguro transparente, dependem dos IDs padrão
#billing_*_field que só existem nesse modelo). Testado ao vivo (pedido de
teste completo) antes desta fase: o mecanismo de submit funciona
corretamente. Só CSS por cima das classes/IDs que o Woo já gera.
*/

/* ATENÇÃO: o WooCommerce aplica a classe "woocommerce-checkout" tanto no
   <body> (via body_class) QUANTO no <form> do checkout: usar só
   ".woocommerce-checkout" bate no body inteiro e quebra a página inteira
   (virou grid de 2 colunas incluindo header/footer). Sempre qualificar
   com "form." pra acertar só o formulário. */
form.woocommerce-checkout{
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: var(--espaco-2xl);
    align-items: start;
}
/* Posicionamento explícito dos 3 filhos diretos que o Woo renderiza aqui
   (confirmado ao vivo via inspeção do HTML renderizado em staging,
   01/08/2026): #customer_details.col2-set (campos de cobrança/endereço),
   h3#order_review_heading ("Seu pedido") e #order_review (resumo do
   pedido). Sem isso, o auto-placement do grid põe .col2-set em col1/linha1
   e o h3 em col2/linha1 (curto); como a linha 1 fica alta (dominada pelo
   .col2-set), sobra vão vazio sob o h3 e o #order_review, sem espaço
   reservado na linha 1, cai pro auto-placement seguinte na MESMA coluna
   1, empurrado pra baixo do formulário de cobrança em vez de ficar do
   lado. Fixamos: coluna 1 = .col2-set do topo ao fim (2 linhas); coluna 2
   = h3 na linha 1 e #order_review na linha 2, empilhados ao lado. */
form.woocommerce-checkout > .col2-set{
    grid-column: 1;
    grid-row: 1 / 3;
}
form.woocommerce-checkout > #order_review_heading{
    grid-column: 2;
    grid-row: 1;
}
form.woocommerce-checkout > #order_review{
    grid-column: 2;
    grid-row: 2;
}
@media (max-width: 900px){
    form.woocommerce-checkout{
        grid-template-columns: 1fr;
    }
    /* Reset do posicionamento explícito acima: com 1 coluna só, manter
       grid-column:2 criaria uma coluna implícita extra e quebraria o
       empilhamento mobile que já funciona hoje. Volta pro auto-placement
       (ordem natural do DOM = mesma ordem visual desejada no mobile). */
    form.woocommerce-checkout > .col2-set,
    form.woocommerce-checkout > #order_review_heading,
    form.woocommerce-checkout > #order_review{
        grid-column: auto;
        grid-row: auto;
    }
}

/* Achado real (Swarm Checkout Conversion UX, 13/08/2026, inspecao ao vivo
   da cadeia de ancestrais de form.checkout): nao existe page-checkout.php
   dedicado, o checkout cai no page.php generico, que embrulha o conteudo
   em ".conteudo-pagina" (institutional.css), travada em 800px de largura
   de leitura -- certo pra texto institucional (Sobre, blog), errado pro
   formulario de 2 colunas com widget de pagamento embutido. Confirmado:
   form.checkout ficava preso a 800px dentro de um article.container de
   1240px (--largura-container), sobrando ~440px vazios em 1440px de
   viewport e espremendo o payment_box do Mercado Pago pra 228px de
   largura quando selecionado -- essa e a causa raiz do "espremido"
   reportado, nao a proporcao entre as colunas (1.4fr:1fr ja estava
   correta). Libera so aqui via classe de body que o WooCommerce ja
   aplica na pagina de checkout, sem tocar no page.php (compartilhado com
   Politica de Privacidade e outras paginas institucionais que precisam
   continuar limitadas a 800px). */
body.woocommerce-checkout .conteudo-pagina{
    max-width: none;
}

/* Peso visual dos avisos do topo (Swarm Checkout Conversion UX,
   13/08/2026): ".woocommerce-message" (produto adicionado) e
   ".woocommerce-info" (toggles "ja e cliente"/"tem um cupom") vem
   estilizados em woocommerce-notices.css com padding generoso + sombra,
   pensados pra Loja/Carrinho, onde a notice aparece sozinha flutuando
   sobre a grade de produtos. No Checkout as 3 aparecem empilhadas antes
   do formulario e competem em peso visual com o proprio formulario.
   Reduzimos aqui, so no Checkout (nao mexe em woocommerce-notices.css,
   Carrinho continua com o tratamento original): menos padding vertical,
   sem sombra, menos espaco entre elas. Mantido: cor, borda esquerda,
   icone, link, area clicavel de 44px dos toggles (showlogin/showcoupon),
   nada de funcionalidade muda. */
body.woocommerce-checkout .woocommerce-message,
body.woocommerce-checkout .woocommerce-info{
    padding-top: var(--espaco-sm);
    padding-bottom: var(--espaco-sm);
    margin-bottom: var(--espaco-sm);
    box-shadow: none;
}

.woocommerce-checkout h3{
    margin-bottom: var(--espaco-md);
}

/* Campos de formulário: form-row/form-row-first/last/wide são classes
   nativas do Woo (inclusive as adicionadas pelo Extra Checkout Fields BR) */
.woocommerce-checkout .form-row{
    margin-bottom: var(--espaco-md);
}
.woocommerce-checkout .form-row label{
    display: block;
    font-size: var(--texto-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--cor-cacau-70);
    margin-bottom: var(--espaco-2xs);
}
.woocommerce-checkout .form-row .required{
    color: var(--cor-terracota);
}
/* 21/08/2026 (achado real do Ricardo, testando o checkout ao vivo com
   itens de verdade no carrinho): a label acima já tinha o tratamento certo
   (uppercase, pequena, negrito) desde 13/08, mas o CAMPO em si nunca
   ganhou nenhuma regra de fundo/borda/raio/padding — só "width:100%" e
   "min-height:44px" (alvo de toque, item 8 abaixo). Resultado: campo de
   input renderizava com a caixa branca padrão do navegador, cantos retos,
   sem nenhum contato visual com o resto do site. Corrigido seguindo o
   mesmo vocabulário já usado no resto do tema (raio/borda/foco dos
   componentes de vidro e do buttons.css), não inventado do zero. */
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea{
    width: 100%;
    /* Item 8 (mapeamento Fase 2): campos medidos ao vivo com 37-40px de
       altura, levemente abaixo do mínimo de 44px recomendado pra alvo de
       toque. min-height só estabelece um piso, não acha nenhum campo que
       já seja maior (textarea de observações do pedido, por exemplo). */
    min-height: 44px;
    padding: var(--espaco-sm) var(--espaco-md);
    background: var(--cor-branco);
    border: 1px solid rgba(51, 41, 31, 0.18);
    border-radius: var(--raio-sm);
    font-family: var(--fonte-corpo);
    font-size: var(--texto-base);
    color: var(--cor-cacau);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.woocommerce-checkout .form-row textarea{
    min-height: 90px;
    resize: vertical;
}
.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus{
    outline: none;
    border-color: var(--cor-mata);
    box-shadow: 0 0 0 3px rgba(47, 74, 51, 0.14);
}
.woocommerce-checkout .form-row input.input-text::placeholder,
.woocommerce-checkout .form-row textarea::placeholder{
    color: var(--cor-cacau-45);
}
/* Select2 (WooCommerce carrega por padrão no campo País — Extra Checkout
   Fields Brazil troca Estado por <select> nativo, já coberto acima, mas
   País continua sendo o widget enriquecido do próprio Woo core). Mesma
   caixa visual do input nativo, pra não ter 2 linguagens de campo na
   mesma tela. */
.woocommerce-checkout .select2-container .select2-selection--single{
    height: 44px;
    padding: var(--espaco-sm) var(--espaco-md);
    background: var(--cor-branco);
    border: 1px solid rgba(51, 41, 31, 0.18);
    border-radius: var(--raio-sm);
}
.woocommerce-checkout .select2-container .select2-selection__rendered{
    padding: 0;
    line-height: 26px;
    font-family: var(--fonte-corpo);
    font-size: var(--texto-base);
    color: var(--cor-cacau);
}
.woocommerce-checkout .select2-container .select2-selection__arrow{
    height: 42px;
}
.woocommerce-checkout .select2-container--focus .select2-selection--single,
.woocommerce-checkout .select2-container--open .select2-selection--single{
    border-color: var(--cor-mata);
    box-shadow: 0 0 0 3px rgba(47, 74, 51, 0.14);
}
.woocommerce-checkout .col2-set{
    display: flex;
    flex-wrap: wrap;
    gap: 0 var(--espaco-md);
}
/* Achado real (auditoria de responsividade, 01/08/2026): o WooCommerce
   core da a .col-1 (campos de cobranca) e .col-2 (checkbox "endereco
   diferente" + observacoes) uma largura de ~47% cada com float proprio.
   Como aqui .col2-set virou flex, float nao tem efeito nos filhos diretos,
   mas a largura em % continua valendo — e exatamente na faixa 850-900px
   (onde o grid externo do checkout esta em modo 1 coluna e .col2-set fica
   com quase largura total do formulario), 47%+47%+gap cabe lado a lado
   sem quebrar linha, jogando .col-2 (observacoes) pra cima, antes de
   "Criar uma conta?" que fica mais abaixo dentro de .col-1 — quebra a
   ordem de leitura numa etapa de pagamento. Fora dessa faixa estreita o
   wrap acontecia por sorte (container mais estreito). Fixado: .col-1/.col-2
   sempre 100% de largura, nunca lado a lado, em qualquer largura de tela. */
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2{
    flex: 1 1 100%;
    width: 100% !important;
}
.woocommerce-checkout .col2-set .form-row-first,
.woocommerce-checkout .col2-set .form-row-last{
    flex: 1 1 240px;
}
.woocommerce-checkout .form-row-wide{
    flex: 1 1 100%;
}

/* Resumo do pedido (order review). Borda sutil (Auditoria de Design Visual,
   item "Paineis de resumo", EQMS-AUDITORIA-DESIGN-VISUAL.md, 24/07/2026):
   só o token de borda do sistema de vidro (00-tokens.css, SO LEITURA), sem
   blur nem mudança de fundo, pra não arriscar legibilidade de número/preço
   em área transacional. */
#order_review{
    background: var(--cor-linho-2);
    border-radius: var(--raio-md);
    border: 1px solid var(--vidro-borda-escura);
    padding: var(--espaco-xl);
}
.woocommerce-checkout-review-order-table{
    width: 100%;
    margin-bottom: var(--espaco-lg);
}
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td{
    padding: var(--espaco-sm) 0;
    border-bottom: 1px solid rgba(51,41,31,0.12);
    text-align: left;
}
/* Hierarquia do TOTAL reforcada (Swarm Checkout Conversion UX,
   13/08/2026): antes so tamanho/cor/negrito distinguiam o TOTAL de
   Subtotal/Frete, pouco contraste numa lista de linhas parecidas. Soma-se
   uma divisoria acima (borda mais forte que a rgba(0.12) usada entre as
   outras linhas) e sobe de --texto-lg pra --texto-xl, mesmos tokens do
   sistema, sem criar cor ou espacamento novo. */
.woocommerce-checkout-review-order-table tfoot tr:last-child th,
.woocommerce-checkout-review-order-table tfoot tr:last-child td{
    font-weight: 700;
    color: var(--cor-mata);
    font-size: var(--texto-xl);
    border-top: 2px solid var(--vidro-borda-escura);
    border-bottom: none;
    padding-top: var(--espaco-md);
}

/* Miniatura de produto no resumo (20/08/2026, redesign referenciando
   QuanQton/Ourigen — resumo do pedido sempre com foto real, nunca só
   texto). Foto vem de get_image('thumbnail'), sempre real do catálogo,
   nunca gerada/inventada. */
.eqms-resumo-item{
    display: flex;
    align-items: center;
    gap: var(--espaco-sm);
}
.eqms-resumo-item__miniatura{
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: var(--raio-sm);
    overflow: hidden;
    background: var(--cor-linho);
}
.eqms-resumo-item__miniatura img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.eqms-resumo-item__nome{
    min-width: 0;
}

/* Rodapé de confiança abaixo do total (selo + "bandeiras" em texto, sem
   logo licenciado — mesmo padrão visto nos checkouts de referência). */
.eqms-rodape-confianca-linha td{
    border-bottom: none !important;
    padding-top: var(--espaco-md) !important;
}
.eqms-rodape-confianca{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--espaco-xs) var(--espaco-md);
    padding-top: var(--espaco-sm);
    border-top: 1px solid rgba(51, 41, 31, 0.12);
    font-size: var(--texto-xs);
    color: var(--cor-cacau-70);
    text-align: center;
}
.eqms-rodape-confianca__icone{
    width: 16px;
    height: 16px;
    color: var(--cor-mata);
}
.eqms-rodape-confianca__selos{
    display: flex;
    gap: var(--espaco-2xs);
}
.eqms-rodape-confianca__selos span{
    padding: 2px 8px;
    background: var(--cor-linho-2);
    border-radius: var(--raio-sm);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: var(--cor-cacau-70);
}

/* Métodos de pagamento */
#payment{
    background: transparent;
}
ul.wc_payment_methods{
    list-style: none;
}
ul.wc_payment_methods li.wc_payment_method{
    border: 1px solid rgba(51,41,31,0.15);
    border-radius: var(--raio-sm);
    padding: var(--espaco-md);
    margin-bottom: var(--espaco-sm);
}
/* Achado real (20/08/2026, causa raiz confirmada lendo o CSS core do
   WooCommerce): o lilas (#dcd7e2) vem de uma regra do proprio
   woocommerce.css --
   ".woocommerce-checkout #payment div.payment_box{background-color:#dcd7e2}"
   -- com um seletor de ID (#payment) que vence qualquer combinacao de
   classes, por isso a tentativa anterior (so classes) nao bateu. Repete a
   MESMA forma de seletor (classe + ID + elemento + classe) pra igualar a
   especificidade e vencer por ordem de carga (este arquivo carrega depois
   do woocommerce.css). */
ul.wc_payment_methods .payment_box{
    margin-top: var(--espaco-sm);
    padding: var(--espaco-sm) var(--espaco-md);
    font-size: var(--texto-sm);
    color: var(--cor-cacau-70);
    border-radius: var(--raio-sm);
}
.woocommerce-checkout #payment div.payment_box{
    background-color: var(--cor-linho);
    border: 1px solid rgba(51, 41, 31, 0.12);
}
.woocommerce-checkout #payment div.payment_box::before{
    display: none;
}
#place_order{
    width: 100%;
    text-align: center;
    padding: var(--espaco-md) var(--espaco-lg);
    font-size: var(--texto-base);
}

/* Validação (Extra Checkout Fields Brazil injeta/esconde campos aqui) */
.woocommerce-checkout .validate-required.woocommerce-invalid input.input-text{
    border-color: var(--cor-terracota);
}

/* Item 2 (mapeamento Fase 2): a label do checkbox "Entregar em um endereço
   diferente?" saía gigante (Spectral ~32px, quebrando em 3 linhas),
   destoando do checkbox "CRIAR UMA CONTA?" logo acima (13px, normal).
   Causa raiz confirmada ao vivo inspecionando o DOM: o WooCommerce core
   (templates/checkout/form-shipping.php) embrulha SÓ esse checkbox num
   <h3 id="ship-to-different-address">, que cai na regra genérica
   "h1, h2, h3, h4, h5, h6" do 02-base.css (fonte Spectral, tamanho de
   título). O checkbox de criar conta não tem esse wrapper de heading, por
   isso nunca teve o problema. Resetamos aqui só esse h3 específico pro
   mesmo padrão visual do outro checkbox, sem tocar no 02-base.css (fora do
   território) nem em nenhum outro h3 do site. Confirmado ao vivo: font-size
   caiu de 32px pra 13px, sem nenhum efeito colateral no resto da página. */
h3#ship-to-different-address{
    font-family: var(--fonte-corpo);
    font-size: var(--texto-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--cor-cacau-70);
    margin: 0 0 var(--espaco-sm);
}
h3#ship-to-different-address label{
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    text-transform: inherit;
    color: inherit;
}

/* ===== Borda sutil no card de endereço da Minha Conta (Auditoria de Design
   Visual, item "Paineis de resumo", EQMS-AUDITORIA-DESIGN-VISUAL.md,
   24/07/2026) =====
   ".woocommerce-Address" mora fisicamente em my-account.css (fundo
   --cor-linho-2 + raio + padding, sem borda), fora do território deste
   agente. Como TODOS os CSS do tema carregam em toda página (functions.php,
   eqms_enqueue_assets()), a regra abaixo escrita aqui em checkout.css
   também vale em Minha Conta, sem precisar tocar em my-account.css (ver
   EQMS-TEMA-GUIA-TECNICO.md, seção 3). Só adiciona a borda; não redeclara
   background/border-radius/padding, então não conflita com a regra de
   my-account.css independente da ordem de carregamento. Mesmo token de
   borda do sistema de vidro, sem blur, mesma lógica do #order_review e do
   .cart_totals acima/em cart.css. */
.woocommerce-Address{
    border: 1px solid var(--vidro-borda-escura);
}
