/* Badge "🎁 Brinde" prefixado ao nome do produto no carrinho/mini-carrinho. */
.dcwb-gwp-badge {
	display: inline-block;
	background: #16a34a;
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	padding: 2px 6px;
	border-radius: 3px;
	margin-inline-end: 6px;
	vertical-align: middle;
}

/* Preço riscado + "GRÁTIS" no lugar do preço normal do item de brinde. */
.dcwb-gwp-free-label {
	color: #16a34a;
	font-weight: 700;
	text-decoration: none;
}

/* Quantidade travada em 1 (texto fixo, sem stepper) no item de brinde. */
.dcwb-gwp-gift-qty {
	display: inline-block;
	padding: 2px 8px;
}

/* Botão "Não quero este brinde" -- cor/formato base, válido pro carrinho
   normal (tabela, sem os ajustes de posição abaixo, já testado ok antes)
   e reaproveitado como ponto de partida pro carrinho lateral. */
a.dcwb-gwp-decline {
	width: auto !important;
	height: auto !important;
	border: 1px solid #d1d5db !important;
	border-radius: 999px !important;
	padding: 4px 10px !important;
	font-size: 11px !important;
	line-height: 1.3 !important;
	white-space: nowrap;
	background: #f9fafb !important;
	color: #6b7280 !important;
}

/* O ícone nativo do "x" (fonte de ícone própria do tema, glyph "\f112")
   mora no :after, não no :before -- confirmado direto no CSS do tema
   (.woocommerce-mini-cart .remove:after{content:"\f112";...}). Suprimir só
   o :before (primeira tentativa) deixava esse ícone sobrando colado no
   fim do nosso próprio texto. */
a.dcwb-gwp-decline:before,
a.dcwb-gwp-decline:after {
	content: none !important;
}

a.dcwb-gwp-decline:hover {
	background: #fee2e2 !important;
	border-color: #fca5a5 !important;
	color: #dc2626 !important;
}

/* Histórico desse botão no carrinho lateral (4 tentativas até aqui, todas
   com o texto completo "Não quero este brinde"):
   1) position:absolute nativo (top:1px;right:0, pensado pra um círculo de
      20px) só trocando o texto -- cortava na borda do painel
      (.wd-scroll-content tem overflow-x:hidden, confirmado no CSS do
      tema, e o texto crescendo pra esquerda sem limite de largura
      estourava esse limite).
   2) position:static -- o <li> é display:flex e a única razão da ordem
      no DOM (o link de recusar vem ANTES da foto no template do
      WooCommerce) nunca ter importado era justamente o absolute tirando
      ele do fluxo do flex; virando static ele empurrava a foto. `order`
      resolvia a ordem, mas a largura do texto voltava a competir por
      espaço e cortar -- mesma causa raiz do item 1, via overflow do flex.
   3) position:absolute nativo de novo, mas com largura fixa (68px) +
      quebra de linha (white-space:normal) + espaço reservado em
      .cart-info -- em produção o texto quebrou palavra por palavra numa
      coluna bem mais estreita que 68px (motivo exato não confirmado; não
      valia insistir mais nisso sem navegador aqui pra depurar ao vivo).
   Decisão: parar de tentar caber o texto LONGO no carrinho lateral (só
   340px de largura). Usa sempre o rótulo curto "Recusar" (8 caracteres)
   ali -- cabe numa linha só, sem quebra, em qualquer uma das 3 formas de
   posicionamento acima, o que elimina essa classe inteira de bug. O texto
   completo continua no carrinho de página normal e no pop-up de brindes
   (contextos com espaço de sobra, já confirmados funcionando, não
   tocados). */
.dcwb-gwp-decline-short {
	display: none;
}

.woocommerce-mini-cart .dcwb-gwp-decline-full {
	display: none;
}

.woocommerce-mini-cart .dcwb-gwp-decline-short {
	display: inline;
}

.woocommerce-mini-cart li.dcwb-gwp-gift-row .cart-info {
	padding-right: 56px !important;
}

.woocommerce-mini-cart a.dcwb-gwp-decline {
	position: absolute !important;
	top: 14px !important;
	right: 0 !important;
	left: auto !important;
	bottom: auto !important;
	display: block !important;
	width: 48px !important;
	white-space: nowrap !important;
	text-align: center !important;
	padding: 3px 4px !important;
	font-size: 10px !important;
}


