/*
 * LESHI MAX — Checkout em etapas (CSS do front-end).
 * Tudo é escopado em .lshmax-co e dirigido por variáveis --lco-* (definidas pelo painel)
 * e por atributos data-* na raiz (layout, largura, estilo dos campos...).
 * Este mesmo arquivo alimenta a prévia ao vivo do painel.
 */

/* ============ Variáveis padrão (o painel sobrescreve em um <style> logo depois) ============ */
.lshmax-co {
    --lco-largura: 1100px;
    --lco-cab-fundo: #111827;
    --lco-cab-texto: #ffffff;
    --lco-cab-altura: 60px;
    --lco-logo-altura: 34px;
    --lco-pagina: #f3f4f6;
    --lco-card: #ffffff;
    --lco-card-borda: #e5e7eb;
    --lco-bloqueada: #f9fafb;
    --lco-bloq-opac: .7;
    --lco-texto: #111827;
    --lco-texto-suave: #6b7280;
    --lco-link: #6815f9;
    --lco-primaria: #111827;
    --lco-primaria-texto: #ffffff;
    --lco-primaria-hover: #374151;
    --lco-destaque: #15803d;
    --lco-erro: #dc2626;
    --lco-etapa-ativa: #111827;
    --lco-etapa-ok: #15803d;
    --lco-etapa-inativa: #d1d5db;
    --lco-campo-fundo: #ffffff;
    --lco-campo-borda: #d1d5db;
    --lco-campo-foco: #111827;
    --lco-campo-altura: 46px;
    --lco-bump-fundo: #fffbeb;
    --lco-bump-borda: #fcd34d;
    --lco-barra: #e5e7eb;
    --lco-rod-fundo: #ffffff;
    --lco-rod-texto: #4b5563;
    --lco-fonte: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --lco-fonte-base: 15px;
    --lco-peso-titulo: 700;
    --lco-raio-card: 12px;
    --lco-raio-campo: 8px;
    --lco-raio-botao: 8px;
    --lco-borda-card: 1px;
    --lco-sombra: 0 1px 2px rgba(16, 24, 40, .06);
    --lco-botao-altura: 50px;
    --lco-mini: 52px;
    --lco-gap: 18px;
    --lco-pad: 20px;
}

.lshmax-co[data-densidade="compacta"] { --lco-gap: 12px; --lco-pad: 14px; }
.lshmax-co[data-densidade="ampla"] { --lco-gap: 26px; --lco-pad: 28px; }

/* ============ Base ============ */
html.lshmax-co-html, body.lshmax-co-body { margin: 0; padding: 0; }
body.lshmax-co-body { background: #f3f4f6; }
/* Restos do tema/plugins que aparecem fora do checkout (link "pular conteúdo", ícone do Woodmart na barra de admin). */
body.lshmax-co-body .wd-skip-links, body.lshmax-co-body .wd-preloader, body.lshmax-co-body .wd-page-overlay { display: none !important; }
body.lshmax-co-body #wpadminbar img { width: 20px; height: 20px; object-fit: contain; }

.lshmax-co,
.lshmax-co *,
.lshmax-co *::before,
.lshmax-co *::after { box-sizing: border-box; }

.lshmax-co {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: var(--lco-pagina);
    color: var(--lco-texto);
    font-family: var(--lco-fonte);
    font-size: var(--lco-fonte-base);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}
.lshmax-co--previa { min-height: 0; }
/* Altura da tela descontando a barra de administração (logado: o WordPress empurra a página 32px, 46px no celular);
   sem isso o rodapé passava da tela e criava uma barra de rolagem só para descer esses pixels.
   dvh = altura visível de verdade no celular (a barra do navegador não conta). */
body.admin-bar .lshmax-co { min-height: calc(100vh - 32px); }
@media (max-width: 782px) { body.admin-bar .lshmax-co { min-height: calc(100vh - 46px); } }
@supports (height: 100dvh) {
    .lshmax-co { min-height: 100dvh; }
    body.admin-bar .lshmax-co { min-height: calc(100dvh - 32px); }
    @media (max-width: 782px) { body.admin-bar .lshmax-co { min-height: calc(100dvh - 46px); } }
}
.lshmax-co--previa, body.admin-bar .lshmax-co--previa { min-height: 0; }

/* Tudo que o tema, o WooCommerce ou um gateway estiverem estilizando com fonte própria segue a fonte escolhida
   (controles de formulário não herdam a fonte sozinhos; tabelas, rótulos e caixas de pagamento costumam ter regra do tema). */
.lshmax-co input,
.lshmax-co select,
.lshmax-co textarea,
.lshmax-co button,
.lshmax-co optgroup,
.lshmax-co label,
.lshmax-co table,
.lshmax-co th,
.lshmax-co td,
.lshmax-co legend,
.lshmax-co .woocommerce-checkout-payment,
.lshmax-co .payment_box,
.lshmax-co .payment_box *:not(svg):not(svg *):not(iframe),
.lshmax-co .select2-container,
.lshmax-co .select2-selection,
.lshmax-co .select2-selection__rendered,
.lshmax-co .woocommerce-error,
.lshmax-co .woocommerce-info,
.lshmax-co .woocommerce-message,
.lshmax-co .amount,
.lshmax-co .woocommerce-Price-amount {
    font-family: inherit;
}
.lshmax-co h1, .lshmax-co h2, .lshmax-co h3, .lshmax-co h4, .lshmax-co h5, .lshmax-co h6,
.lshmax-co .lshmax-co-etapa-titulo, .lshmax-co .lshmax-co-sub, .lshmax-co .lshmax-co-resumo-tit {
    font-family: var(--lco-fonte-titulo, var(--lco-fonte));
}
.lshmax-co h1, .lshmax-co h2, .lshmax-co h3 {
    margin: 0;
    padding: 0;
    color: var(--lco-texto);
    font-weight: var(--lco-peso-titulo);
    line-height: 1.25;
    letter-spacing: 0;
    text-transform: none;
}
.lshmax-co p { margin: 0 0 .6em; }
.lshmax-co a { color: var(--lco-link); }
.lshmax-co button { font-family: inherit; }
.lshmax-co ul, .lshmax-co ol { margin: 0; padding: 0; list-style: none; }
.lshmax-co img { max-width: 100%; height: auto; }
.lshmax-co [hidden] { display: none !important; }
.lshmax-co :focus-visible { outline: 2px solid var(--lco-campo-foco); outline-offset: 2px; }

/* ============ Cabeçalho ============ */
.lshmax-co-cab {
    background: var(--lco-cab-fundo);
    color: var(--lco-cab-texto);
    min-height: var(--lco-cab-altura);
    display: flex;
    align-items: center;
}
.lshmax-co-cab-in {
    width: 100%;
    max-width: var(--lco-largura);
    margin: 0 auto;
    padding: 8px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.lshmax-co[data-cab="centro"] .lshmax-co-cab-in { flex-direction: column; justify-content: center; gap: 4px; text-align: center; }
.lshmax-co[data-cab="esquerda"] .lshmax-co-cab-in { justify-content: flex-start; gap: 24px; }

.lshmax-co-logo { display: inline-flex; align-items: center; color: inherit; text-decoration: none; }
.lshmax-co .lshmax-co-logo-img { display: block; height: var(--lco-logo-altura); width: auto; max-width: 220px; object-fit: contain; }
.lshmax-co-logo-texto { font-size: 1.25em; font-weight: 700; color: var(--lco-cab-texto); }
.lshmax-co-selo-seguro { display: inline-flex; align-items: center; gap: 6px; font-size: .9em; font-weight: 600; color: var(--lco-cab-texto); white-space: nowrap; }
.lshmax-co-icone { flex: 0 0 auto; }

/* ============ Conteúdo / grade ============ */
.lshmax-co-main { flex: 1 0 auto; width: 100%; }
.lshmax-co-container { width: 100%; max-width: var(--lco-largura); margin: 0 auto; padding: 24px 16px 40px; }
.lshmax-co-container .woocommerce { margin: 0; padding: 0; }
.lshmax-co-container > p:empty { display: none; }

.lshmax-co .woocommerce-notices-wrapper:empty { display: none; }
.lshmax-co-aviso { padding: 14px 16px; background: var(--lco-card); border: 1px solid var(--lco-card-borda); border-radius: var(--lco-raio-card); }

.lshmax-co-grid { display: grid; gap: var(--lco-gap); align-items: start; grid-template-columns: minmax(0, 1fr); }

/* Computador: colunas (etapa 1 | etapas 2 e 3 | resumo) */
.lshmax-co[data-largura="desktop"][data-layout="colunas"] .lshmax-co-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, .9fr);
    grid-template-rows: auto 1fr; /* a sobra de altura do resumo vai para a 2ª linha (etapa 3 fica colada na 2) */
    grid-template-areas: "s1 s2 res" "s1 s3 res";
}
.lshmax-co[data-largura="desktop"][data-layout="colunas"] .lshmax-co-etapa[data-etapa="1"] { grid-area: s1; }
.lshmax-co[data-largura="desktop"][data-layout="colunas"] .lshmax-co-etapa[data-etapa="2"] { grid-area: s2; }
.lshmax-co[data-largura="desktop"][data-layout="colunas"] .lshmax-co-etapa[data-etapa="3"] { grid-area: s3; }
.lshmax-co[data-largura="desktop"][data-layout="colunas"] .lshmax-co-resumo { grid-area: res; }

