/* Carrinho lateral Le Blanc. Usa as cores da nova home quando existem; fora dela, cai nos valores
   neutros abaixo, para o Flatsome mostrar o mesmo desenho. */
.lbc {
  --lbc-tinta: var(--tinta, #141414);
  --lbc-tinta2: var(--tinta-2, #6b6b6b);
  --lbc-fundo: var(--fundo, #fff);
  --lbc-linha: var(--linha, #e6e3de);
  --lbc-aviso: #eef4ec;
  font-family: var(--fonte, "Jost", "Futura", system-ui, sans-serif);
  color: var(--lbc-tinta);
  display: flex; flex-direction: column; min-height: 100%;
  font-size: 14px; line-height: 1.4;
}
.lbc * { box-sizing: border-box; }
.lbc a { color: inherit; text-decoration: none; }
.lbc p { margin: 0; }

.lbc-aviso { background: var(--lbc-aviso); color: var(--lbc-tinta); padding: 14px 22px; margin: 0 -22px 6px; font-size: 13px; }

/* presente */
.lbc-presente { border-bottom: 1px solid var(--lbc-linha); margin: 0 -22px; padding: 0 22px; }
.lbc-presente-btn { width: 100%; display: flex; justify-content: space-between; align-items: center; background: none; border: 0; padding: 16px 0; font: inherit; color: inherit; cursor: pointer; text-align: left; }
.lbc-sinal { position: relative; width: 12px; height: 12px; flex: none; }
.lbc-sinal::before, .lbc-sinal::after { content: ""; position: absolute; background: currentColor; left: 0; top: 5px; width: 12px; height: 1.5px; }
.lbc-sinal::after { transform: rotate(90deg); transition: transform .2s; }
.lbc-presente-btn[aria-expanded="true"] .lbc-sinal::after { transform: rotate(0); }
.lbc-presente-campo { padding: 0 0 18px; display: grid; gap: 8px; }
.lbc-presente-campo label { font-size: 13px; }
.lbc-presente-campo textarea { width: 100%; border: 1px solid var(--lbc-linha); background: var(--lbc-fundo); color: inherit; font: inherit; padding: 10px; resize: vertical; min-height: 96px; border-radius: 0; }
.lbc-presente-campo textarea:focus { outline: 1.5px solid var(--lbc-tinta); outline-offset: 0; }
.lbc-salvo { color: var(--lbc-tinta2); font-size: 12px; min-height: 14px; }

.lbc-rotulo { font-size: 12px; color: var(--lbc-tinta2); padding: 16px 0 8px; }

/* itens */
.lbc-itens { list-style: none; margin: 0; padding: 0; flex: 1; }
.lbc-item { display: grid; grid-template-columns: 84px 1fr; gap: 20px; padding: 16px 0 20px; border-bottom: 1px solid var(--lbc-linha); }
.lbc-item.lbc-saindo { opacity: .35; pointer-events: none; }
.lbc-foto { display: block; aspect-ratio: 3/4; background: #f3f2f0; overflow: hidden; }
.lbc-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lbc-info { display: grid; gap: 8px; align-content: start; justify-items: start; }
.lbc-nome { font-size: 15px; text-transform: uppercase; letter-spacing: .02em; line-height: 1.25; }
.lbc-info dl.variation { margin: -4px 0 0; font-size: 12px; color: var(--lbc-tinta2); display: flex; flex-wrap: wrap; gap: 0 6px; }
.lbc-info dl.variation dt, .lbc-info dl.variation dd, .lbc-info dl.variation p { margin: 0; display: inline; }
.lbc-preco { font-size: 15px; }
.lbc-preco del { color: var(--lbc-tinta2); margin-right: 6px; }
.lbc-preco ins { text-decoration: none; }
.lbc-qtd { display: inline-grid; grid-template-columns: 38px 38px 38px; border: 1px solid var(--lbc-linha); height: 42px; align-items: center; }
.lbc-qtd button { background: none; border: 0; height: 100%; font-size: 18px; color: inherit; cursor: pointer; font-family: inherit; }
.lbc-qtd button:disabled { opacity: .3; cursor: default; }
.lbc-qtd output { text-align: center; font-size: 14px; }
.lbc-remover { background: none; border: 0; padding: 0; font: inherit; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: transparent; transition: text-decoration-color .2s; }
.lbc-remover:hover { text-decoration-color: currentColor; }

/* rodapé */
.lbc-pe { position: sticky; bottom: 0; background: var(--lbc-fundo); border-top: 1px solid var(--lbc-linha); padding: 18px 22px 16px; margin: auto -22px 0; display: grid; gap: 12px; }
.lbc-sub { display: flex; justify-content: space-between; align-items: baseline; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
.lbc-sub strong { font-size: 24px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.lbc-sub .woocommerce-Price-currencySymbol { font-size: .7em; margin-right: 2px; }
.lbc-erro { color: #a3372f; font-size: 13px; }
.lbc a.lbc-finalizar, .lbc a.lbc-continuar { display: block; text-align: center; padding: 16px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 500; border: 1px solid var(--lbc-tinta); transition: background .2s, color .2s; }
.lbc a.lbc-finalizar { background: var(--lbc-tinta); color: var(--lbc-fundo); }
.lbc a.lbc-continuar { background: var(--lbc-fundo); color: var(--lbc-tinta); }
.lbc a.lbc-finalizar:hover { background: var(--acento, #333); border-color: var(--acento, #333); color: var(--sobre-acento, #fff); }
.lbc a.lbc-continuar:hover { background: var(--lbc-tinta); color: var(--lbc-fundo); }
.lbc-nota { font-size: 12px; font-style: italic; color: var(--lbc-tinta2); }

.lbc-vazio { padding: 44px 0 12px; display: grid; gap: 16px; justify-items: start; font-size: 18px; }
.lbc .lbc-vazio a.lbc-continuar { padding: 14px 28px; }

.lbc.lbc-ocupado { opacity: .6; pointer-events: none; transition: opacity .15s; }

/* a nova home já tem a gaveta; aqui só a nota antiga sai, porque o rodapé novo diz a mesma coisa */
#gaveta-sacola .lbnh-nota { display: none; }
#gaveta-sacola .corpo { display: flex; flex-direction: column; padding-bottom: 0; }
#gaveta-sacola .widget_shopping_cart_content { display: block; flex: 1; }

/* Flatsome: o painel lateral dele ganha o mesmo respiro */
.off-canvas .widget_shopping_cart_content { padding: 0 22px; }

/* frete por CEP na sacola */
.lbc-frete { border-bottom: 1px solid var(--lbc-linha); }
.lbc-frete-btn { width: 100%; display: flex; justify-content: space-between; align-items: center; background: none; border: 0; padding: 12px 0; font: inherit; font-size: 13px; color: inherit; cursor: pointer; text-align: left; }
.lbc-frete-btn[aria-expanded="true"] .lbc-sinal::after { transform: rotate(0); }
.lbc-frete-campo { padding: 0 0 12px; display: grid; gap: 8px; }
.lbc-frete-linha { display: flex; gap: 8px; }
.lbc-frete-linha input { flex: 1; min-width: 0; height: 42px; border: 1px solid var(--lbc-linha); background: var(--lbc-fundo); color: inherit; font: inherit; padding: 0 12px; border-radius: 0; }
.lbc-frete-linha input:focus { outline: 1.5px solid var(--lbc-tinta); outline-offset: 0; }
.lbc-frete-linha button { height: 42px; padding: 0 16px; border: 1px solid var(--lbc-tinta); background: var(--lbc-tinta); color: var(--lbc-fundo); font: inherit; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.lbc-frete-resultado { display: grid; gap: 6px; font-size: 13px; }
.lbc-frete-resultado .opcao { display: flex; justify-content: space-between; gap: 10px; padding: 8px 10px; background: color-mix(in srgb, var(--lbc-tinta) 5%, transparent); }
.lbc-frete-resultado .opcao small { display: block; color: var(--lbc-tinta2); }
.lbc-frete-resultado .erro { color: #a3372f; }

/* v1.1.2: o campo do presente abre inteiro; o rodapé só leva subtotal e botões; a gaveta fica acima do botão do WhatsApp */
.lbc-presente-campo textarea { min-height: 84px; }
.lbc-frete { margin: 10px 0 0; border-top: 1px solid var(--lbc-linha); }
.lbc-pe { padding-top: 14px; padding-bottom: 14px; gap: 10px; }
.lbc-nota { display: none; }
@media (max-height: 760px) { .lbc-pe { position: static; margin-top: 12px; } }
.gaveta { z-index: 2147483001; }
.cortina { z-index: 2147483000; }