/* Barras de progresso próprias do brinde -- reaproveitam as classes visuais
   nativas do Woodmart (wd-progress-bar / wd-free-progress-bar / progress-area
   / progress-bar), só a marcação abaixo é nossa. */
.dcwb-gwp-mini-cart-bars,
.dcwb-gwp-cart-bars,
.dcwb-gwp-checkout-bars {
	margin-bottom: 12px;
}

/* Compacta especificamente dentro do carrinho lateral -- é onde o espaço é
   mais apertado (com 2-3 regras ativas ao mesmo tempo, a lista de brindes
   empurrava até os botões de finalizar compra pra fora da vista sem
   scroll). A página de carrinho e o pop-up têm espaço de sobra e continuam
   no tamanho normal, sem nada disto. Não tira nenhuma informação, só o
   espaço em volta dela.
   --wd-progress-height é a própria variável do tema que controla a altura
   da barrinha de progresso (usada por .progress-area/.progress-bar) --
   reaproveitar em vez de tentar sobrescrever a altura na unha. */
.dcwb-gwp-mini-cart-bars {
	margin-bottom: 4px;
}

.dcwb-gwp-mini-cart-bars .wd-free-progress-bar {
	--wd-progress-height: 3px;
	padding-block: 4px !important;
}

/* O tema aplica margin-top:10px fixo no .progress-bar, sem relação com a
   variável de altura -- fica gordo demais aqui mesmo com a barra fininha. */
.dcwb-gwp-mini-cart-bars .progress-bar {
	margin-top: 3px !important;
}

.dcwb-gwp-mini-cart-bars .dcwb-gwp-progress-row {
	gap: 6px;
}

.dcwb-gwp-mini-cart-bars img.dcwb-gwp-gift-thumb {
	width: 26px !important;
	height: 26px !important;
	max-width: 26px;
	border-radius: 4px;
}

.dcwb-gwp-mini-cart-bars .progress-msg {
	font-size: 10.5px;
	line-height: 1.25;
	margin-bottom: 2px;
}

.dcwb-gwp-mini-cart-bars .dcwb-gwp-reclaim-btn {
	padding: 3px 7px;
	font-size: 10px;
}

.dcwb-gwp-mini-cart-bars .dcwb-gwp-gifts-trigger {
	margin-top: 0;
	padding: 3px 8px;
	font-size: 10px;
}

.dcwb-gwp-cart-bars .wd-free-progress-bar + .wd-free-progress-bar,
.dcwb-gwp-checkout-bars .wd-free-progress-bar + .wd-free-progress-bar {
	margin-top: 8px;
}

.dcwb-gwp-mini-cart-bars .wd-free-progress-bar + .wd-free-progress-bar {
	margin-top: 0 !important;
}

.dcwb-gwp-earned .progress-msg {
	color: #16a34a;
	font-weight: 600;
}

/* Linha foto + texto dentro de cada barra de brinde. */
.dcwb-gwp-progress-row {
	display: flex;
	align-items: center;
	gap: 12px;
}

.dcwb-gwp-progress-body {
	flex: 1 1 auto;
	min-width: 0;
}

.dcwb-gwp-progress-row .progress-msg {
	margin-bottom: 6px;
}

.dcwb-gwp-progress-row picture {
	flex: 0 0 auto;
	display: block;
}