/* Tablet: etapas empilhadas à esquerda, resumo à direita */
.lshmax-co[data-largura="tablet"][data-layout="colunas"] .lshmax-co-grid {
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    grid-template-rows: auto auto 1fr;
    grid-template-areas: "s1 res" "s2 res" "s3 res";
}
.lshmax-co[data-largura="tablet"][data-layout="colunas"] .lshmax-co-etapa[data-etapa="1"] { grid-area: s1; }
.lshmax-co[data-largura="tablet"][data-layout="colunas"] .lshmax-co-etapa[data-etapa="2"] { grid-area: s2; }
.lshmax-co[data-largura="tablet"][data-layout="colunas"] .lshmax-co-etapa[data-etapa="3"] { grid-area: s3; }
.lshmax-co[data-largura="tablet"][data-layout="colunas"] .lshmax-co-resumo { grid-area: res; }

/* Pilha (uma coluna): tudo empilhado e centralizado */
.lshmax-co[data-layout="pilha"] .lshmax-co-grid { max-width: 720px; margin: 0 auto; }
.lshmax-co[data-layout="pilha"] .lshmax-co-resumo { order: 9; }

/* Celular: uma etapa por vez, resumo recolhível no topo */
.lshmax-co[data-largura="movel"] .lshmax-co-container { padding: 12px 12px 32px; }
.lshmax-co[data-largura="movel"] .lshmax-co-resumo { order: -1; }
.lshmax-co[data-largura="movel"] .lshmax-co-etapa:not(.is-atual) { display: none; }

/* ============ Indicador de etapas ============ */
.lshmax-co-stepper { display: none; position: relative; margin: 0 auto 14px; max-width: 720px; }
.lshmax-co[data-largura="movel"] .lshmax-co-stepper,
.lshmax-co[data-stepper-desktop="yes"] .lshmax-co-stepper { display: block; }
.lshmax-co-stepper-lista { display: flex; justify-content: space-between; position: relative; z-index: 1; }
.lshmax-co-passo { flex: 1 1 0; text-align: center; }
.lshmax-co-passo-link { display: flex; flex-direction: column; align-items: center; gap: 6px; color: var(--lco-texto-suave); text-decoration: none; font-size: .82em; font-weight: 600; }
.lshmax-co-passo-num {
    display: inline-flex; align-items: center; justify-content: center;
    width: 30px; height: 30px; border-radius: 50%;
    background: var(--lco-etapa-inativa); color: #fff; font-weight: 700; font-size: .95em;
}
.lshmax-co[data-passo="quadrado"] .lshmax-co-passo-num,
.lshmax-co[data-passo="quadrado"] .lshmax-co-num { border-radius: 8px; }
.lshmax-co-passo.is-atual .lshmax-co-passo-num { background: var(--lco-etapa-ativa); }
.lshmax-co-passo.is-atual .lshmax-co-passo-link { color: var(--lco-texto); }
.lshmax-co-passo.is-concluida .lshmax-co-passo-num { background: var(--lco-etapa-ok); font-size: 0; }
.lshmax-co-passo.is-concluida .lshmax-co-passo-num::before { content: "\2713"; font-size: 15px; }
.lshmax-co-passo.is-bloqueada .lshmax-co-passo-link { pointer-events: none; }
.lshmax-co-progresso { position: absolute; z-index: 0; left: 16.6%; right: 16.6%; top: 14px; height: 3px; background: var(--lco-etapa-inativa); border-radius: 3px; overflow: hidden; }
.lshmax-co-progresso i { display: block; height: 100%; width: 0; background: var(--lco-etapa-ativa); transition: width .25s ease; }
.lshmax-co[data-stepper="pontos"] .lshmax-co-passo-num { width: 14px; height: 14px; font-size: 0; margin-top: 8px; }
.lshmax-co[data-stepper="pontos"] .lshmax-co-passo.is-concluida .lshmax-co-passo-num::before { content: none; }
.lshmax-co[data-stepper="pontos"] .lshmax-co-progresso { top: 14px; }
.lshmax-co[data-stepper="numeros"] .lshmax-co-progresso { display: none; }

