/* =====================================================================
   RESET ESCOPADO — o checkout fluido NAO depende do CSS de nenhum tema.
   Tudo dentro de .fb-cf-grid e estilizado pelo proprio plugin. Aqui
   neutralizamos heranças indesejadas (uppercase, list-style, fontes).
   ===================================================================== */
:root { --fb-cf-radius:0; --fb-cf-accent:#4B1D8F; --fb-cf-accent-dark:color-mix(in srgb, var(--fb-cf-accent) 80%, #000); }
.fb-cf-grid, .fb-cf-grid * { box-sizing:border-box; }
.fb-cf-grid {
  font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size:14px; line-height:1.45; color:#1f2430; text-align:left;
}
/* Neutraliza text-transform que temas costumam impor (ex.: Elessi deixa th em UPPERCASE) */
.fb-cf-grid h1, .fb-cf-grid h2, .fb-cf-grid h3,
.fb-cf-grid th, .fb-cf-grid td, .fb-cf-grid label,
.fb-cf-grid a, .fb-cf-grid span, .fb-cf-grid p, .fb-cf-grid li {
  text-transform:none !important; letter-spacing:normal;
}
.fb-cf-grid ul, .fb-cf-grid ol { list-style:none !important; margin:0; padding:0; }
.fb-cf-grid table { width:100%; border-collapse:collapse; margin:0; }
.fb-cf-grid a { color:var(--fb-cf-accent); text-decoration:none; }
.fb-cf-grid img { max-width:100%; height:auto; }
/* cursor pointer em todos os controles clicaveis (checkbox, radio e seus labels) */
.fb-cf-grid input[type="checkbox"],
.fb-cf-grid input[type="radio"],
.fb-cf-grid input[type="checkbox"] + label,
.fb-cf-grid input[type="radio"] + label,
.fb-cf-grid label:has(input[type="checkbox"]),
.fb-cf-grid label:has(input[type="radio"]),
.fb-cf-grid .woocommerce-shipping-methods label,
.fb-cf-grid button { cursor:pointer; }

/* ---- Pagina em branco do checkout (sem header/footer do tema) ---- */
body.fb-cf-page { margin:0; padding:0; background:#f4f5f7; }
.fb-cf-topbar { background:#fff; border-bottom:1px solid #ececec; }
/* Conteudo da topbar alinhado a MESMA largura/centro do checkout (.fb-cf-grid) */
.fb-cf-topbar-inner {
  display:flex; align-items:center; justify-content:space-between;
  max-width:1232px; margin:0 auto; padding:14px 16px; box-sizing:border-box;
}
.fb-cf-topbar .fb-cf-logo { display:inline-flex; align-items:center; font-weight:700; font-size:18px; color:#1f2430; text-decoration:none; }
.fb-cf-topbar .fb-cf-logo-img { max-height:40px; width:auto; display:block; }
.fb-cf-secure { display:inline-flex; align-items:center; gap:6px; font-size:13px; color:#1f9d55; font-weight:600; }
.fb-cf-page-main { padding:0 0 40px; }

.fb-cf-urgency { text-align:center; padding:10px 16px; font-size:14px; }
.fb-cf-urgency-timer { font-weight:700; margin-left:8px; }

/* ---- Mensagens de erro/aviso do checkout: estilo proprio, amigavel ---- */
.fb-cf-page .woocommerce-NoticeGroup,
.fb-cf-page .woocommerce-error,
.fb-cf-page .woocommerce-message,
.fb-cf-block-payment .woocommerce-error,
.fb-cf-block-payment .woocommerce-NoticeGroup { list-style:none; margin:0 0 14px; padding:0; }
.fb-cf-page .woocommerce-error,
.fb-cf-block-payment .woocommerce-error {
  background:#fff3f3 !important; border:1px solid #ffd3d3 !important; border-left:4px solid #e25 !important;
  border-radius:0 !important; padding:14px 16px !important; font-size:14px !important; line-height:1.5 !important;
  display:flex; align-items:flex-start; gap:10px;
}
/* forca a cor do texto (o tema poe branco sobre fundo vermelho) */
.fb-cf-page .woocommerce-error,
.fb-cf-page .woocommerce-error *,
.fb-cf-block-payment .woocommerce-error,
.fb-cf-block-payment .woocommerce-error * { color:#b3261e !important; text-shadow:none !important; }
.fb-cf-page .woocommerce-error li,
.fb-cf-block-payment .woocommerce-error li { list-style:none !important; margin:0 !important; padding:2px 0 !important; background:none !important; }
.fb-cf-page .woocommerce-error li strong,
.fb-cf-block-payment .woocommerce-error li strong { font-weight:600 !important; }
/* esconde o icone que o tema injeta no <li> interno (evita icone duplicado) */
.fb-cf-page .woocommerce-error li::before,
.fb-cf-block-payment .woocommerce-error li::before { content:none !important; display:none !important; }
/* icone de alerta proprio (unico) no inicio da caixa */
.fb-cf-page .woocommerce-error::before,
.fb-cf-block-payment .woocommerce-error::before {
  content:"⚠" !important; color:#e25 !important; font-size:18px !important; line-height:1.4 !important;
  position:static !important; background:none !important; margin:0 !important; padding:0 !important;
  flex:0 0 auto; width:auto !important; height:auto !important;
}
.fb-cf-page .woocommerce-message {
  background:#f0fbf4; border:1px solid #c8efd6; border-left:4px solid #1f9d55;
  border-radius:0; padding:12px 14px; color:#157347; font-size:13px;
}
/* a faixa de erro larga no topo (quando aparece) fica mais discreta/centralizada */
body.fb-cf-page > .woocommerce-error,
body.fb-cf-page > .woocommerce-NoticeGroup {
  max-width:1400px; margin:16px auto; padding-left:16px; padding-right:16px;
}

/* Layout: coluna cliente (Identifique-se + Entrega) | Pagamento | Resumo.
   Resumo com largura flexivel (minmax) — maior no desktop, se adapta em telas
   menores. Da mais espaco ao texto do frete sem px rigido. */
.fb-cf-grid {
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr)); /* 3 colunas iguais, como na Yampi */
  gap:24px; align-items:start;
  max-width:1232px; margin:28px auto; padding:0 16px; /* 1200px de conteudo, mesma largura do topo */
}

.fb-cf-col-customer { display:flex; flex-direction:column; gap:16px; }
.fb-cf-col-payment { display:flex; flex-direction:column; gap:16px; }

.fb-cf-block { background:#fff; border:1px solid #eee; border-radius:0; padding:20px; }
.fb-cf-block h2 { display:flex; align-items:center; gap:8px; font-size:16px; margin:0 0 16px; }
.fb-cf-step { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; background:var(--fb-cf-accent); color:#fff; font-size:13px; flex:0 0 auto; }

/* ---- Campos do Woo: blocos de identidade/entrega viram grid de 2 colunas ----
   O Woo ja marca cada form-row como first/last (meia largura) ou wide (largura total).
   Usamos isso para compactar: first/last ocupam 1 coluna, wide ocupa as 2. */
/* Grid de 12 colunas: permite 100% (12), 50% (6), 75% (9) e 25% (3). */
.fb-cf-block-identify .fb-cf-fields,
.fb-cf-block-shipping .fb-cf-fields {
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap:10px 12px;
  align-content:start;
}


/* form-row: reseta o float/largura do Woo e participa do grid */
.fb-cf-block .form-row {
  width:auto !important; float:none !important; clear:none !important;
  margin:0 !important; padding:0; min-width:0; grid-column:span 12;
}
/* Larguras controladas pelo template (campos de billing) */
.fb-cf-block .fb-cf-full { grid-column:span 12; }
.fb-cf-block .fb-cf-half { grid-column:span 6; }
.fb-cf-block .fb-cf-w75  { grid-column:span 9; }
.fb-cf-block .fb-cf-w25  { grid-column:span 3; }
/* Campos de shipping: as classes first/last/wide do Woo sao inconsistentes,
   entao posicionamos por ID num grid de 12 colunas — mesmo layout do billing
   (Nome+Sobrenome, Endereco 75% + Numero 25%, Cidade+Estado). */
.fb-cf-block .woocommerce-shipping-fields { grid-column:1 / -1; }
.fb-cf-block .woocommerce-shipping-fields__field-wrapper {
  display:grid; grid-template-columns:repeat(12, 1fr); gap:10px 12px; width:100%;
}
.fb-cf-block .woocommerce-shipping-fields .form-row {
  width:auto !important; float:none !important; margin:0 !important; grid-column:span 12;
}
/* posicionamento por ID (mesma logica do billing) + ORDEM (CEP primeiro).
   Usamos 'order' porque o Woo entrega os campos numa ordem fixa diferente. */
.fb-cf-block #shipping_postcode_field     { grid-column:span 12; order:1; }
.fb-cf-block #shipping_first_name_field   { grid-column:span 6;  order:2; }
.fb-cf-block #shipping_last_name_field    { grid-column:span 6;  order:3; }
.fb-cf-block #shipping_company_field      { grid-column:span 12; order:4; }
.fb-cf-block #shipping_address_1_field    { grid-column:span 9;  order:5; }
.fb-cf-block #shipping_number_field       { grid-column:span 3;  order:6; }
.fb-cf-block #shipping_address_2_field    { grid-column:span 12; order:7; }
.fb-cf-block #shipping_neighborhood_field { grid-column:span 12; order:8; }
.fb-cf-block #shipping_city_field         { grid-column:span 6;  order:9; }
.fb-cf-block #shipping_state_field        { grid-column:span 6;  order:10; }
.fb-cf-block #shipping_country_field      { grid-column:span 12; order:11; }

/* Elementos que sempre ocupam largura total */
.fb-cf-block #ship-to-different-address,
.fb-cf-block #order_comments_field,
.fb-cf-block .woocommerce-shipping-fields,
.fb-cf-block .woocommerce-additional-fields { grid-column:1 / -1; }

.fb-cf-block .form-row input,
.fb-cf-block .form-row select,
.fb-cf-block .form-row textarea,
.fb-cf-block .select2-container { width:100% !important; box-sizing:border-box; }

/* ====== FLOATING LABELS ======
   O label começa DENTRO do input (como placeholder) e sobe ao focar/preencher.
   Estrutura Woo: .form-row > label + .woocommerce-input-wrapper > input */
.fb-cf-block-identify .form-row,
.fb-cf-block-shipping .form-row { position:relative; }

/* label flutuante: comeca centralizado dentro do input (como placeholder) */
.fb-cf-block-identify .form-row > label,
.fb-cf-block-shipping .form-row > label {
  position:absolute; left:16px; top:26px; transform:translateY(-50%);
  margin:0; padding:0 5px; background:transparent; color:#9098a3;
  font-size:14px; line-height:1; pointer-events:none;
  transition:top .15s ease, font-size .15s ease, color .15s ease; white-space:nowrap;
  max-width:calc(100% - 30px); overflow:hidden; text-overflow:ellipsis; z-index:2;
}
/* esconde o asterisco de obrigatorio dentro do label flutuante */
.fb-cf-block-identify .form-row > label .required,
.fb-cf-block-shipping .form-row > label .required { display:none; }

/* input/select com altura fixa; texto alinhado embaixo (deixa espaco pro label em cima) */
.fb-cf-block-identify .form-row input.input-text,
.fb-cf-block-shipping .form-row input.input-text,
.fb-cf-block-identify .form-row select,
.fb-cf-block-shipping .form-row select {
  height:52px; padding-top:8px; padding-bottom:8px;
}

/* label SOBE ate a borda superior (montado na linha da borda) ao focar OU preencher.
   Fundo branco "corta" a borda, e o texto do input nao colide (label fica ACIMA, fora). */
.fb-cf-block-identify .form-row.fb-cf-filled > label,
.fb-cf-block-shipping .form-row.fb-cf-filled > label,
.fb-cf-block-identify .form-row:focus-within > label,
.fb-cf-block-shipping .form-row:focus-within > label {
  top:0; font-size:11px; color:var(--fb-cf-accent); background:#fff;
}
/* valido: label na borda fica verde */
.fb-cf-block-identify .form-row.fb-cf-valid.fb-cf-filled > label,
.fb-cf-block-shipping .form-row.fb-cf-valid.fb-cf-filled > label { color:#1f9d55; }
/* invalido: vermelho */
.fb-cf-block-identify .form-row.fb-cf-invalid > label,
.fb-cf-block-shipping .form-row.fb-cf-invalid > label { color:#e25; }

/* Selects com o MESMO estilo dos inputs (borda arredondada, mesma altura/padding) */
.fb-cf-block .form-row select {
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  border:1px solid #d9d9d9; border-radius:var(--fb-cf-radius);
  padding:10px 36px 10px 16px; font-size:14px; background:#fff; line-height:1.4;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%23666' stroke-width='1.5'/></svg>");
  background-repeat:no-repeat; background-position:right 14px center;
}
/* Inputs/textarea com a mesma pegada visual */
.fb-cf-block .form-row input.input-text,
.fb-cf-block .form-row textarea {
  border:1px solid #d9d9d9; border-radius:var(--fb-cf-radius); padding:10px 16px; font-size:14px;
}
.fb-cf-block .form-row textarea { border-radius:var(--fb-cf-radius); }

/* ---- UX FLUIDA: validacao inline (verde/vermelho + check) ---- */
.fb-cf-block .form-row { position:relative; }
/* campo valido: borda verde + check */
.fb-cf-block .form-row.fb-cf-valid input.input-text,
.fb-cf-block .form-row.fb-cf-valid select { border-color:#1f9d55 !important; }
/* check verde APENAS em inputs de texto (selects ficam so com borda verde,
   pois a setinha do dropdown ocuparia o mesmo canto). Centralizado no input. */
.fb-cf-block .form-row.fb-cf-valid:not(:has(select))::after {
  content:""; position:absolute; right:14px; top:50%; transform:translateY(-50%);
  width:16px; height:16px;
  background:no-repeat center/contain url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><circle cx='8' cy='8' r='8' fill='%231f9d55'/><path d='M4.5 8.2l2.2 2.2 4.8-4.8' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  pointer-events:none;
}

/* campo invalido: borda vermelha + mensagem */
.fb-cf-block .form-row.fb-cf-invalid input.input-text,
.fb-cf-block .form-row.fb-cf-invalid select { border-color:#e25 !important; }
.fb-cf-block .fb-cf-error { display:block; color:#e25; font-size:12px; margin-top:4px; }

/* ---- Secao concluida: check verde no titulo; secao ativa em destaque ---- */
.fb-cf-block.fb-cf-section-done > h2 .fb-cf-step { background:#1f9d55; }
.fb-cf-block.fb-cf-section-done > h2::after {
  content:""; width:18px; height:18px; margin-left:auto;
  background:no-repeat center/contain url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><circle cx='8' cy='8' r='8' fill='%231f9d55'/><path d='M4.5 8.2l2.2 2.2 4.8-4.8' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}
.fb-cf-block-identify > h2, .fb-cf-block-shipping > h2 { width:100%; }

/* ---- Pulse no total do resumo quando muda ---- */
@keyframes fbCfPulse {
  0% { transform:scale(1); color:#1f9d55; }
  35% { transform:scale(1.12); color:#15803d; }
  100% { transform:scale(1); color:#1f9d55; }
}
.fb-cf-summary .order-total .amount { display:inline-block; transition:color .2s; }
.fb-cf-summary .order-total .amount.fb-cf-pulse { animation:fbCfPulse .55s ease; }

/* Campos com label.screen-reader-text (ex.: Complemento) participam do floating
   label como qualquer outro: trazemos o label de volta ao fluxo visual para que
   o CSS de floating label (posicao absoluta sobre o input) atue nele. O JS remove
   o placeholder duplicado, deixando o label fazer o papel. */
.fb-cf-block-identify .form-row > label.screen-reader-text,
.fb-cf-block-shipping .form-row > label.screen-reader-text {
  position:absolute !important; width:auto !important; height:auto !important;
  clip:auto !important; clip-path:none !important; overflow:hidden !important;
}

/* Entrega: checkbox de endereco diferente */
.fb-cf-block #ship-to-different-address { font-size:14px; margin:6px 0; }
.fb-cf-block #ship-to-different-address label {
  display:inline-flex; align-items:center; gap:8px; cursor:pointer; white-space:normal;
}

/* =====================================================================
   BLOCO DE PAGAMENTO — PADRAO PROPRIO (independente do gateway)
   Principio: o visual e SEMPRE o nosso. Em vez de cacar cada ilustracao
   que cada gateway injeta, invertemos a logica:
     - dentro do .payment_box, ESCONDEMOS tudo decorativo por padrao
       (svg, i, canvas, e qualquer *-load / *-spinner / *-icon / *-logo /
        *-illustration / *-image que os SDKs desenham);
     - e MOSTRAMOS explicitamente apenas o que e funcional:
       inputs, selects, textareas, labels e as imagens de bandeira.
   Assim qualquer gateway (MP, Pagar.me, PIX, boleto...) se encaixa no
   mesmo molde, sem regra nova por gateway.
   ===================================================================== */

/* Lista de metodos: cada um e um card uniforme */
.fb-cf-block-payment .wc_payment_methods { list-style:none !important; margin:0; padding:0; }
.fb-cf-block-payment li.wc_payment_method {
  list-style:none !important; border:1px solid #e6e6e6; border-radius:0;
  margin:0 0 10px; padding:0; overflow:hidden; transition:border-color .15s;
}
.fb-cf-block-payment li.wc_payment_method:has(input:checked) { border-color:var(--fb-cf-accent); box-shadow:0 0 0 1px color-mix(in srgb, var(--fb-cf-accent) 20%, transparent); }

/* Molde fixo do cabecalho: [radio] [nome] [logo] (montado via JS) */
.fb-cf-block-payment .fb-cf-pay-header {
  display:flex; align-items:center; gap:10px; padding:14px 16px; cursor:pointer;
}
.fb-cf-block-payment .fb-cf-pay-header input[type="radio"] { margin:0; flex:0 0 auto; width:18px; height:18px; cursor:pointer; }
.fb-cf-block-payment .fb-cf-pay-header label {
  margin:0; flex:1 1 auto; font-size:14px; font-weight:500; line-height:1.3; cursor:pointer; color:#1f2430;
}
.fb-cf-block-payment .fb-cf-pay-logo { flex:0 0 auto; height:28px; width:auto; max-width:60px; object-fit:contain; }

/* Caixa de campos do metodo */
.fb-cf-block-payment .payment_box {
  padding:14px 16px; margin:0; background:#faf9fc; border-top:1px solid #eee; font-size:14px;
}
.fb-cf-block-payment .payment_box:before { display:none !important; }

/* (1) SUPRESSAO — esconde por padrao tudo que e decorativo/SDK, em qualquer profundidade */
/* Nunca esconde algo que contenha campo: o Mercado Pago poe "mp-card-icon-detected" no proprio
   campo do numero do cartao ao reconhecer a bandeira, e ele sumia no meio da digitacao. */
.fb-cf-block-payment .payment_box svg,
.fb-cf-block-payment .payment_box canvas,
.fb-cf-block-payment .payment_box > i,
.fb-cf-block-payment .payment_box :is([class*="-load"], [class*="loading"], [class*="spinner"], [class*="-icon"],
  [class*="illustration"], [class*="placeholder-card"], [class*="card-default"]):not(:has(input, iframe, select, textarea)) {
  display:none !important; width:0 !important; height:0 !important; min-height:0 !important;
}
/* containers vazios nao reservam espaco */
.fb-cf-block-payment .payment_box *:empty:not(input):not(select):not(textarea):not(img):not(br):not(option) {
  min-height:0 !important;
}
/* nenhum container do gateway impoe altura minima */
.fb-cf-block-payment .payment_box,
.fb-cf-block-payment .payment_box * { min-height:0 !important; }

/* (2) EXIBICAO — mostra explicitamente o que e funcional */
.fb-cf-block-payment .payment_box p { margin:0 0 10px; }
.fb-cf-block-payment .payment_box label { display:block; font-size:13px; margin:0 0 4px; color:#444; }
.fb-cf-block-payment .payment_box input,
.fb-cf-block-payment .payment_box select,
.fb-cf-block-payment .payment_box textarea {
  display:block; width:100%; box-sizing:border-box; border:1px solid #d9d9d9; border-radius:var(--fb-cf-radius);
  padding:10px 12px; font-size:14px; background:#fff;
}
.fb-cf-block-payment .payment_box select {
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%23666' stroke-width='1.5'/></svg>");
  background-repeat:no-repeat; background-position:right 12px center; padding-right:32px;
}
/* Bandeiras de cartao (mastercard/visa/elo...): a unica imagem que MOSTRAMOS, em linha */
.fb-cf-block-payment .payment_box img {
  display:inline-block !important; width:auto !important; height:auto !important;
  max-height:22px !important; min-height:0 !important; margin:0 4px 8px 0; vertical-align:middle;
}
/* badges genericos de "Pix"/metodo que alguns gateways inserem como imagem/box
   (ja temos o logo no cabecalho) — escondemos para nao duplicar */
.fb-cf-block-payment .payment_box .pagarme-pix-logo,
.fb-cf-block-payment .payment_box img[src*="pix"],
.fb-cf-block-payment .payment_box [class*="pix-icon"],
.fb-cf-block-payment .payment_box .wc-pagarme-pix-image { display:none !important; }

/* ---- Checkboxes/campos DENTRO do payment_box: neutralizar nossa UX fluida
   (floating label, check verde, borda de input) que e so dos blocos de dados. */
.fb-cf-block-payment .payment_box .form-row.fb-cf-valid::after,
.fb-cf-block-payment .payment_box .form-row.fb-cf-invalid::after { content:none !important; display:none !important; }
.fb-cf-block-payment .payment_box .form-row > label {
  position:static !important; transform:none !important; font-size:13px !important;
  color:#444 !important; background:transparent !important; pointer-events:auto;
}
/* checkbox "preencher com dados de outro comprador": layout inline correto */
.fb-cf-block-payment .payment_box p.form-row:has(input[type="checkbox"]) {
  display:flex; align-items:center; gap:8px; margin:8px 0;
}
.fb-cf-block-payment .payment_box input[type="checkbox"] {
  width:16px !important; height:16px !important; margin:0 !important; flex:0 0 auto;
  display:inline-block !important; border-radius:0;
}
.fb-cf-block-payment .payment_box p.form-row:has(input[type="checkbox"]) label {
  margin:0 !important; font-size:13px; cursor:pointer; flex:1 1 auto; order:2;
}
/* Esconde o recurso "Preencher com dados de outro comprador" (multicustomer)
   do Pagar.me — adiciona fricao/erros e e raro. O pagamento usa os dados ja
   preenchidos do comprador. Esconde o checkbox (e seu form-row) + o bloco extra. */
.fb-cf-block-payment .payment_box .multicustomer,
.fb-cf-block-payment .payment_box p.form-row:has(input[name*="multicustomers"]),
.fb-cf-block-payment .payment_box p.form-row:has([data-element="enable-multicustomers"]) {
  display:none !important;
}

/* Botao finalizar: especificidade alta + !important para vencer o .button do tema */
.fb-cf-block-payment #place_order,
.fb-cf-block-payment button#place_order,
.fb-cf-block-payment button[type="submit"] {
  width:100% !important; padding:15px !important; font-size:16px !important; font-weight:600 !important;
  border:0 !important; border-radius:var(--fb-cf-radius) !important; background:var(--fb-cf-accent) !important; color:#fff !important;
  cursor:pointer; margin-top:10px; text-transform:none !important; line-height:1.3 !important; height:auto !important;
}
.fb-cf-block-payment #place_order:hover,
.fb-cf-block-payment button[type="submit"]:hover { background:var(--fb-cf-accent-dark) !important; }

/* Resumo fixo */
.fb-cf-summary { position:sticky; top:16px; background:#fff; border:1px solid #eee; border-radius:0; padding:20px; }
.fb-cf-summary h2 { font-size:18px; margin:0 0 16px; }

/* ---- Resumo: cupom proprio (input + botao "Aplicar" lado a lado) ---- */
.fb-cf-coupon { display:flex; gap:8px; margin:0 0 16px; }
.fb-cf-coupon-input {
  flex:1 1 auto; min-width:0; box-sizing:border-box;
  border:1px solid #d9d9d9; border-radius:var(--fb-cf-radius); padding:10px 16px; font-size:14px;
}
/* botao do cupom: especificidade alta + !important para vencer o .button do tema */
.fb-cf-summary .fb-cf-coupon .fb-cf-coupon-apply,
.fb-cf-coupon-apply {
  flex:0 0 auto; padding:10px 20px !important; border:0 !important; border-radius:var(--fb-cf-radius) !important;
  cursor:pointer; background:var(--fb-cf-accent) !important; color:#fff !important;
  font-size:13px !important; font-weight:600 !important; text-transform:none !important;
  white-space:nowrap; line-height:1.4 !important; height:auto !important; width:auto !important;
}
.fb-cf-summary .fb-cf-coupon .fb-cf-coupon-apply:hover,
.fb-cf-coupon-apply:hover { background:var(--fb-cf-accent-dark) !important; }
.fb-cf-coupon-apply:disabled { opacity:.6; cursor:default; }
.fb-cf-coupon-msg { font-size:12px; margin:-8px 0 14px; }
.fb-cf-coupon-msg .woocommerce-message { color:#1f9d55; }
.fb-cf-coupon-msg .woocommerce-error { color:#e25; list-style:none; padding:0; margin:0; }
/* esconde o form de cupom nativo do Woo, caso algum hook o injete */
.fb-cf-summary .woocommerce-form-coupon-toggle,
.fb-cf-summary form.checkout_coupon { display:none !important; }

/* ---- Resumo: tabela de itens/totais (estilo proprio) ---- */
/* forca a tabela a ocupar 100% do card (vence width:auto/tema) */
.fb-cf-summary table.shop_table,
.fb-cf-summary .woocommerce-checkout-review-order-table,
.fb-cf-summary #order_review table {
  width:100% !important; max-width:100% !important; table-layout:auto;
  border-collapse:collapse; font-size:13px; margin:0;
}
.fb-cf-summary #order_review,
.fb-cf-summary .woocommerce-checkout-review-order { width:100% !important; max-width:100% !important; }
.fb-cf-summary .shop_table thead th {
  text-align:left; font-size:11px; font-weight:600; color:#888;
  border-bottom:1px solid #eee; padding:0 0 8px; text-transform:none !important;
}
.fb-cf-summary .shop_table thead th.product-total { text-align:right; }
.fb-cf-summary .shop_table tbody td,
.fb-cf-summary .shop_table tbody th { padding:10px 0; border-bottom:1px solid #f3f3f3; vertical-align:top; }
.fb-cf-summary .shop_table .product-name { font-weight:500; }
.fb-cf-summary .shop_table .product-total { text-align:right; }
.fb-cf-summary .shop_table tr:not(.shipping):not(.woocommerce-shipping-totals) td[data-title] { text-align:right; }
/* a linha de frete sempre alinhada a esquerda */
.fb-cf-summary .shop_table tr.shipping td[data-title],
.fb-cf-summary .shop_table tr.woocommerce-shipping-totals td[data-title] { text-align:left !important; }
.fb-cf-summary .shop_table .cart-subtotal th,
.fb-cf-summary .shop_table .order-total th { font-weight:600; padding:12px 0; }
.fb-cf-summary .shop_table .cart-subtotal td,
.fb-cf-summary .shop_table .order-total td { text-align:right; padding:12px 0; }
.fb-cf-summary .shop_table .order-total th,
.fb-cf-summary .shop_table .order-total .amount { font-size:18px; color:#1f9d55; }
.fb-cf-summary .shop_table tfoot tr:last-child th,
.fb-cf-summary .shop_table tfoot tr:last-child td { border-bottom:0; }
/* desconto por metodo (fee negativa) com destaque verde */
.fb-cf-summary .shop_table .fee td,
.fb-cf-summary .shop_table .fee th { color:#1f9d55; }

/* ---- Frete no resumo: a linha de frete NAO segue o layout de 2 colunas da
   tabela. O th (Envio) e o td (metodos) viram blocos de largura TOTAL,
   empilhados, para o texto usar 100% da largura do card. ---- */
.fb-cf-summary .shop_table tr.shipping,
.fb-cf-summary .shop_table tr.woocommerce-shipping-totals {
  display:block !important; width:100% !important;
}
.fb-cf-summary .shop_table tr.shipping > th,
.fb-cf-summary .shop_table tr.woocommerce-shipping-totals > th {
  display:block !important; width:100% !important; max-width:100% !important;
  padding:14px 0 6px !important; font-weight:600; text-align:left;
}
.fb-cf-summary .shop_table tr.shipping > td,
.fb-cf-summary .shop_table tr.woocommerce-shipping-totals > td {
  display:block !important; width:100% !important; max-width:100% !important;
  padding:0 0 12px !important; text-align:left;
}
/* lista de metodos de frete: layout flex proprio, vencendo o tema (que poe
   float:right no radio dentro de #shipping_method li). */
.fb-cf-summary ul.woocommerce-shipping-methods,
.fb-cf-summary ul#shipping_method { list-style:none !important; margin:0 !important; padding:0 !important; width:100% !important; }
.fb-cf-summary ul.woocommerce-shipping-methods li,
.fb-cf-summary ul#shipping_method li {
  display:flex !important; align-items:flex-start; gap:8px; padding:10px 0; margin:0; width:100% !important;
  border-top:1px solid #f0f0f0; text-align:left; font-size:13px; line-height:1.4; white-space:normal; float:none !important;
}
.fb-cf-summary ul.woocommerce-shipping-methods li:first-child,
.fb-cf-summary ul#shipping_method li:first-child { border-top:0; }
/* neutraliza o float:left/right que o tema aplica no radio */
.fb-cf-summary ul.woocommerce-shipping-methods li input[type="radio"],
.fb-cf-summary ul#shipping_method li input[type="radio"] {
  margin:2px 8px 0 0 !important; flex:0 0 auto !important; width:16px !important; height:16px !important; float:none !important;
}
.fb-cf-summary ul.woocommerce-shipping-methods li label,
.fb-cf-summary ul#shipping_method li label {
  margin:0 !important; flex:1 1 auto !important; min-width:0; width:auto !important; max-width:none !important;
  text-align:left; cursor:pointer; white-space:normal; word-break:normal; float:none !important;
}
.fb-cf-summary ul.woocommerce-shipping-methods li label .amount { font-weight:600; color:#1f2430; }

/* item do resumo: miniatura + info lado a lado */
.fb-cf-summary .shop_table .product-name { display:flex; align-items:flex-start; gap:10px; }
.fb-cf-summary .fb-cf-item-thumb img { width:64px; height:64px; object-fit:cover; border-radius:0; display:block; margin:0; }
.fb-cf-summary .fb-cf-item-info { flex:1 1 auto; font-size:13px; line-height:1.35; }
.fb-cf-summary .fb-cf-item-info .product-quantity { color:#888; font-weight:600; white-space:nowrap; }
.fb-cf-summary .shop_table .product-total { white-space:nowrap; font-weight:500; }
/* o card do resumo so ocupa a altura do conteudo (nao estica) */
.fb-cf-summary { align-self:start; }

/* Tablet: tudo empilha em 1 coluna; campos voltam a 1 coluna */
@media (max-width: 1024px) {
  .fb-cf-grid { grid-template-columns: 1fr; }
  .fb-cf-summary { position:static; }
  .fb-cf-block-identify .fb-cf-fields, .fb-cf-block-shipping .fb-cf-fields { grid-template-columns:1fr; }
  .fb-cf-block .form-row-first,
  .fb-cf-block .form-row-last { grid-column:1 / -1; }
}


/* =====================================================================
   ETAPAS PROGRESSIVAS (estilo Yampi)
   ===================================================================== */
.fb-cf-urgency { display:flex; flex-direction:column; align-items:center; gap:4px; line-height:1.4; }
.fb-cf-urgency-highlights { font-size:13px; opacity:.95; }
.fb-cf-urgency-clock { font-weight:600; }

.fb-cf-step-head { display:flex; align-items:center; gap:10px; margin:0 0 16px; }
.fb-cf-step-head h2 { flex:1; margin:0 !important; font-size:18px; font-weight:700; color:#1f2430; }
.fb-cf-step-count { font-size:13px; color:#8a8f98; white-space:nowrap; }
body .fb-cf-form .fb-cf-grid .fb-cf-step-edit { display:none; height:auto !important; margin:0 !important; padding:4px 10px !important; border:1px solid #d9d9d9 !important; border-radius:0 !important; background:#fff !important; box-shadow:none !important; color:#333 !important; font-size:13px !important; font-weight:500 !important; letter-spacing:0 !important; text-transform:none !important; line-height:1.4 !important; }
body .fb-cf-form .fb-cf-grid .fb-cf-step-edit:hover { border-color:#1f2430 !important; }
.fb-cf-step-lock { display:none; margin:0; font-size:14px; color:#8a8f98; }
.fb-cf-step-resume { display:none; flex-direction:column; gap:2px; font-size:14px; color:#555; line-height:1.45; }
.fb-cf-step-resume span:first-child { font-weight:600; color:#1f2430; }

/* ativa */
.fb-cf-block.fb-cf-active { border-color:#e2e2e2; box-shadow:0 2px 10px rgba(0,0,0,.05); }
/* travada: so o titulo + "Preencha ... para continuar" (corpo continua no DOM para os gateways) */
.fb-cf-block.fb-cf-locked { background:#f7f7f8; }
.fb-cf-block.fb-cf-locked .fb-cf-step-head h2,
.fb-cf-block.fb-cf-locked .fb-cf-step-count { color:#b5b9c0; }
.fb-cf-block.fb-cf-locked .fb-cf-step-lock { display:block; }
.fb-cf-block.fb-cf-locked .fb-cf-step-body,
.fb-cf-block.fb-cf-done .fb-cf-step-body { max-height:0; overflow:hidden; visibility:hidden; margin:0; padding:0; }
/* concluida: resumo do que foi preenchido + Editar */
body .fb-cf-form .fb-cf-block.fb-cf-done .fb-cf-step-edit { display:inline-block; }
.fb-cf-block.fb-cf-done .fb-cf-step-resume { display:flex; }
.fb-cf-block.fb-cf-done .fb-cf-step-head h2::after { content:"✓"; display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; margin-left:8px; border-radius:50%; background:#1f9d55; color:#fff; font-size:12px; vertical-align:middle; }

/* botao de avancar */
body .fb-cf-form .fb-cf-grid .fb-cf-next { display:block; width:100%; height:52px !important; margin:18px 0 0 !important; padding:0 16px !important; border:0 !important; border-radius:0 !important; background:var(--fb-cf-accent) !important; box-shadow:none !important; color:#fff !important; font-size:16px !important; font-weight:700 !important; letter-spacing:0 !important; text-transform:none !important; }
body .fb-cf-form .fb-cf-grid .fb-cf-next:hover { background:var(--fb-cf-accent-dark) !important; }

/* aviso do desconto no Pix */
.fb-cf-notice { display:flex; align-items:center; gap:8px; margin:16px 0 0; padding:12px; border-radius:0; background:#f0fbf4; color:#1f7a45; font-size:13px; white-space:nowrap; }
.fb-cf-notice span { overflow:hidden; text-overflow:ellipsis; }
@media (max-width: 380px) { .fb-cf-notice { font-size:12px; } }
.fb-cf-notice svg { flex:0 0 auto; }

/* opcoes de frete em cartoes */
.fb-cf-subtitle { margin:20px 0 10px; font-size:15px; font-weight:700; color:#1f2430; }
.fb-cf-ship-list { display:flex; flex-direction:column; gap:8px; }
.fb-cf-ship-list li { margin:0; padding:0; border:0; }
.fb-cf-ship-card { display:flex !important; align-items:center; gap:10px; margin:0 !important; padding:10px 14px; border:1px solid #d9d9d9; border-radius:0; background:#fff; cursor:pointer; font-weight:400 !important; }
.fb-cf-ship-card input[type="radio"] { flex:0 0 18px; width:18px !important; height:18px !important; margin:0 !important; accent-color:var(--fb-cf-accent); float:none !important; }
/* nome e prazo na mesma linha: "SEDEX Prioritário · 1 dia útil" */
.fb-cf-ship-info { display:flex; flex:1; flex-wrap:wrap; align-items:baseline; gap:0 6px; min-width:0; line-height:1.35; }
.fb-cf-ship-info strong { font-size:14px; font-weight:500; color:#333; }
.fb-cf-ship-info small { font-size:13px; color:#777; white-space:nowrap; }
.fb-cf-ship-info small::before { content:"· "; }
.fb-cf-ship-price { flex:0 0 auto; font-size:14px; font-weight:700; color:#1e7d46; white-space:nowrap; }
.fb-cf-ship-card:has(input:checked) { border-color:var(--fb-cf-accent); box-shadow:0 0 0 1px var(--fb-cf-accent); }
.fb-cf-ship-card:has(input:checked) .fb-cf-ship-info strong { font-weight:700; color:var(--fb-cf-accent); }
.fb-cf-ship-empty { margin:0; font-size:14px; color:#8a8f98; }
@keyframes fbCfShake { 0%,100% { transform:none; } 25% { transform:translateX(-4px); } 75% { transform:translateX(4px); } }
.fb-cf-shake { animation:fbCfShake .35s; }

/* resumo: frete escolhido e barra de frete gratis */
.fb-cf-summary .fb-cf-ship-total td { text-align:right; }
.fb-cf-summary .fb-cf-muted { color:#8a8f98; font-size:13px; }
.fb-cf-summary .fb-cf-free { color:#1f9d55; font-weight:700; }
.fb-cf-freeship:empty { display:none; }
.fb-cf-freeship { margin:0 0 16px; }
.fb-cf-freeship p { margin:0 0 8px; font-size:14px; color:#333; }
.fb-cf-freeship-bar { display:block; height:8px; border-radius:0; background:#e9ebee; overflow:hidden; }
.fb-cf-freeship-bar span { display:block; height:100%; border-radius:0; background:#1f9d55; transition:width .3s; }
.fb-cf-freeship-ok p { color:#1f7a45; }

/* resumo recolhivel (so no celular/tablet) */
.fb-cf-summary-toggle { display:none; }

@media (max-width: 1024px) {
  .fb-cf-summary { order:-1; padding:0; }
  body .fb-cf-form .fb-cf-grid .fb-cf-summary-toggle { display:flex; align-items:center; gap:10px; width:100%; height:auto !important; margin:0 !important; padding:16px 18px !important; border:0 !important; border-radius:0 !important; background:#fff !important; box-shadow:none !important; color:#1f2430 !important; font-size:15px !important; font-weight:700 !important; letter-spacing:0 !important; text-transform:none !important; text-align:left; }
  .fb-cf-summary-toggle > span:first-child { flex:1; }
  .fb-cf-summary-toggle svg { transition:transform .2s; }
  .fb-cf-summary-open .fb-cf-summary-toggle svg { transform:rotate(180deg); }
  .fb-cf-summary-body { display:none; padding:0 18px 18px; }
  .fb-cf-summary-open .fb-cf-summary-body { display:block; }
  .fb-cf-summary-body > h2 { display:none; }
}

/* data de nascimento como calendario (input type=date): label sempre no alto para nao sobrepor "dd/mm/aaaa" */
.fb-cf-block .form-row:has(input[type="date"]) > label { top:-8px !important; transform:none !important; font-size:11px !important; background:#fff; padding:0 4px; }
.fb-cf-block input[type="date"] { color:#1f2430; }
/* barra do topo em largura total */
.fb-cf-page-main > .fb-cf-urgency, .fb-cf-urgency { width:100%; max-width:none; margin:0; border-radius:0; }

/* Pix (plugin "Pix por Piggly"): passos compactos em 3 linhas, alinhados a esquerda */
.fb-cf-block-payment .payment_box #pix-por-piggly { margin:0 !important; padding:0 !important; text-align:left !important; }
.fb-cf-block-payment .payment_box .pix-por-piggly--description { display:none !important; }
.fb-cf-block-payment .payment_box .pix-por-piggly--img { display:none !important; }
.fb-cf-block-payment .payment_box .pix-por-piggly--wrapper { display:flex !important; flex-direction:column !important; gap:6px !important; margin:0 !important; padding:0 !important; }
.fb-cf-block-payment .payment_box .pix-por-piggly--step { position:relative; display:flex !important; align-items:flex-start; gap:8px; width:auto !important; margin:0 !important; padding:0 !important; text-align:left !important; }
.fb-cf-block-payment .payment_box .pix-por-piggly--step::before {
  content:attr(data-step) !important; position:static !important; display:flex !important; flex:0 0 20px; align-items:center; justify-content:center;
  width:20px !important; height:20px !important; margin:0 !important; border-radius:50%; background:#e6f6ed !important; color:#1f7a45 !important; font-size:12px !important; font-weight:700; line-height:1 !important;
}
.fb-cf-block-payment .payment_box .pix-por-piggly--step::after { content:none !important; display:none !important; }
.fb-cf-block-payment .payment_box .pix-por-piggly--step p { margin:0 !important; padding:0 !important; font-size:13px !important; line-height:1.45 !important; color:#444 !important; text-align:left !important; }
.fb-cf-block-payment .payment_box .pix-por-piggly--step p br { display:none; }

/* Botões "Aplicar" (cupom) e "Finalizar pedido" no mesmo formato dos "Ir para ...": cantos de 8px, sem espaçamento de letra */
body .fb-cf-form .fb-cf-grid .fb-cf-coupon-input { height:46px !important; border-radius:0 !important; }
body .fb-cf-form .fb-cf-grid .fb-cf-coupon-apply {
  height:46px !important; padding:0 18px !important; border:0 !important; border-radius:0 !important; background:var(--fb-cf-accent) !important;
  box-shadow:none !important; color:#fff !important; font-size:15px !important; font-weight:700 !important; letter-spacing:0 !important; text-transform:none !important;
}
body .fb-cf-form .fb-cf-grid .fb-cf-block-payment #place_order,
body .fb-cf-form .fb-cf-grid .fb-cf-block-payment button[type="submit"] {
  width:100% !important; height:52px !important; margin:18px 0 0 !important; padding:0 16px !important; border:0 !important; border-radius:0 !important;
  background:var(--fb-cf-accent) !important; box-shadow:none !important; color:#fff !important; font-size:16px !important; font-weight:700 !important; letter-spacing:0 !important; text-transform:none !important;
}
body .fb-cf-form .fb-cf-grid .fb-cf-coupon-apply:hover,
body .fb-cf-form .fb-cf-grid .fb-cf-block-payment #place_order:hover { background:var(--fb-cf-accent-dark) !important; }

/* seta depois do texto dos botoes "Ir para ...", com um leve empurrao no hover */
body .fb-cf-form .fb-cf-grid .fb-cf-next { display:flex !important; align-items:center; justify-content:center; gap:10px; }
.fb-cf-next-arrow { flex:0 0 auto; transition:transform .2s ease; }
.fb-cf-next:hover .fb-cf-next-arrow { transform:translateX(4px); }

/* seta tambem no "Finalizar pedido". Via ::after (mascara SVG) porque o checkout.js do Woo
   reescreve o texto do botao ao trocar a forma de pagamento, e isso apagaria um <svg> interno */
body .fb-cf-form .fb-cf-grid .fb-cf-block-payment #place_order { display:flex !important; align-items:center; justify-content:center; gap:10px; }
body .fb-cf-form .fb-cf-grid .fb-cf-block-payment #place_order::after {
  content:""; flex:0 0 20px; width:20px; height:20px; background:currentColor; transition:transform .2s ease;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
body .fb-cf-form .fb-cf-grid .fb-cf-block-payment #place_order:hover::after { transform:translateX(4px); }

/* data de nascimento: o check de valido nao pode ficar em cima do icone de calendario */
.fb-cf-block .form-row.fb-cf-valid:has(input[type="date"])::after { right:40px; }

/* Mercado Pago: o tema pinta todo <button> de verde com !important; devolve o amarelo do MP */
body .fb-cf-form #mp-checkout-custom-root button#mp-wallet-button { background:#ffe600 !important; color:#2d3277 !important; }
body .fb-cf-form #mp-checkout-custom-root button#mp-wallet-button:hover { background:#fbd100 !important; }
/* Validade e CVV com os campos alinhados mesmo quando um label quebra linha */
body .fb-cf-form #mp-checkout-custom-root .mp-checkout-custom-dual-column-row { align-items:flex-end; }
/* Bandeiras do cartão um pouco maiores (nativo 32x24) */
body .fb-cf-form #mp-checkout-custom-root .mp-checkout-custom-card-flags-list img { width:auto !important; height:32px !important; max-width:none !important; max-height:none !important; }
/* Pagar.me: formulário de cartão mais curto — validade e CVV lado a lado, título discreto, divisória entre cartões */
body .fb-cf-form .fb-cf-block-payment [data-pagarme-element="fields-cc-data"] { display:grid; grid-template-columns:1fr 1fr; column-gap:10px; }
body .fb-cf-form .fb-cf-block-payment [data-pagarme-element="fields-cc-data"] > .form-row { grid-column:1 / -1; width:auto !important; float:none !important; margin-right:0 !important; }
body .fb-cf-form .fb-cf-block-payment [data-pagarme-element="fields-cc-data"] > .form-row-first,
body .fb-cf-form .fb-cf-block-payment [data-pagarme-element="fields-cc-data"] > .form-row-last { grid-column:auto; }
body .fb-cf-form .fb-cf-block-payment .wc-credit-card-form h4 { font-size:14px; font-weight:600; margin:0 0 8px; }
body .fb-cf-form .fb-cf-block-payment .wc-credit-card-form ~ .wc-credit-card-form { margin-top:6px; padding-top:14px; border-top:1px solid #e5e5e5; }

/* Faixa de urgência enxuta: uma linha, texto firme e cronômetro em pílula branca */
body .fb-cf-urgency { flex-direction:row; flex-wrap:wrap; justify-content:center; gap:6px 20px; padding:9px 16px; font-size:14px; font-weight:600; line-height:1.3; letter-spacing:.1px; }
body .fb-cf-urgency-clock { display:inline-flex; align-items:center; gap:8px; font-weight:500; }
body .fb-cf-urgency-timer { margin:0; background:#fff; color:#1f1f1f; border-radius:0; padding:2px 8px; font-weight:700; font-variant-numeric:tabular-nums; }
@media (max-width:480px) { body .fb-cf-urgency { font-size:13px; padding:8px 12px; } }
/* Selos de confiança sob o total */
.fb-cf-trust { list-style:none; margin:14px 0 0; padding:12px 0 0; border-top:1px solid #eee; display:grid; grid-template-columns:1fr 1fr; gap:8px 12px; }
.fb-cf-trust li { display:flex; align-items:center; gap:6px; font-size:12.5px; color:#555; margin:0; }
.fb-cf-trust li::before { content:""; flex:none; width:14px; height:14px; background:var(--fb-cf-accent); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat; }
.fb-cf-urgency-msg { display:inline-flex; align-items:center; gap:6px; }
.fb-cf-urgency-icon { flex:none; }
/* Selo "Ambiente 100% seguro" com mais autoridade: cadeado em círculo + duas linhas */
body .fb-cf-secure { gap:10px; padding:6px 14px 6px 6px; border:1px solid #cfe9da; background:#f2faf5; border-radius:0; color:#14532d; }
.fb-cf-secure-icon { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; background:#1f9d55; color:#fff; flex:none; }
.fb-cf-secure-text { display:flex; flex-direction:column; line-height:1.15; }
.fb-cf-secure-text strong { font-size:13px; font-weight:800; text-transform:uppercase; letter-spacing:.3px; color:#14532d; }
.fb-cf-secure-text small { font-size:11px; font-weight:500; color:#4b6b58; }
@media (max-width:480px) {
  body .fb-cf-secure { gap:7px; padding:4px 10px 4px 4px; }
  .fb-cf-secure-icon { width:28px; height:28px; }
  .fb-cf-secure-icon svg { width:15px; height:15px; }
  .fb-cf-secure-text strong { font-size:11px; letter-spacing:.2px; }
  .fb-cf-secure-text small { font-size:10px; }
}
/* Caixa de erros mais compacta (fonte menor, linhas juntas) */
body.fb-cf-page .woocommerce-error, body .fb-cf-block-payment .woocommerce-error { padding:10px 12px !important; }
body.fb-cf-page .woocommerce-error, body.fb-cf-page .woocommerce-error li,
body .fb-cf-block-payment .woocommerce-error, body .fb-cf-block-payment .woocommerce-error li { font-size:12.5px !important; line-height:1.4 !important; }
body.fb-cf-page .woocommerce-error li, body .fb-cf-block-payment .woocommerce-error li { padding:1px 0 !important; }
body.fb-cf-page .woocommerce-error::before, body .fb-cf-block-payment .woocommerce-error::before { font-size:15px !important; }

/* Rodapé: atendimento, formas de pagamento e dados legais */
.fb-cf-footer { background:#fff; border-top:1px solid #ececec; margin-top:40px; padding:32px 16px 28px; text-align:center; color:#555; font-size:14px; }
.fb-cf-footer-inner { max-width:1232px; margin:0 auto; display:flex; flex-direction:column; align-items:center; gap:26px; }
.fb-cf-footer-title { display:block; font-size:14px; font-weight:700; color:#1f2430; margin-bottom:4px; }
.fb-cf-footer-contacts { list-style:none; margin:14px 0 0; padding:0; display:flex; flex-wrap:wrap; justify-content:center; gap:10px 36px; }
.fb-cf-footer-contacts li { margin:0; }
.fb-cf-footer-contacts a { display:inline-flex; align-items:center; gap:8px; color:#555; text-decoration:none; }
.fb-cf-footer-contacts a:hover { color:#1f2430; }
.fb-cf-footer-contacts svg { width:20px; height:20px; flex:none; color:#1f2430; }
.fb-cf-footer-pay ul { list-style:none; margin:12px 0 0; padding:0; display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.fb-cf-footer-pay li { margin:0; width:52px; height:36px; display:flex; align-items:center; justify-content:center; border:1px solid #e5e5e5; border-radius:0; background:#fff; }
.fb-cf-footer-pay img { width:34px; height:auto; display:block; }
.fb-cf-footer-legal { display:flex; flex-direction:column; gap:2px; font-size:12.5px; line-height:1.5; color:#777; }
/* Etapa concluída bem sinalizada: borda e fundo verdes suaves + selo "Concluído" no lugar do "1 de 3" */
.fb-cf-step-status { display:none; padding:3px 10px; border-radius:0; background:#e3f5ea; color:#1a7f45; font-size:12px; font-weight:600; white-space:nowrap; }
.fb-cf-block.fb-cf-done { border-color:#bfe3cd !important; background:#f6fbf8; }
.fb-cf-block.fb-cf-done .fb-cf-step-count { display:none; }
.fb-cf-block.fb-cf-done .fb-cf-step-status { display:inline-block; }

/* ---- Resumo limpo: o tema (Elessi) passou a estilizar a tabela depois que a página virou "checkout";
   aqui zera tudo e aplica um padrão único de espaçamento e cor ---- */
body .fb-cf-summary #order_review table.shop_table { box-shadow:none !important; border:0 !important; margin:0 !important; width:100%; border-collapse:collapse; background:none !important; }
body .fb-cf-summary #order_review .shop_table thead { display:none; }
body .fb-cf-summary #order_review .shop_table th,
body .fb-cf-summary #order_review .shop_table td { padding:6px 0 !important; border:0 !important; background:none !important; font-size:14px !important; line-height:1.4 !important; vertical-align:middle !important; text-transform:none !important; letter-spacing:0 !important; }
body .fb-cf-summary #order_review .shop_table tfoot th { font-weight:400 !important; color:#5b606b !important; text-align:left !important; }
body .fb-cf-summary #order_review .shop_table tfoot td { font-weight:500 !important; color:#1f2430 !important; text-align:right !important; }
body .fb-cf-summary #order_review .shop_table tfoot .amount { color:inherit !important; font-weight:inherit !important; font-size:inherit !important; }
/* itens */
body .fb-cf-summary #order_review .shop_table tbody td { padding:4px 0 14px !important; border-bottom:1px solid #eee !important; vertical-align:top !important; }
body .fb-cf-summary #order_review .shop_table tbody td.product-total { font-weight:500 !important; color:#1f2430 !important; padding-left:10px !important; }
body .fb-cf-summary #order_review .shop_table tbody .product-total .amount { color:inherit !important; }
body .fb-cf-summary #order_review .shop_table tfoot tr:first-child th,
body .fb-cf-summary #order_review .shop_table tfoot tr:first-child td { padding-top:14px !important; }
/* cupom: selo pequeno + valor verde + x para remover */
body .fb-cf-summary #order_review .cart-discount td,
body .fb-cf-summary #order_review .cart-discount td .amount { color:#1a7f45 !important; }
body .fb-cf-summary #order_review .cart-discount a.woocommerce-remove-coupon { display:inline-flex !important; align-items:center; justify-content:flex-end; flex-wrap:nowrap !important; color:#1a7f45 !important; text-decoration:none !important; }
body .fb-cf-summary #order_review .cart-discount a.woocommerce-remove-coupon svg { width:16px; height:16px; margin-right:4px; color:#9aa0a8; }
body .fb-cf-summary #order_review .cart-discount a.woocommerce-remove-coupon:hover svg { color:#d33; }
body .fb-cf-summary #order_review .cart-discount .cp-code { display:inline-block !important; width:auto !important; margin:0 8px 0 0 !important; padding:2px 8px !important; border:1px dashed #9fd3b5 !important; border-radius:0 !important; background:#eef8f2 !important; color:#1a7f45 !important; font-size:11.5px !important; font-weight:600 !important; letter-spacing:.4px !important; text-transform:uppercase; line-height:1.5 !important; }
/* frete grátis */
body .fb-cf-summary #order_review .fb-cf-ship-total .fb-cf-free { color:#1a7f45 !important; font-weight:600; }
/* total */
body .fb-cf-summary #order_review .shop_table tr.order-total th,
body .fb-cf-summary #order_review .shop_table tr.order-total td { padding-top:12px !important; border-top:1px solid #eee !important; color:#1f2430 !important; }
body .fb-cf-summary #order_review .shop_table tr.order-total th { font-size:16px !important; font-weight:700 !important; }
body .fb-cf-summary #order_review .shop_table tr.order-total td,
body .fb-cf-summary #order_review .shop_table tr.order-total .amount { font-size:20px !important; font-weight:700 !important; color:#1f2430 !important; }
/* Topo branco e corpo cinza (o tema forçava body branco) */
html body.fb-cf-page { background:#efefef !important; }
.fb-cf-block.fb-cf-locked { background:#f7f7f8; border-color:#e6e6e6; }
/* Selos do resumo em blocos com ícone */
.fb-cf-trust { border-top:0; margin-top:16px; padding:0; gap:8px; }
.fb-cf-trust li { gap:8px; padding:9px 10px; border-radius:0; background:#f5f6f7; font-size:12.5px; font-weight:500; color:#1f2430; line-height:1.25; }
.fb-cf-trust li::before { content:none; display:none; }
.fb-cf-trust-ico { display:inline-flex; align-items:center; justify-content:center; flex:none; width:28px; height:28px; border-radius:50%; background:#e3f5ea; color:var(--fb-cf-accent); }
/* Item do resumo: foto proporcional (retrato) com a quantidade no canto; nome ocupa a largura toda e o preço vem embaixo */
body .fb-cf-summary #order_review .shop_table tbody td.product-name { display:table-cell !important; }
.fb-cf-summary .fb-cf-item { display:flex; align-items:flex-start; gap:12px; }
.fb-cf-summary .fb-cf-item-thumb { position:relative; flex:none; width:56px; }
body .fb-cf-summary .fb-cf-item-thumb img { width:56px !important; height:70px !important; max-width:none !important; object-fit:cover; border-radius:0; border:1px solid #eee; display:block; margin:0 !important; }
.fb-cf-summary .fb-cf-item-qty { position:absolute; top:-7px; right:-7px; min-width:20px; height:20px; padding:0 5px; border-radius:0; background:#5b606b; color:#fff; font-size:11px; font-weight:700; line-height:20px; text-align:center; box-sizing:border-box; }
.fb-cf-summary .fb-cf-item-info { display:flex; flex-direction:column; gap:6px; min-width:0; }
.fb-cf-summary .fb-cf-item-name { font-size:13.5px; font-weight:500; line-height:1.35; color:#1f2430; }
.fb-cf-summary .fb-cf-item-price { font-size:14px; font-weight:600; color:#1f2430; }
.fb-cf-summary .fb-cf-item-price .amount { color:inherit !important; }
.fb-cf-summary .fb-cf-item-info dl.variation { margin:0; font-size:12px; color:#777; }
/* O tema desenha linhas soltas (::before) em cada célula do rodapé da tabela — desalinhadas; remove */
body .fb-cf-summary #order_review .shop_table th::before,
body .fb-cf-summary #order_review .shop_table td::before,
body .fb-cf-summary #order_review .shop_table th::after,
body .fb-cf-summary #order_review .shop_table td::after { content:none !important; display:none !important; }
/* Rótulos em uma linha ("Desconto Pix Aplicado") e descontos em verde */
body .fb-cf-summary #order_review .shop_table tfoot th { white-space:nowrap; padding-right:12px !important; }
body .fb-cf-summary #order_review .shop_table tfoot td { white-space:nowrap; }
body .fb-cf-summary #order_review .shop_table tr.fee td,
body .fb-cf-summary #order_review .shop_table tr.fee td .amount { color:#1a7f45 !important; }
/* No celular, cupom + valor podem quebrar; só valores e rótulos ficam inteiros (evita estourar a largura) */
body .fb-cf-summary #order_review .shop_table tfoot td { white-space:normal; }
body .fb-cf-summary #order_review .shop_table .amount { white-space:nowrap; }
body .fb-cf-summary #order_review .cart-discount a.woocommerce-remove-coupon { flex-wrap:wrap !important; row-gap:4px; }
.fb-cf-summary, .fb-cf-summary-body { min-width:0; max-width:100%; }
/* Linhas de totais independentes (sem coluna compartilhada): cada rótulo usa o espaço que precisa */
body .fb-cf-summary #order_review .shop_table tfoot tr { display:flex; justify-content:space-between; align-items:center; gap:12px; }
body .fb-cf-summary #order_review .shop_table tfoot th,
body .fb-cf-summary #order_review .shop_table tfoot td { display:block; }
body .fb-cf-summary #order_review .shop_table tfoot td { white-space:nowrap; }
body .fb-cf-summary #order_review .cart-discount a.woocommerce-remove-coupon { flex-wrap:nowrap !important; }
/* Logos dos métodos menores e sempre encostados à direita */
body .fb-cf-block-payment .fb-cf-pay-header label { flex:1 1 auto !important; }
body .fb-cf-block-payment .fb-cf-pay-header .fb-cf-pay-logo { margin:0 0 0 auto !important; height:20px !important; width:auto !important; max-width:40px !important; }
/* Total: linha divisória inteira (na linha, não em cada célula) */
body .fb-cf-summary #order_review .shop_table tr.order-total { border-top:1px solid #eee; margin-top:6px; }
body .fb-cf-summary #order_review .shop_table tr.order-total th,
body .fb-cf-summary #order_review .shop_table tr.order-total td { border-top:0 !important; }
/* Avisos de erro: caixa leve, um ícone só (o do tema, alinhado à 1ª linha), código do cupom em destaque */
body.fb-cf-page .woocommerce-error { display:block !important; border:1px solid #f3c4c4 !important; border-radius:0 !important; background:#fff6f6 !important; padding:10px 12px !important; margin:10px 0 0 !important; }
body.fb-cf-page .woocommerce-error:has(li svg)::before { content:none !important; display:none !important; }
body.fb-cf-page .woocommerce-error li { display:flex !important; align-items:flex-start; gap:8px; }
body.fb-cf-page .woocommerce-error li svg { flex:none; width:15px; height:15px; margin-top:2px; fill:currentColor; }
body.fb-cf-page .woocommerce-error strong { font-weight:700 !important; letter-spacing:.3px; }
/* Cabeçalho do método ocupa a largura toda: logos alinhados na mesma coluna à direita */
body .fb-cf-block-payment .fb-cf-pay-header { width:100%; box-sizing:border-box; }
/* texto do aviso corre normal (flex quebrava "Cupom / CÓDIGO / resto" em colunas); ícone fixo à esquerda */
body.fb-cf-page .woocommerce-error li { display:block !important; position:relative; padding-left:23px !important; }
body.fb-cf-page .woocommerce-error li svg { position:absolute; left:0; top:1px; margin:0; }
/* Cupom sugerido: cartão tracejado clicável sob o campo de cupom */
body .fb-cf-form .fb-cf-grid .fb-cf-coupon-hint { display:flex !important; align-items:center; gap:10px; width:100%; height:auto !important; margin:-6px 0 16px !important; padding:10px 12px !important; border:1px dashed #9fd3b5 !important; border-radius:0 !important; background:#f3faf6 !important; box-shadow:none !important; color:#1f2430 !important; font-size:13px !important; font-weight:400 !important; line-height:1.35 !important; letter-spacing:0 !important; text-transform:none !important; text-align:left; cursor:pointer; }
body .fb-cf-form .fb-cf-grid .fb-cf-coupon-hint:hover { border-color:var(--fb-cf-accent) !important; }
body .fb-cf-form .fb-cf-grid .fb-cf-coupon-hint.is-applied { display:none !important; }
.fb-cf-coupon-hint-ico { display:inline-flex; flex:none; color:var(--fb-cf-accent); }
.fb-cf-coupon-hint-text strong { font-weight:700; letter-spacing:.3px; }
.fb-cf-coupon-hint-cta { margin-left:auto; flex:none; color:var(--fb-cf-accent); font-weight:700; }
/* Avisos de sucesso do Woo (cupom aplicado/removido): caixa verde leve, alinhada ao conteúdo */
body.fb-cf-page .woocommerce-message { list-style:none; margin:10px 0 0 !important; padding:10px 12px !important; border:1px solid #bfe3cd !important; border-radius:0 !important; background:#f3faf6 !important; color:#1a7f45 !important; font-size:12.5px !important; line-height:1.4 !important; box-shadow:none !important; }
body.fb-cf-page .woocommerce-message::before { display:none !important; }
body.fb-cf-page .fb-cf-page-main > .woocommerce-message { max-width:1232px; margin:16px auto 0 !important; box-sizing:border-box; }
@media (max-width:1264px) { body.fb-cf-page .fb-cf-page-main > .woocommerce-message { margin:16px 16px 0 !important; } }

/* ===== Usabilidade (análise 2026-09-24) ===== */
/* Campos no celular/tablet: grade de 12 colunas mantida (Nome|Sobrenome 50/50, Endereço 75|Número 25).
   Antes virava 1 coluna e os "span" criavam colunas implícitas: Nome estreito e Observações com 86px. */
@media (max-width: 1024px) {
  .fb-cf-block-identify .fb-cf-fields, .fb-cf-block-shipping .fb-cf-fields { grid-template-columns:repeat(12, minmax(0,1fr)); }
}
.fb-cf-block .fb-cf-fields > :not(.form-row) { grid-column:1 / -1; }
/* iPhone amplia a tela ao tocar em campo com fonte < 16px: no celular os campos usam 16px */
@media (max-width: 1024px) {
  body .fb-cf-form input.input-text, body .fb-cf-form input[type="email"], body .fb-cf-form input[type="tel"],
  body .fb-cf-form input[type="text"], body .fb-cf-form input[type="date"], body .fb-cf-form input[type="number"],
  body .fb-cf-form select, body .fb-cf-form textarea, body .fb-cf-coupon-input,
  body .fb-cf-form .select2-container .select2-selection__rendered, body .fb-cf-login input.input-text { font-size:16px !important; }
}
/* Frete: selo "Mais rápido" */
.fb-cf-ship-badge { display:inline-block; margin-left:6px; padding:1px 7px; border-radius:0; background:#e3f5ea; color:#1a7f45; font-size:11px; font-style:normal; font-weight:600; line-height:1.5; vertical-align:middle; white-space:nowrap; }
/* Total a pagar acima do botão final */
body .fb-cf-block-payment .fb-cf-pay-total { display:flex; justify-content:space-between; align-items:baseline; margin:4px 0 10px !important; padding:0 !important; font-size:14px; color:#5b606b; }
body .fb-cf-block-payment .fb-cf-pay-total strong { font-size:20px; font-weight:700; color:#1f2430; }
/* Observações recolhidas */
body .fb-cf-form .fb-cf-grid .fb-cf-notes-toggle { display:inline-block; width:auto; height:auto !important; margin:2px 0 0 !important; padding:0 !important; border:0 !important; background:none !important; box-shadow:none !important; color:#5b606b !important; font-size:13.5px !important; font-weight:500 !important; text-decoration:underline; text-underline-offset:3px; text-transform:none !important; letter-spacing:0 !important; grid-column:1 / -1; justify-self:start; text-align:left !important; }
/* "Já é cliente? Entrar" */
.fb-cf-login-link { margin:-6px 0 14px; font-size:13.5px; color:#5b606b; }
.fb-cf-login-link a { color:#1f2430; font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.fb-cf-login { max-width:1232px; margin:0 auto; padding:0 16px; box-sizing:border-box; }
.fb-cf-login form.login { margin:16px 0 0 !important; padding:18px !important; border:1px solid #e2e2e2 !important; border-radius:0 !important; background:#fff; }
.fb-cf-login form.login .form-row { margin:0 0 10px !important; }
.fb-cf-login form.login input.input-text { height:46px; border:1px solid #d9d9d9; border-radius:0; padding:0 12px; width:100%; box-sizing:border-box; }
.fb-cf-login form.login button { height:46px !important; border-radius:0 !important; background:var(--fb-cf-accent) !important; color:#fff !important; border:0 !important; padding:0 22px !important; }
/* Celular: Número com espaço para o valor + check (Endereço 2/3, Número 1/3) */
@media (max-width: 1024px) {
  .fb-cf-block .fb-cf-w75, .fb-cf-block #shipping_address_1_field { grid-column:span 8; }
  .fb-cf-block .fb-cf-w25, .fb-cf-block #shipping_number_field { grid-column:span 4; }
}
/* Cupom no início do fluxo (cartão próprio acima da Identificação) */
.fb-cf-block-coupon .fb-cf-coupon-title { margin:0 0 12px !important; font-size:15px !important; font-weight:600 !important; color:#1f2430; }
.fb-cf-block-coupon .fb-cf-coupon { margin:0; }
body .fb-cf-form .fb-cf-grid .fb-cf-block-coupon .fb-cf-coupon-hint { margin:10px 0 0 !important; }
.fb-cf-block-coupon .fb-cf-coupon-msg { margin:10px 0 0; }
.fb-cf-block-coupon .fb-cf-coupon-msg .woocommerce-error, .fb-cf-block-coupon .fb-cf-coupon-msg .woocommerce-message { margin:0 !important; }
/* Mercado Pago: o reset do próprio MP deixa os campos seguros (iframes de número/validade/CVV) com
   300px fixos. No celular a caixa é mais estreita e o fim do número do cartão ficava escondido;
   no desktop só a parte esquerda do campo aceitava clique. */
body .fb-cf-form #mp-checkout-custom-root iframe { width:100% !important; max-width:100% !important; }

/* ===================== Pedido recebido (pedidos do checkout fluido) ===================== */
body.fb-cf-page.woocommerce-order-received .woocommerce-order { max-width:640px; margin:0 auto; padding:24px 16px 48px; box-sizing:border-box; }
body.fb-cf-page.woocommerce-order-received .nasa-order-received { display:block; margin:0 !important; }
body.fb-cf-page.woocommerce-order-received .nasa-order-received > .columns { float:none !important; width:100% !important; max-width:none !important; padding:0 !important; }
body.fb-cf-page.woocommerce-order-received .nasa-warper-order { margin:0 !important; padding:0 !important; border:0 !important; background:none !important; box-shadow:none !important; }
/* topo: ícone + título + texto conforme o status (ThankYou.php) */
body.fb-cf-page.woocommerce-order-received .woocommerce-thankyou-order-received { display:block !important; margin:0 0 12px !important; padding:26px 20px 22px !important; border:1px solid #e6e6e6 !important; border-radius:0 !important; background:#fff !important; box-shadow:none !important; color:#1f2430 !important; font-size:15px !important; text-align:center; }
body.fb-cf-page.woocommerce-order-received .woocommerce-thankyou-order-received::before { display:none !important; }
.fb-cf-ty { display:flex; flex-direction:column; align-items:center; gap:6px; }
.fb-cf-ty-icon { display:inline-flex; align-items:center; justify-content:center; width:54px; height:54px; margin-bottom:4px; border-radius:50%; }
.fb-cf-ty--paid .fb-cf-ty-icon { background:#e7f6ee; color:#1f9d55; }
.fb-cf-ty--waiting .fb-cf-ty-icon { background:#fff4e0; color:#b26a00; }
.fb-cf-ty-title { font-size:22px; font-weight:700; line-height:1.25; }
.fb-cf-ty-text { max-width:420px; font-size:14px; line-height:1.5; color:#5b606b; }
/* faixa nº / data / total / pagamento (o pix.css já faz isso nos pedidos Pix) */
body.fb-cf-page.woocommerce-order-received ul.order_details { display:flex; flex-wrap:wrap; justify-content:center; gap:4px 20px; margin:0 0 12px !important; padding:10px 14px !important; border:0 !important; background:#fff; border:1px solid #e6e6e6 !important; list-style:none; }
body.fb-cf-page.woocommerce-order-received ul.order_details li { margin:0 !important; padding:0 !important; border:0 !important; float:none !important; font-size:12.5px !important; color:#6b7280; text-transform:none !important; }
body.fb-cf-page.woocommerce-order-received ul.order_details li strong { display:inline !important; margin-left:4px; font-size:12.5px !important; color:#1f2430; }
body.fb-cf-page.woocommerce-order-received ul.order_details { width:auto !important; max-width:none !important; margin:0 0 12px !important; box-sizing:border-box; } /* ganha do pix.css, que estreita a faixa */
/* detalhes e endereços em cartões brancos */
body.fb-cf-page.woocommerce-order-received :is(.woocommerce-order-details, .woocommerce-customer-details) { margin:12px 0 0 !important; padding:20px !important; border:1px solid #e6e6e6; background:#fff; }
body.fb-cf-page.woocommerce-order-received :is(.woocommerce-order-details__title, .woocommerce-column__title) { margin:0 0 10px !important; font-size:16px !important; font-weight:600 !important; color:#1f2430 !important; text-align:left !important; text-transform:none !important; letter-spacing:0 !important; }
body.fb-cf-page.woocommerce-order-received .woocommerce-table--order-details { width:100%; margin:0 !important; border:0 !important; border-collapse:collapse; }
body.fb-cf-page.woocommerce-order-received .woocommerce-table--order-details :is(thead, tbody, tfoot, tr, th, td) { background:none !important; }
body.fb-cf-page.woocommerce-order-received .woocommerce-table--order-details :is(th, td) { padding:10px 0 !important; border:0 !important; border-top:1px solid #f0f0f0 !important; font-size:14px !important; color:#1f2430 !important; text-transform:none !important; letter-spacing:0 !important; }
body.fb-cf-page.woocommerce-order-received .woocommerce-table--order-details thead th { border-top:0 !important; font-size:13px !important; font-weight:600 !important; color:#6b7280 !important; }
body.fb-cf-page.woocommerce-order-received .woocommerce-table--order-details :is(th, td):last-child { text-align:right !important; }
body.fb-cf-page.woocommerce-order-received .woocommerce-table--order-details tfoot th { font-weight:400 !important; color:#6b7280 !important; text-align:left !important; }
body.fb-cf-page.woocommerce-order-received .woocommerce-table--order-details tfoot tr:last-child :is(th, td) { padding-top:14px !important; border-top:1px solid #e3e3e3 !important; font-size:17px !important; font-weight:700 !important; color:#1f2430 !important; }
body.fb-cf-page.woocommerce-order-received .woocommerce-table--order-details .product-quantity { font-weight:400 !important; color:#6b7280; }
body.fb-cf-page.woocommerce-order-received .woocommerce-customer-details .col2-set { display:grid !important; grid-template-columns:1fr 1fr; gap:16px; margin:0 !important; }
body.fb-cf-page.woocommerce-order-received .woocommerce-customer-details .col2-set::before,
body.fb-cf-page.woocommerce-order-received .woocommerce-customer-details .col2-set::after { display:none !important; }
body.fb-cf-page.woocommerce-order-received .woocommerce-customer-details .col2-set > div { float:none !important; width:auto !important; max-width:none !important; margin:0 !important; padding:0 !important; }
body.fb-cf-page.woocommerce-order-received .woocommerce-customer-details address { margin:0 !important; padding:0 !important; border:0 !important; font-style:normal; font-size:14px; line-height:1.6; color:#333; }
body.fb-cf-page.woocommerce-order-received .woocommerce-customer-details address p { margin:4px 0 0 !important; padding:0 !important; }
body.fb-cf-page.woocommerce-order-received .woocommerce-customer-details address p::before { display:none !important; }
/* continuar comprando */
.fb-cf-ty-continue { margin:16px 0 0 !important; text-align:center; }
body.fb-cf-page .fb-cf-ty-continue-btn { display:flex; align-items:center; justify-content:center; height:48px; border:1px solid #1f2430; background:#fff; color:#1f2430 !important; font-size:15px; font-weight:700; text-decoration:none !important; }
body.fb-cf-page .fb-cf-ty-continue-btn:hover { background:#1f2430; color:#fff !important; }
@media (max-width: 767px) {
  body.fb-cf-page.woocommerce-order-received .woocommerce-order { padding:16px 12px 40px; }
  body.fb-cf-page.woocommerce-order-received .woocommerce-customer-details .col2-set { grid-template-columns:1fr; }
}