img.dcwb-gwp-gift-thumb {
	width: 48px !important;
	height: 48px !important;
	max-width: 48px;
	object-fit: cover;
	border-radius: 6px;
	border: 1px solid var(--brdcolor-gray-300, #e5e7eb);
}

/* Vitrine pública [dcwb_gift_rules] -- lista de faixas fora do carrinho. */
.dcwb-gwp-showcase {
	max-width: 100%;
	margin-bottom: 20px;
}

.dcwb-gwp-showcase-title {
	font-weight: 700;
	font-size: 16px;
	margin-bottom: 10px;
}

.dcwb-gwp-showcase-list {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.dcwb-gwp-showcase-item {
	display: flex;
	align-items: center;
	gap: 10px;
	background: #f9fafb;
	border: 1px dashed var(--brdcolor-gray-300, #e5e7eb);
	border-radius: 8px;
	padding: 10px 14px;
	flex: 1 1 260px;
}

.dcwb-gwp-showcase-desc {
	font-size: 13px;
	color: #6b7280;
}

.dcwb-gwp-showcase-gift {
	font-weight: 600;
	font-size: 14px;
}

/* Status real do carrinho atual dentro de cada item da vitrine/pop-up --
   "já ganhou" / "recusou, pode resgatar" / "esgotado". */
.dcwb-gwp-showcase-status {
	margin-top: 6px;
	font-size: 12px;
}

.dcwb-gwp-showcase-status--earned {
	color: #16a34a;
	font-weight: 600;
}

.dcwb-gwp-showcase-status--out {
	color: #9ca3af;
	font-style: italic;
}

.dcwb-gwp-showcase-item .dcwb-gwp-reclaim-btn {
	margin-top: 6px;
}

/* Botão "Ver brindes disponíveis" (carrinho lateral, carrinho, menu mobile).
   O tema aplica um estilo genérico pesado (maiúsculas, negrito forte, canto
   quase reto, padding grande) em QUALQUER <button> da página -- como nosso
   próprio seletor de classe tem especificidade baixa, esse estilo genérico
   vencia o nosso. Reforça aqui com !important nas propriedades que
   realmente mudam a aparência, pra garantir que o visual pretendido
   (discreto, arredondado, sem caixa alta) sempre vence, não importa onde o
   botão apareça no site. */
button.dcwb-gwp-gifts-trigger {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	width: auto !important;
	height: auto !important;
	background: transparent !important;
	border: 1px solid #d1d5db !important;
	border-radius: 999px !important;
	padding: 6px 14px !important;
	font-size: 11.5px !important;
	font-weight: 500 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	line-height: 1.3 !important;
	color: #6b7280 !important;
	cursor: pointer !important;
	margin-top: 4px !important;
}

button.dcwb-gwp-gifts-trigger:hover {
	background: #f9fafb !important;
	border-color: #9ca3af !important;
	color: #374151 !important;
}

/* Bloco "recusou, mudou de ideia?" -- mesmo visual das outras barras, cor
   neutra (nem verde de conquista, nem roxo de progresso). */
.dcwb-gwp-declined .progress-msg {
	color: #6b7280;
}

.dcwb-gwp-declined .progress-area {
	display: none;
}

/* Mesmo motivo do botão "Ver brindes" acima -- reforça pra não herdar o
   botão genérico pesado do tema. */
button.dcwb-gwp-reclaim-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: auto !important;
	height: auto !important;
	background: #5b25b1 !important;
	color: #fff !important;
	border: 2px solid #5b25b1 !important;
	border-radius: 999px !important;
	padding: 7px 16px !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	line-height: 1.3 !important;
	cursor: pointer !important;
}

button.dcwb-gwp-reclaim-btn:hover {
	background: #47208d !important;
}

button.dcwb-gwp-reclaim-btn:disabled {
	opacity: 0.6 !important;
	cursor: default !important;
}

/* Pop-up de brindes -- <dialog> nativo. */
dialog.dcwb-gwp-gifts-dialog {
	width: min(480px, 92vw);
	max-height: 80vh;
	border: none;
	border-radius: 12px;
	padding: 0;
	overflow: hidden;
}

dialog.dcwb-gwp-gifts-dialog::backdrop {
	background: rgba(17, 17, 17, 0.6);
}

.dcwb-gwp-gifts-dialog-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	font-weight: 700;
	font-size: 16px;
	border-bottom: 1px solid var(--brdcolor-gray-300, #e5e7eb);
}

button.dcwb-gwp-gifts-dialog-close {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 32px !important;
	height: 32px !important;
	background: none !important;
	border: none !important;
	border-radius: 6px !important;
	font-size: 22px !important;
	font-weight: 400 !important;
	text-transform: none !important;
	line-height: 1 !important;
	cursor: pointer !important;
	color: #6b7280 !important;
	padding: 0 !important;
}

button.dcwb-gwp-gifts-dialog-close:hover {
	background: #f3f4f6 !important;
}

.dcwb-gwp-gifts-dialog-body {
	padding: 16px 20px;
	overflow-y: auto;
	max-height: calc(80vh - 60px);
}

.dcwb-gwp-gifts-dialog-body .dcwb-gwp-showcase-list {
	flex-direction: column;
	gap: 8px;
}

/* Sem isto, o item herdava flex:1 1 260px -- 260px vira uma altura mínima
   MUITO alta assim que o eixo principal do flex vira vertical (coluna), e o
   grow espalhava esse espaço vazio entre os cards. Trava no tamanho do
   conteúdo. */
.dcwb-gwp-gifts-dialog-body .dcwb-gwp-showcase-item {
	flex: 0 0 auto;
	padding: 8px 12px;
}