/* ============ Cartões de etapa ============ */
.lshmax-co-etapa,
.lshmax-co-resumo .lshmax-co-painel {
    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-co-etapa-cab { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
.lshmax-co-num {
    flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; border-radius: 50%;
    background: var(--lco-etapa-ativa); color: #fff; font-weight: 700; font-size: .85em;
}
.lshmax-co-etapa-titulo { flex: 1 1 auto; font-size: 1.1em; }
.lshmax-co-editar {
    flex: 0 0 auto; background: none; border: 0; padding: 4px 6px; cursor: pointer;
    color: var(--lco-link); font-size: .9em; font-weight: 600; text-decoration: underline;
}
.lshmax-co-bloq-msg { display: none; margin: 0; color: var(--lco-texto-suave); font-size: .9em; padding-left: 36px; }
.lshmax-co-resumo-etapa { margin: 6px 0 0 36px; color: var(--lco-texto-suave); font-size: .9em; white-space: pre-line; }
.lshmax-co-corpo { margin-top: 14px; }

.lshmax-co-etapa.is-bloqueada { background: var(--lco-bloqueada); opacity: var(--lco-bloq-opac); box-shadow: none; }
.lshmax-co-etapa.is-bloqueada .lshmax-co-num { background: var(--lco-etapa-inativa); }
.lshmax-co-etapa.is-bloqueada .lshmax-co-corpo { display: none; }
.lshmax-co-etapa.is-bloqueada .lshmax-co-bloq-msg { display: block; }
.lshmax-co-etapa.is-concluida .lshmax-co-num { background: var(--lco-etapa-ok); font-size: 0; }
.lshmax-co-etapa.is-concluida .lshmax-co-num::before { content: "\2713"; font-size: 14px; }
.lshmax-co-etapa.is-recolhida .lshmax-co-corpo { display: none; }

/* ============ Campos (WooCommerce) ============ */
.lshmax-co-campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; }
.lshmax-co .form-row { position: relative; width: auto; float: none; margin: 0 0 14px; padding: 0; }
.lshmax-co .form-row-wide,
.lshmax-co .form-row.notes,
.lshmax-co .form-row.terms { grid-column: 1 / -1; }
/* first/last ocupam 1 coluna cada, com posicionamento automático (um "last" sozinho começa na coluna 1). */
.lshmax-co .form-row-first,
.lshmax-co .form-row-last { grid-column: auto; }
.lshmax-co .form-row.hidden, .lshmax-co .form-row[style*="display: none"] { display: none !important; }
.lshmax-co[data-largura="movel"] .lshmax-co-campos { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.lshmax-co .form-row > label,
.lshmax-co label.lshmax-co-rot {
    display: block; margin: 0 0 5px; padding: 0;
    color: var(--lco-texto-suave); font-size: .84em; font-weight: 600; line-height: 1.3;
}
/* Endereço: CEP e número lado a lado, rua/complemento/bairro largos, cidade e estado juntos, país por último. */
.lshmax-co-etapa[data-etapa="2"] .lshmax-co-campos > .form-row { order: 20; }
.lshmax-co-etapa[data-etapa="2"] #billing_postcode_field,
.lshmax-co-etapa[data-etapa="2"] #shipping_postcode_field { order: 1; grid-column: auto; }
.lshmax-co-etapa[data-etapa="2"] #billing_number_field,
.lshmax-co-etapa[data-etapa="2"] #shipping_number_field { order: 2; grid-column: auto; }
.lshmax-co-etapa[data-etapa="2"] #billing_address_1_field,
.lshmax-co-etapa[data-etapa="2"] #shipping_address_1_field { order: 3; grid-column: 1 / -1; }
.lshmax-co-etapa[data-etapa="2"] #billing_address_2_field,
.lshmax-co-etapa[data-etapa="2"] #shipping_address_2_field { order: 4; grid-column: 1 / -1; }
.lshmax-co-etapa[data-etapa="2"] #billing_neighborhood_field,
.lshmax-co-etapa[data-etapa="2"] #shipping_neighborhood_field { order: 5; grid-column: 1 / -1; }
.lshmax-co-etapa[data-etapa="2"] #billing_city_field,
.lshmax-co-etapa[data-etapa="2"] #shipping_city_field { order: 6; grid-column: auto; }
.lshmax-co-etapa[data-etapa="2"] #billing_state_field,
.lshmax-co-etapa[data-etapa="2"] #shipping_state_field { order: 7; grid-column: auto; }
.lshmax-co-etapa[data-etapa="2"] #billing_country_field,
.lshmax-co-etapa[data-etapa="2"] #shipping_country_field { order: 8; grid-column: 1 / -1; }

.lshmax-co .form-row .required { color: var(--lco-erro); text-decoration: none; border: 0; }
.lshmax-co .form-row .optional { font-weight: 400; }
.lshmax-co .woocommerce-input-wrapper { display: block; width: 100%; }

.lshmax-co input.input-text,
.lshmax-co textarea,
.lshmax-co select,
.lshmax-co .select2-container .select2-selection--single,
.lshmax-co .lshmax-co-cupom-input {
    display: block; width: 100%; max-width: 100%; margin: 0;
    height: var(--lco-campo-altura); padding: 0 14px;
    background: var(--lco-campo-fundo); color: var(--lco-texto);
    border: 1px solid var(--lco-campo-borda); border-radius: var(--lco-raio-campo);
    font: inherit; font-size: 1em; line-height: normal; box-shadow: none;
    -webkit-appearance: none; appearance: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.lshmax-co textarea { height: auto; min-height: 90px; padding: 12px 14px; resize: vertical; }
.lshmax-co select {
    padding-right: 34px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 12px center;
}
.lshmax-co input.input-text:focus,
.lshmax-co textarea:focus,
.lshmax-co select:focus,
.lshmax-co .lshmax-co-cupom-input:focus,
.lshmax-co .select2-container--open .select2-selection--single {
    outline: 0; border-color: var(--lco-campo-foco); box-shadow: 0 0 0 3px color-mix(in srgb, var(--lco-campo-foco) 18%, transparent);
}
.lshmax-co .select2-container { width: 100% !important; }
.lshmax-co .select2-container .select2-selection--single { display: flex; align-items: center; }
.lshmax-co .select2-container .select2-selection__rendered { padding: 0; line-height: normal; color: var(--lco-texto); }
.lshmax-co .select2-container .select2-selection__arrow { height: 100%; right: 8px; }

.lshmax-co .woocommerce-invalid input.input-text,
.lshmax-co .woocommerce-invalid select,
.lshmax-co .woocommerce-invalid .select2-selection--single,
.lshmax-co .lshmax-co-invalido input.input-text { border-color: var(--lco-erro); }
.lshmax-co-erro { display: block; margin-top: 5px; color: var(--lco-erro); font-size: .82em; font-weight: 600; }

/* Estilos de campo */
.lshmax-co[data-campos="preenchido"] input.input-text,
.lshmax-co[data-campos="preenchido"] textarea,
.lshmax-co[data-campos="preenchido"] select,
.lshmax-co[data-campos="preenchido"] .select2-container .select2-selection--single {
    background: color-mix(in srgb, var(--lco-campo-borda) 22%, var(--lco-campo-fundo));
    border-color: transparent; border-bottom: 2px solid var(--lco-campo-borda);
}
.lshmax-co[data-campos="linha"] input.input-text,
.lshmax-co[data-campos="linha"] textarea,
.lshmax-co[data-campos="linha"] select,
.lshmax-co[data-campos="linha"] .select2-container .select2-selection--single {
    background-color: transparent; border-width: 0 0 2px; border-radius: 0; padding-left: 2px;
}

/* Rótulos flutuantes (a classe .lshmax-co-flut é adicionada pelo JS só em campos de texto) */
.lshmax-co[data-rotulos="flutuante"] .form-row.lshmax-co-flut > label {
    position: absolute; z-index: 2; left: 15px; top: calc(var(--lco-campo-altura) / 2 - .65em);
    margin: 0; padding: 0; pointer-events: none; font-size: 1em; font-weight: 400;
    transition: top .12s ease, font-size .12s ease;
}
.lshmax-co[data-rotulos="flutuante"] .form-row.lshmax-co-flut.tem-valor > label,
.lshmax-co[data-rotulos="flutuante"] .form-row.lshmax-co-flut.tem-foco > label { top: 5px; font-size: .68em; font-weight: 600; }
.lshmax-co[data-rotulos="flutuante"] .form-row.lshmax-co-flut input.input-text { padding-top: 14px; }

/* ============ Botões ============ */
.lshmax-co-btn,
.lshmax-co #place_order,
.lshmax-co .button.alt {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: var(--lco-botao-altura); padding: 0 24px; margin: 0;
    background: var(--lco-primaria); color: var(--lco-primaria-texto);
    border: 0; border-radius: var(--lco-raio-botao); cursor: pointer;
    font: inherit; font-size: 1em; font-weight: 700; line-height: 1.2; text-decoration: none;
    transition: background-color .15s ease, transform .05s ease;
}
.lshmax-co-btn:hover, .lshmax-co #place_order:hover, .lshmax-co .button.alt:hover { background: var(--lco-primaria-hover); color: var(--lco-primaria-texto); }
.lshmax-co-btn:active, .lshmax-co #place_order:active { transform: translateY(1px); }
.lshmax-co[data-btn-largo="yes"] .lshmax-co-btn,
.lshmax-co[data-btn-largo="yes"] #place_order { width: 100%; }
.lshmax-co[data-btn-caixa="yes"] .lshmax-co-btn,
.lshmax-co[data-btn-caixa="yes"] #place_order { text-transform: uppercase; letter-spacing: .04em; }
.lshmax-co-btn-sec {
    flex: 0 0 auto; min-height: var(--lco-campo-altura); padding: 0 18px; cursor: pointer;
    background: transparent; color: var(--lco-primaria); border: 1px solid var(--lco-primaria); border-radius: var(--lco-raio-botao);
    font: inherit; font-weight: 700;
}
.lshmax-co-btn-sec:hover { background: var(--lco-primaria); color: var(--lco-primaria-texto); }
.lshmax-co-voltar { background: none; border: 0; padding: 8px 4px; cursor: pointer; color: var(--lco-texto-suave); font: inherit; font-weight: 600; text-decoration: underline; }
.lshmax-co-acoes { display: flex; align-items: center; gap: 14px; margin-top: 8px; }
.lshmax-co-acoes .lshmax-co-btn { flex: 1 1 auto; }
.lshmax-co[data-btn-largo="no"] .lshmax-co-acoes .lshmax-co-btn { flex: 0 0 auto; }
.lshmax-co-acoes--fim { justify-content: flex-start; }

.lshmax-co-sub { font-size: 1em; margin: 6px 0 10px; }

/* ============ Frete (opções movidas para a etapa 2) ============ */
.lshmax-co-frete { margin: 6px 0 14px; }
.lshmax-co-frete-lista ul { display: flex; flex-direction: column; gap: 8px; }
.lshmax-co-frete-lista li {
    margin: 0; padding: 0; display: flex; align-items: stretch; gap: 0; position: relative;
    background: var(--lco-campo-fundo); border: 1px solid var(--lco-campo-borda); border-radius: var(--lco-raio-campo); cursor: pointer;
}
.lshmax-co-frete-lista li:has(input:checked) { border-color: var(--lco-etapa-ativa); box-shadow: 0 0 0 1px var(--lco-etapa-ativa) inset; }
/* O cartão inteiro é clicável: o rótulo ocupa toda a área (o espaçamento fica dentro dele) e um clique em qualquer ponto do cartão marca a opção. */
.lshmax-co-frete-lista input[type="radio"] { flex: 0 0 auto; align-self: center; margin: 0 0 0 16px !important; accent-color: var(--lco-etapa-ativa); }
.lshmax-co-frete-lista label { flex: 1 1 auto; margin: 0; padding: 13px 14px 13px 12px; cursor: pointer; font-size: .95em; line-height: 1.45; color: var(--lco-texto); font-weight: 500; }
.lshmax-co-frete-lista p, .lshmax-co-frete-lista .woocommerce-shipping-destination { margin: 8px 0 0; font-size: .85em; color: var(--lco-texto-suave); }
.lshmax-co-frete-vazio { display: none; margin: 0; padding: 12px 14px; background: var(--lco-campo-fundo); border: 1px dashed var(--lco-campo-borda); border-radius: var(--lco-raio-campo); color: var(--lco-texto-suave); font-size: .9em; }
.lshmax-co-frete[data-vazio="1"] .lshmax-co-frete-vazio { display: block; }

/* ============ Faixa do Pix ============ */
.lshmax-co-faixa-pix {
    display: flex; align-items: center; gap: 8px; margin: 4px 0 14px; padding: 10px 12px;
    background: color-mix(in srgb, var(--lco-destaque) 10%, transparent); color: var(--lco-destaque);
    border-radius: var(--lco-raio-campo); font-size: .9em; font-weight: 700;
}

/* ============ Pagamento (WooCommerce #payment) ============ */
.lshmax-co #payment { background: transparent; border: 0; border-radius: 0; padding: 0; margin: 0; }
.lshmax-co #payment ul.payment_methods,
.lshmax-co #payment .wc_payment_methods { display: flex; flex-direction: column; gap: 10px; margin: 0 0 16px; padding: 0; border: 0; list-style: none; }
.lshmax-co #payment ul.payment_methods > li,
.lshmax-co #payment .wc_payment_method {
    position: relative; margin: 0; padding: 14px 16px; list-style: none;
    background: var(--lco-campo-fundo); border: 1px solid var(--lco-campo-borda); border-radius: var(--lco-raio-campo);
}
.lshmax-co #payment ul.payment_methods > li:has(> input[type="radio"]:checked) { border-color: var(--lco-etapa-ativa); box-shadow: 0 0 0 1px var(--lco-etapa-ativa) inset; }
.lshmax-co input[type="radio"] {
    -webkit-appearance: none; appearance: none; flex: 0 0 auto; width: 18px; height: 18px; margin: 0 8px 0 0;
    border: 2px solid var(--lco-campo-borda); border-radius: 50%; background: var(--lco-campo-fundo); vertical-align: middle; cursor: pointer;
}
.lshmax-co input[type="radio"]:checked { border-color: var(--lco-etapa-ativa); background: radial-gradient(circle, var(--lco-etapa-ativa) 0 42%, transparent 46%); }
.lshmax-co input[type="checkbox"] { accent-color: var(--lco-etapa-ativa); }
.lshmax-co #payment ul.payment_methods > li > label { display: inline; margin: 0; color: var(--lco-texto); font-size: 1em; font-weight: 700; cursor: pointer; vertical-align: middle; }
.lshmax-co #payment ul.payment_methods > li > label img { vertical-align: middle; max-height: 22px; width: auto; margin-left: 8px; }
.lshmax-co #payment div.payment_box {
    margin: 12px 0 0; padding: 12px 0 0; background: transparent; color: var(--lco-texto);
    border: 0; border-top: 1px solid var(--lco-card-borda); border-radius: 0; font-size: .95em;
}
.lshmax-co #payment div.payment_box::before, .lshmax-co #payment div.payment_box::after { display: none !important; }
.lshmax-co #payment div.payment_box p:last-child { margin-bottom: 0; }
.lshmax-co #payment .place-order { padding: 0; margin: 0; }
.lshmax-co .woocommerce-terms-and-conditions-wrapper { margin-bottom: 12px; font-size: .88em; color: var(--lco-texto-suave); }
.lshmax-co .woocommerce-privacy-policy-text { font-size: .82em; color: var(--lco-texto-suave); margin-bottom: 12px; }
.lshmax-co #payment .woocommerce-notice, .lshmax-co #payment .woocommerce-info { margin: 0 0 12px; }

/* ============ Resumo do pedido ============ */
.lshmax-co-resumo-titulo { font-size: 1.1em; margin-bottom: 12px; }
.lshmax-co-barra { display: none; }
.lshmax-co[data-largura="movel"][data-barra="yes"] .lshmax-co-barra {
    display: flex; align-items: center; gap: 10px; width: 100%; padding: 14px 16px; cursor: pointer;
    background: var(--lco-barra); color: var(--lco-texto); border: 0; border-radius: var(--lco-raio-card); text-align: left;
}
.lshmax-co-barra-tit { flex: 1 1 auto; display: flex; flex-direction: column; font-size: .8em; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.lshmax-co-barra-itens { font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--lco-texto-suave); font-size: 1em; }
.lshmax-co-barra-total { font-weight: 800; font-size: 1.1em; }
.lshmax-co-seta { transition: transform .2s ease; flex: 0 0 auto; }
.lshmax-co-barra[aria-expanded="true"] .lshmax-co-seta { transform: rotate(180deg); }
.lshmax-co[data-largura="movel"][data-barra="yes"] .lshmax-co-painel { margin-top: 8px; }
.lshmax-co[data-largura="movel"][data-barra="yes"] .lshmax-co-resumo:not(.is-aberto) .lshmax-co-painel { display: none; }
.lshmax-co[data-largura="movel"] .lshmax-co-resumo-titulo { display: none; }

.lshmax-co table.shop_table,
.lshmax-co .woocommerce-checkout-review-order-table { width: 100%; margin: 0; border: 0; border-collapse: collapse; background: transparent; }
.lshmax-co .woocommerce-checkout-review-order-table thead { display: none; }
/* Linha de produto do resumo: grade FIXA (miniatura | nome | total, e abaixo do nome quantidade + remover).
   O nome nunca empurra os outros elementos: ele ocupa no máximo N linhas (--lco-nome-linhas) e é cortado com "…",
   então todas as linhas têm o mesmo alinhamento e a mesma cara, seja qual for o tamanho do título. */
.lshmax-co .woocommerce-checkout-review-order-table tr.cart_item {
    display: grid;
    grid-template-columns: var(--lco-mini) minmax(0, 1fr) auto;
    grid-template-areas: "thumb nome total" "thumb var total" "thumb acoes total";
    column-gap: 12px;
    row-gap: 4px;
    align-items: start;
    padding: 14px 0;
    border-bottom: 1px solid var(--lco-card-borda);
}
.lshmax-co .woocommerce-checkout-review-order-table tr.cart_item:not(:has(.lshmax-co-thumb)) {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "nome total" "var total" "acoes total";
}
.lshmax-co .woocommerce-checkout-review-order-table tr.cart_item td { display: block; padding: 0; border: 0; background: none; }
.lshmax-co .woocommerce-checkout-review-order-table td.product-name { display: contents !important; font-weight: 600; }
.lshmax-co .woocommerce-checkout-review-order-table td.product-total { grid-area: total; align-self: start; font-weight: 700; white-space: nowrap; text-align: right; line-height: 1.35; }
.lshmax-co .woocommerce-checkout-review-order-table .lshmax-co-thumb { grid-area: thumb; grid-row: 1 / span 3; width: var(--lco-mini); height: var(--lco-mini); border: 1px solid var(--lco-card-borda); border-radius: var(--lco-raio-campo); overflow: hidden; background: #fff; }
.lshmax-co .lshmax-co-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lshmax-co .lshmax-co-nome {
    grid-area: nome;
    min-width: 0;
    font-weight: 600;
    line-height: 1.35;
    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;
}
.lshmax-co .lshmax-co-nome a { color: inherit; text-decoration: none; }
.lshmax-co .woocommerce-checkout-review-order-table .product-quantity { font-weight: 500; color: var(--lco-texto-suave); }
.lshmax-co .woocommerce-checkout-review-order-table dl.variation { grid-area: var; margin: 0; font-size: .82em; font-weight: 400; color: var(--lco-texto-suave); }
.lshmax-co .woocommerce-checkout-review-order-table dl.variation dt, .lshmax-co .woocommerce-checkout-review-order-table dl.variation dd { display: inline; margin: 0; }
.lshmax-co .woocommerce-checkout-review-order-table dl.variation p { display: inline; margin: 0; }
.lshmax-co .woocommerce-checkout-review-order-table dl.variation:empty { display: none; }
.lshmax-co-acoes-item { grid-area: acoes; display: flex; align-items: center; gap: 10px; min-height: 32px; margin-top: 2px; }
.lshmax-co-qtd-wrap { display: inline-flex; }
.lshmax-co select.lshmax-co-qtd { width: auto; height: 32px; padding: 0 28px 0 10px; font-size: .9em; border-radius: var(--lco-raio-campo); }
.lshmax-co .lshmax-co-remover {
    display: inline-flex; align-items: center; gap: 5px;
    height: 32px; padding: 0 8px; margin: 0;
    border: 0; background: none; box-shadow: none; cursor: pointer;
    color: var(--lco-texto-suave); font-size: .85em; font-weight: 600; line-height: 1;
    border-radius: var(--lco-raio-campo);
}
.lshmax-co .lshmax-co-remover:hover, .lshmax-co .lshmax-co-remover:focus-visible { color: var(--lco-erro); background: rgba(220, 38, 38, .08); }
.lshmax-co .lshmax-co-remover:disabled { opacity: .5; cursor: default; }
/* Celular estreito: só o ícone de lixeira (o texto some), para a linha caber sem quebrar. */
.lshmax-co[data-largura="movel"] .lshmax-co-remover span { display: none; }
.lshmax-co .woocommerce-checkout-review-order-table tfoot tr { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 8px 0; }
.lshmax-co .woocommerce-checkout-review-order-table tfoot th,
.lshmax-co .woocommerce-checkout-review-order-table tfoot td { display: block; padding: 0; border: 0; background: none; font-weight: 500; color: var(--lco-texto-suave); text-align: right; }
.lshmax-co .woocommerce-checkout-review-order-table tfoot th { text-align: left; }
.lshmax-co .woocommerce-checkout-review-order-table tr.order-total { margin-top: 4px; padding-top: 12px; border-top: 1px solid var(--lco-card-borda); }
.lshmax-co .woocommerce-checkout-review-order-table tr.order-total th,
.lshmax-co .woocommerce-checkout-review-order-table tr.order-total td { color: var(--lco-destaque); font-weight: 800; font-size: 1.15em; }
.lshmax-co .woocommerce-checkout-review-order-table tr.cart-discount td { color: var(--lco-destaque); }
.lshmax-co .woocommerce-remove-coupon { color: var(--lco-link); font-size: .85em; }
.lshmax-co .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td { font-size: .88em; }

/* Cupom */
.lshmax-co-cupom { margin-top: 12px; border-top: 1px solid var(--lco-card-borda); padding-top: 4px; }
.lshmax-co-cupom-toggle {
    display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 10px 0; cursor: pointer;
    background: none; border: 0; color: var(--lco-link); font: inherit; font-weight: 600; text-align: left;
}
.lshmax-co-cupom-toggle[aria-expanded="true"] .lshmax-co-seta { transform: rotate(180deg); }
.lshmax-co-cupom-campo { display: flex; gap: 8px; padding-bottom: 6px; }
.lshmax-co-cupom-input { flex: 1 1 auto; min-width: 0; }
.lshmax-co-cupom-aviso:empty { display: none; }
.lshmax-co-cupom-aviso { margin-top: 6px; font-size: .88em; }
.lshmax-co-cupom-aviso ul, .lshmax-co-cupom-aviso .woocommerce-error, .lshmax-co-cupom-aviso .woocommerce-message { margin: 0; padding: 0; list-style: none; background: none; border: 0; box-shadow: none; }
.lshmax-co-cupom-aviso .woocommerce-error li { color: var(--lco-erro); font-weight: 600; }
.lshmax-co-cupom-aviso .woocommerce-message { color: var(--lco-destaque); font-weight: 600; }

/* ============ Oferta extra ============ */
.lshmax-co-bump-caixa:empty { display: none; }
.lshmax-co-bump {
    margin: 0 0 14px; padding: 14px; background: var(--lco-bump-fundo);
    border: 2px dashed var(--lco-bump-borda); border-radius: var(--lco-raio-card);
}
.lshmax-co-bump-titulo { margin-bottom: 8px; font-size: .78em; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--lco-texto); }
.lshmax-co-bump-corpo { display: flex; align-items: center; gap: 12px; }
.lshmax-co-bump-img { flex: 0 0 auto; width: 64px; height: 64px; border-radius: var(--lco-raio-campo); overflow: hidden; background: #fff; }
.lshmax-co-bump-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lshmax-co-bump-info { display: flex; flex-direction: column; gap: 4px; min-width: 0; font-size: .92em; }
.lshmax-co-bump-precos del { color: var(--lco-texto-suave); }
.lshmax-co-bump-precos strong { color: var(--lco-destaque); font-size: 1.05em; }
.lshmax-co-bump-check { display: flex; align-items: center; gap: 10px; margin: 12px 0 0; padding: 10px 12px; background: var(--lco-card); border: 1px solid var(--lco-bump-borda); border-radius: var(--lco-raio-campo); cursor: pointer; font-weight: 700; font-size: .92em; color: var(--lco-texto); }
.lshmax-co-bump-check input { width: 18px; height: 18px; margin: 0; accent-color: var(--lco-etapa-ativa); }
.lshmax-co-bump.is-marcado .lshmax-co-bump-check { border-color: var(--lco-destaque); }

/* ============ Rodapé ============ */
.lshmax-co-rodape { margin-top: auto; background: var(--lco-rod-fundo); color: var(--lco-rod-texto); border-top: 1px solid var(--lco-card-borda); }
.lshmax-co-rodape-in { max-width: var(--lco-largura); margin: 0 auto; padding: 24px 16px; text-align: center; font-size: .88em; }
.lshmax-co-rodape-titulo { margin-bottom: 10px; font-weight: 700; color: var(--lco-texto); }
.lshmax-co-selos { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 14px; }
.lshmax-co-selo { padding: 5px 12px; border: 1px solid var(--lco-card-borda); border-radius: 999px; font-size: .9em; font-weight: 600; color: var(--lco-rod-texto); background: var(--lco-card); }
.lshmax-co-rodape-texto, .lshmax-co-rodape-doc { margin: 0 0 4px; }
.lshmax-co-rodape-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; margin-top: 8px; }
.lshmax-co-rodape-links a { color: var(--lco-rod-texto); }

/* ============ Avisos do WooCommerce dentro do checkout ============ */
.lshmax-co .woocommerce-error,
.lshmax-co .woocommerce-message,
.lshmax-co .woocommerce-info,
.lshmax-co .woocommerce-NoticeGroup .woocommerce-error {
    margin: 0 0 var(--lco-gap); padding: 12px 16px 12px 18px; list-style: none; border: 0; border-left: 4px solid var(--lco-etapa-ativa);
    background: var(--lco-card); color: var(--lco-texto); border-radius: var(--lco-raio-campo); box-shadow: var(--lco-sombra);
}
.lshmax-co .woocommerce-error,
.lshmax-co .woocommerce-NoticeGroup .woocommerce-error { border-left-color: var(--lco-erro); }
.lshmax-co .woocommerce-message { border-left-color: var(--lco-destaque); }
.lshmax-co .woocommerce-error::before, .lshmax-co .woocommerce-message::before, .lshmax-co .woocommerce-info::before { display: none; }
.lshmax-co .woocommerce-error li { margin: 2px 0; }
.lshmax-co .woocommerce-NoticeGroup { grid-column: 1 / -1; }

/* Bloqueio do WooCommerce durante o cálculo (blockUI) */
.lshmax-co .blockUI.blockOverlay { border-radius: var(--lco-raio-card); }

@media (prefers-reduced-motion: reduce) {
    .lshmax-co *, .lshmax-co *::before, .lshmax-co *::after { transition: none !important; animation: none !important; }
}

/* v2.2.1 — respiro com a Poppins (mais larga e alta que a fonte do sistema). */
.lshmax-co { line-height: 1.6; }
.lshmax-co .form-row label, .lshmax-co label { line-height: 1.45; }
.lshmax-co .woocommerce-privacy-policy-text p, .lshmax-co .woocommerce-terms-and-conditions-wrapper { font-size: .88em; line-height: 1.65; }
.lshmax-co-etapa-cab { gap: 12px; margin-bottom: 4px; }
.lshmax-co-resumo-etapa { line-height: 1.65; }
.lshmax-co-bump-texto, .lshmax-co-bump-titulo { line-height: 1.5; }

/* v2.2.2 — Resumo do pedido: o seletor de quantidade fica ABAIXO da miniatura (mesma coluna); "Remover" fica embaixo do nome.
   Sem miniatura, as ações continuam juntas embaixo do nome (regra original). */
.lshmax-co .woocommerce-checkout-review-order-table tr.cart_item:has(.lshmax-co-thumb) {
    grid-template-columns: max(var(--lco-mini), 68px) minmax(0, 1fr) auto;
    grid-template-areas: "thumb nome total" "thumb var total" "qtd rem total";
    row-gap: 8px;
}
.lshmax-co .woocommerce-checkout-review-order-table tr.cart_item:has(.lshmax-co-thumb) .lshmax-co-thumb { grid-row: 1 / span 2; }
.lshmax-co .woocommerce-checkout-review-order-table tr.cart_item:has(.lshmax-co-thumb) .lshmax-co-acoes-item { display: contents; }
.lshmax-co .woocommerce-checkout-review-order-table tr.cart_item:has(.lshmax-co-thumb) .lshmax-co-qtd-wrap { grid-area: qtd; display: flex; width: 100%; }
.lshmax-co .woocommerce-checkout-review-order-table tr.cart_item:has(.lshmax-co-thumb) select.lshmax-co-qtd { width: 100%; min-width: 0; padding: 0 22px 0 10px; }
.lshmax-co .woocommerce-checkout-review-order-table tr.cart_item:has(.lshmax-co-thumb) .lshmax-co-remover { grid-area: rem; justify-self: start; align-self: center; }
/* Quantidade não editável ("× N"): fica embaixo da miniatura também */
.lshmax-co .woocommerce-checkout-review-order-table tr.cart_item:has(.lshmax-co-thumb) .lshmax-co-acoes-item > .product-quantity { grid-area: qtd; align-self: center; }

/* v2.2.2 — Frete com uma única opção: aparece como cartão já selecionado (antes ficava só o texto, sem cara de opção). */
.lshmax-co-frete-lista li:has(> input[type="hidden"]) { border-color: var(--lco-etapa-ativa); box-shadow: 0 0 0 1px var(--lco-etapa-ativa) inset; }
.lshmax-co-frete-lista li:has(> input[type="hidden"]) label { padding-left: 16px; }
.lshmax-co-frete-lista li:has(> input[type="hidden"]) label::before {
    content: ""; display: inline-block; width: 18px; height: 18px; margin-right: 10px; vertical-align: -3px;
    border: 5px solid var(--lco-etapa-ativa); border-radius: 50%; box-sizing: border-box; background: #fff;
}

/* ============ Etapas da compra: 1 Voltar · 2 Carrinho · 3 Finalizar · 4 Concluído (carrinho e checkout) ============ */
.lshmax-co-ec { display: none; container-type: inline-size; max-width: 760px; margin: 0 auto 20px; }
.lshmax-co[data-etapas="yes"] .lshmax-co-ec,
.lshmax-co--previa .lshmax-co-ec { display: block; }
.lshmax-co[data-etapas="no"] .lshmax-co-ec { display: none; }
/* Com o indicador da compra ligado, o indicador interno do checkout (Dados, Entrega, Pagamento) sai. */
.lshmax-co[data-etapas="yes"] .lshmax-co-stepper { display: none !important; }
.lshmax-co-ec-lista { display: flex; margin: 0; padding: 0; list-style: none; counter-reset: lshmax-ec; }
.lshmax-co-ec-passo { position: relative; flex: 1 1 0; min-width: 0; margin: 0; text-align: center; counter-increment: lshmax-ec; }
/* Linha que liga a etapa anterior a esta (do centro de uma ao centro da outra). */
.lshmax-co-ec-passo + .lshmax-co-ec-passo::before { content: ""; position: absolute; z-index: 0; top: 14px; right: 50%; width: 100%; height: 3px; border-radius: 3px; background: var(--lco-etapa-inativa); }
.lshmax-co-ec-passo.is-feita::before,
.lshmax-co-ec-passo.is-atual::before { background: var(--lco-etapa-ok); }
.lshmax-co-ec-link,
.lshmax-co a.lshmax-co-ec-link {
    position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 0 4px;
    color: var(--lco-texto-suave); font-size: .82em; font-weight: 600; line-height: 1.25; text-decoration: none;
}
.lshmax-co a.lshmax-co-ec-link:hover { color: var(--lco-texto); }
.lshmax-co-ec-passo.is-atual .lshmax-co-ec-link { color: var(--lco-texto); }
.lshmax-co-ec-rotulo { text-wrap: balance; overflow-wrap: anywhere; }
.lshmax-co-ec-num {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
    width: 30px; height: 30px; border-radius: 50%; background: var(--lco-etapa-inativa); color: #fff; font-size: .95em; font-weight: 700; line-height: 1;
}
.lshmax-co-ec-num::before { content: counter(lshmax-ec); }
.lshmax-co[data-numeracao="letras"] .lshmax-co-ec-num::before { content: counter(lshmax-ec, lower-alpha); }
.lshmax-co[data-numeracao="romanos"] .lshmax-co-ec-num::before { content: counter(lshmax-ec, upper-roman); }
.lshmax-co-ec-passo.is-feita .lshmax-co-ec-num { background: var(--lco-etapa-ok); }
.lshmax-co-ec-passo.is-atual .lshmax-co-ec-num { background: var(--lco-etapa-ativa); }
.lshmax-co[data-passo="quadrado"] .lshmax-co-ec-num { border-radius: 8px; }
.lshmax-co[data-stepper="pontos"] .lshmax-co-ec-num { width: 14px; height: 14px; margin-top: 8px; font-size: 0; }
.lshmax-co[data-stepper="pontos"] .lshmax-co-ec-num::before { content: none; }
.lshmax-co[data-stepper="pontos"] .lshmax-co-ec-passo + .lshmax-co-ec-passo::before { top: 14px; }
.lshmax-co[data-stepper="numeros"] .lshmax-co-ec-passo + .lshmax-co-ec-passo::before { display: none; }
/* Responsivo: a largura própria do indicador decide (vale para celular, tablet e para a prévia do painel). */
@container (max-width: 520px) {
    .lshmax-co-ec-link, .lshmax-co a.lshmax-co-ec-link { font-size: .74em; gap: 5px; padding: 0 2px; }
    .lshmax-co-ec-num { width: 26px; height: 26px; font-size: .85em; }
    .lshmax-co-ec-passo + .lshmax-co-ec-passo::before { top: 12px; }
}
@container (max-width: 360px) {
    .lshmax-co-ec-passo:not(.is-atual) .lshmax-co-ec-rotulo { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .lshmax-co-ec-num { width: 28px; height: 28px; }
    .lshmax-co-ec-passo + .lshmax-co-ec-passo::before { top: 13px; }
}

/* ============ Celular: mais largura útil para o formulário do cartão ============
   Antes, quadro da etapa (20px) + caixa da forma de pagamento (16px) + moldura do gateway (2px de borda, 2px de margem, ~11px de recuo)
   deixavam só ~260px para os campos (CVV, validade e parcelamento ficavam espremidos). Aqui os recuos laterais encolhem e o centro cresce. */
.lshmax-co[data-largura="movel"] { --lco-pad: 14px; }
.lshmax-co[data-largura="movel"] .lshmax-co-container { padding-left: 8px; padding-right: 8px; }
.lshmax-co[data-largura="movel"] #payment ul.payment_methods > li,
.lshmax-co[data-largura="movel"] #payment .wc_payment_method { padding-left: 10px; padding-right: 10px; }
.lshmax-co[data-largura="movel"] #payment div.payment_box fieldset,
.lshmax-co[data-largura="movel"] #payment div.payment_box .wc-credit-card-form,
.lshmax-co[data-largura="movel"] #payment div.payment_box .wc-payment-form { margin-left: 0; margin-right: 0; padding-left: 6px; padding-right: 6px; border-width: 1px; }
.lshmax-co[data-largura="movel"] #payment div.payment_box input.input-text,
.lshmax-co[data-largura="movel"] #payment div.payment_box input[type="text"],
.lshmax-co[data-largura="movel"] #payment div.payment_box input[type="tel"],
.lshmax-co[data-largura="movel"] #payment div.payment_box select { padding-left: 8px; padding-right: 8px; font-size: .92em; }
/* Linha "Validade (Mês) / Validade (Ano) / CVV" (gateway e-Rede), em qualquer largura: os três campos começam no mesmo ponto e os rótulos ocupam a mesma altura,
   senão "CVV" (uma linha) fica mais alto que os outros (duas linhas). */
.lshmax-co #payment .erede-field { vertical-align: top; }
.lshmax-co #payment .erede-field:has([name$="[cvv]"]) label,
.lshmax-co #payment .erede-field:has([name$="[validade_mes]"]) label,
.lshmax-co #payment .erede-field:has([name$="[validade_ano]"]) label { display: block; min-height: 2.7em; line-height: 1.3; }
.lshmax-co #payment [name$="[cvv]"]::placeholder { font-size: .8em; }

/* Termos e condições no modo "sem caixa": o aceite vai marcado (e escondido) e só a frase aparece. */
.lshmax-co[data-termos="implicito"] .woocommerce-terms-and-conditions-wrapper input#terms,
.lshmax-co[data-termos="implicito"] .woocommerce-terms-and-conditions-wrapper .form-row.validate-required abbr.required { display: none; }
.lshmax-co[data-termos="implicito"] .woocommerce-terms-and-conditions-wrapper .form-row.validate-required label { padding-left: 0; cursor: default; }
