/*
 * AREA HEADER - Fastyshop V8 (area do modulo 2.8)
 * ------------------------------------------------------------------
 * TROCA LOCAL: o Header V8 substitui apenas o <header> do tema.
 * O conteudo da pagina, os estilos do tema/Elementor e o footer
 * permanecem naturais.
 *
 * GUILHOTINA ANTI-TEMA (V8 SEMPRE VENCE): TODAS as regras deste
 * arquivo carregam !important e escopo proprio (#v8sf-* / .v8sf-*).
 * Se o Razzi (ou qualquer plugin/Elementor) atualizar amanha, nada
 * dele invade o visual do V8: uma regra NORMAL do tema perde para
 * !important, e um seletor de ELEMENTO (button/input/a/form/...)
 * perde para os seletores com prefixo de elemento (ex.:
 * input.v8sf-hdr-search-input) usados abaixo.
 *
 * REGRA DE MANUTENCAO (obrigatoria):
 *  1. Toda declaracao nova DEVE terminar com !important;
 *  2. Seletor de elemento SEMPRE com prefixo (button. / a. / input.);
 *  3. Mudanca de estado via JS usa atributo hidden + regra [hidden]
 *     deste arquivo (nunca style.display inline).
 *
 * O MOBILE e uma replicacao fiel do amostra-cart.html (padrao aprovado):
 * botao voltar/hamburguer + logo + busca com micro-interacoes + carrinho.
 * Tokens vindos do painel (--v8sf-hdr-bg/-text/-primary).
 */

/* ---------------------------------------------------------------
   SEGURANCA - se por algum motivo o tema nao tiver <header> para
   trocar, o header antigo jamais exibe. O footer do tema fica vivo.
   --------------------------------------------------------------- */
body.fastyshop-v8-header #site-header,
body.fastyshop-v8-header .site-header,
body.fastyshop-v8-header .site-branding {
	display: none !important;
}

/* ---------------------------------------------------------------
   GUILHOTINA - invariantes escopados ao V8. Nenhuma regra NORMAL
   do tema (button/input/a/ul/strong/svg...) muda estes valores.
   NAO usar overflow-x no body: quebra position:sticky no iOS.
   --------------------------------------------------------------- */
.v8sf-hdr-desktop,
.v8sf-hdr-desktop *,
.v8sf-hdr-mobile,
.v8sf-hdr-mobile *,
.v8sf-drawer,
.v8sf-drawer *,
.v8sf-search-backdrop {
	box-sizing: border-box !important;
	margin: 0 !important;
	font-family: inherit !important;
}

/* ---------------------------------------------------------------
   GUILHOTINA x TEMA - overflow-x: hidden do tema/CSS custom no
   html/body vira scroll container e ANULA o position:sticky do
   header (o elemento rola junto com a pagina). Aqui trocamos por
   overflow-x: clip: recorta o vazamento horizontal SEM criar
   scroll container, entao o sticky funciona e o layout nao
   estoura. Classe vai no <html> via language_attributes.
   --------------------------------------------------------------- */
html.fastyshop-v8-header,
html.fastyshop-v8-header body {
	overflow-x: clip !important;
}

/* Estado via JS usa atributo hidden: vence sempre o display do componente */
#v8sf-drawer[hidden],
#v8sf-drawer-backdrop[hidden],
#v8sf-hdr-pop-shortcuts[hidden],
#v8sf-hdr-pop-suggest[hidden],
#v8sf-hdr-pop-results[hidden],
#v8sf-hdr-pop-shortcuts-d[hidden],
#v8sf-hdr-pop-suggest-d[hidden],
#v8sf-hdr-pop-results-d[hidden] {
	display: none !important;
}

.v8sf-hdr-cart-badge[hidden],
.v8sf-hdr-mobile .v8sf-cart-badge[hidden] {
	display: none !important;
}

/* Mobile/desktop: cada versao aparece somente no seu breakpoint.
   O drawer de menu (hamburguer) e GLOBAL (mobile e desktop): a
   visibilidade e controlada pelo atributo hidden + classe .is-open. */
.v8sf-hdr-mobile {
	display: none !important;
}

/* ================================================================
   HEADER DESKTOP
   ================================================================ */
.v8sf-hdr-desktop {
	display: flex !important;
	flex-direction: column !important;
	background: var(--v8sf-hdr-bg, #fff) !important;
	border-bottom: 1px solid var(--border) !important;
	position: -webkit-sticky !important;
	position: sticky !important;
	top: 0 !important;
	z-index: 900 !important;
	transition: box-shadow 0.25s ease !important;
}

/* Sticky desativado no painel (hdr_sticky = no): header fica estático. */
.v8sf-hdr-desktop.v8sf-hdr-static {
	position: static !important;
	top: auto !important;
}

/* Bloco esquerdo do desktop: hambúrguer/voltar + logo (padrão mobile). */
.v8sf-hdr-desktop .v8sf-back {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	flex-shrink: 0 !important;
}

.v8sf-hdr-desktop .v8sf-hdr-back {
	display: flex !important;
	align-items: center !important;
	color: var(--v8sf-hdr-text, var(--text-main)) !important;
	text-decoration: none !important;
	transition: color 0.2s, background 0.2s !important;
	flex-shrink: 0 !important;
	padding: 6px !important;
	border-radius: 8px !important;
}

.v8sf-hdr-desktop .v8sf-hdr-back:hover {
	color: var(--brand) !important;
	background: rgba(16, 185, 129, 0.08) !important;
}

.v8sf-hdr-desktop.is-stuck {
	box-shadow: 0 6px 20px -10px rgba(17, 24, 39, 0.25) !important;
}

.v8sf-hdr-inner {
	display: flex !important;
	align-items: center !important;
	gap: 24px !important;
	max-width: 1280px !important;
	width: 100% !important;
	margin: 0 auto !important;
	padding: 14px 24px !important;
}

a.v8sf-hdr-logo {
	display: flex !important;
	align-items: center !important;
	flex-shrink: 0 !important;
	text-decoration: none !important;
}

.v8sf-hdr-logo-img {
	width: auto !important;
	height: auto !important;
	object-fit: contain !important;
}

.v8sf-hdr-logo-text {
	font-size: 24px !important;
	font-weight: 900 !important;
	letter-spacing: -1px !important;
	color: var(--brand) !important;
	white-space: nowrap !important;
}

.v8sf-hdr-search {
	position: relative !important;
	flex: 1 !important;
	min-width: 0 !important;
}

form.v8sf-hdr-search-form {
	margin: 0 !important;
}

input.v8sf-hdr-search-input {
	width: 100% !important;
	height: 46px !important;
	padding: 0 44px 0 44px !important;
	border: 1.5px solid var(--border) !important;
	border-radius: 12px !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	color: var(--text-main) !important;
	background: #FAFAFA !important;
	outline: none !important;
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

/* Blindagem de acessibilidade: o modal de login do tema deixa um
   <label class="lost_password"> órfão (sem for e sem input) em todas as
   páginas — fora da árvore de acessibilidade. O formulário REAL da
   página "Minha conta" continua intacto (body.woocommerce-account). */
body:not(.woocommerce-account) label.lost_password {
	display: none !important;
}
.v8sf-hdr-search input[type="search"]::-webkit-search-cancel-button,
.v8sf-hdr-search input[type="search"]::-webkit-search-decoration,
.v8sf-hdr-search input[type="search"]::-webkit-search-results-button,
.v8sf-hdr-search input[type="search"]::-webkit-search-results-decoration,
.v8sf-search-head input[type="search"]::-webkit-search-cancel-button,
.v8sf-drawer-search input[type="search"]::-webkit-search-cancel-button {
	display: none !important;
}

/* Com texto digitado: espaço para OK + X (desktop) */
.v8sf-hdr-search.v8sf-search-has-text input.v8sf-hdr-search-input {
	padding: 0 84px 0 44px !important;
}

input.v8sf-hdr-search-input:focus {
	border-color: var(--v8sf-hdr-primary) !important;
	background: #fff !important;
	box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.1) !important;
}

input.v8sf-hdr-search-input::placeholder {
	color: var(--text-muted) !important;
	font-weight: 500 !important;
}

.v8sf-hdr-search-icon {
	position: absolute !important;
	left: 16px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	color: var(--text-muted) !important;
	pointer-events: none !important;
	z-index: 1 !important;
}

/* Botão X — limpar/cancelar a busca (desktop) */
button.v8sf-search-clear {
	position: absolute !important;
	right: 12px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 26px !important;
	height: 26px !important;
	padding: 0 !important;
	margin: 0 !important;
	border: none !important;
	border-radius: 50% !important;
	background: #EEF0F2 !important;
	color: var(--text-muted) !important;
	cursor: pointer !important;
	z-index: 2 !important;
	line-height: 1 !important;
	transition: background 0.2s ease, color 0.2s ease !important;
}

button.v8sf-search-clear:hover {
	background: #E2E5E8 !important;
	color: var(--text-main) !important;
}

.v8sf-search-clear[hidden] {
	display: none !important;
}

/* Botão OK — submeter a busca (desktop, antes do X) */
button.v8sf-search-go {
	position: absolute !important;
	right: 46px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: 26px !important;
	padding: 0 10px !important;
	margin: 0 !important;
	border: none !important;
	border-radius: 8px !important;
	background: var(--v8sf-hdr-primary, #10B981) !important;
	color: #FFFFFF !important;
	font-size: 12.5px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	cursor: pointer !important;
	z-index: 2 !important;
	transition: opacity 0.2s ease !important;
}

button.v8sf-search-go:hover {
	opacity: 0.9 !important;
}

.v8sf-search-go[hidden] {
	display: none !important;
}

.v8sf-hdr-search-pop {
	position: absolute !important;
	top: calc(100% + 10px) !important;
	left: 0 !important;
	right: 0 !important;
	background: var(--surface) !important;
	border: 1px solid var(--border) !important;
	border-radius: 14px !important;
	box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.18) !important;
	padding: 16px !important;
	display: none !important;
	z-index: 999 !important;
}

.v8sf-hdr-search.is-open .v8sf-hdr-search-pop {
	display: block !important;
	animation: v8sf-pop-in 0.2s ease !important;
}

@keyframes v8sf-pop-in {
	from { opacity: 0; transform: translateY(-6px); }
	to { opacity: 1; transform: translateY(0); }
}

.v8sf-hdr-pop-title {
	font-size: 11px !important;
	font-weight: 800 !important;
	color: var(--text-muted) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	margin-bottom: 10px !important;
}

.v8sf-hdr-pop-grid {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 8px !important;
}

a.v8sf-hdr-pop-chip {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	padding: 12px 8px !important;
	background: #FAFAFA !important;
	border: 1px solid var(--border) !important;
	border-radius: 10px !important;
	font-size: 12.5px !important;
	font-weight: 700 !important;
	color: var(--text-main) !important;
	text-decoration: none !important;
	transition: all 0.2s ease !important;
	text-align: center !important;
}

a.v8sf-hdr-pop-chip:hover {
	border-color: var(--v8sf-hdr-primary) !important;
	color: var(--v8sf-hdr-primary) !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 8px 16px -6px rgba(16, 185, 129, 0.25) !important;
}

/* Resultados de busca no pop DESKTOP (mesmo padrão do mobile) */
.v8sf-hdr-search-pop .v8sf-pop-results {
	display: flex !important;
	flex-direction: column !important;
	max-height: 70vh !important;
	overflow-y: auto !important;
}

.v8sf-hdr-search-pop a.v8sf-pop-row {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	padding: 12px 10px !important;
	border-radius: 10px !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	color: var(--text-main) !important;
	text-decoration: none !important;
	transition: background 0.2s ease !important;
}

.v8sf-hdr-search-pop a.v8sf-pop-row:hover {
	background: #FAFAFA !important;
}

.v8sf-hdr-search-pop .v8sf-pop-row img {
	width: 64px !important;
	height: 76px !important;
	border-radius: 8px !important;
	object-fit: cover !important;
	border: 1px solid var(--border) !important;
	background: #FFFFFF !important;
	flex-shrink: 0 !important;
}

.v8sf-hdr-search-pop .v8sf-pop-result-name {
	font-size: 14px !important;
	font-weight: 700 !important;
	color: var(--text-main) !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
}

.v8sf-hdr-search-pop .v8sf-pop-see-all {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	padding: 13px 8px !important;
	margin-top: 4px !important;
	border-top: 1px solid var(--border) !important;
	font-size: 13.5px !important;
	font-weight: 800 !important;
	color: var(--v8sf-hdr-primary) !important;
	text-decoration: none !important;
	transition: background 0.2s ease !important;
}

.v8sf-hdr-search-pop .v8sf-pop-see-all:hover {
	background: #FAFAFA !important;
}

.v8sf-hdr-search-pop .v8sf-pop-empty,
.v8sf-hdr-search-pop .v8sf-pop-loading {
	padding: 16px 8px !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: var(--text-muted) !important;
	text-align: center !important;
}

.v8sf-hdr-actions {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	flex-shrink: 0 !important;
}

a.v8sf-hdr-action {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	padding: 10px 14px !important;
	border-radius: 12px !important;
	color: var(--v8sf-hdr-text, var(--text-main)) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	transition: background 0.2s ease, color 0.2s ease !important;
}

a.v8sf-hdr-action:hover {
	background: rgba(16, 185, 129, 0.08) !important;
	color: var(--v8sf-hdr-primary) !important;
}

a.v8sf-hdr-cart {
	position: relative !important;
	display: inline-flex !important;
	align-items: center !important;
	padding: 10px 14px !important;
	border-radius: 12px !important;
	color: var(--v8sf-hdr-text, var(--text-main)) !important;
	text-decoration: none !important;
	transition: background 0.2s ease, color 0.2s ease !important;
}

a.v8sf-hdr-cart:hover {
	background: rgba(16, 185, 129, 0.08) !important;
	color: var(--v8sf-hdr-primary) !important;
}

.v8sf-hdr-cart-badge {
	position: absolute !important;
	top: 0 !important;
	right: 2px !important;
	min-width: 18px !important;
	height: 18px !important;
	padding: 0 5px !important;
	background: var(--v8sf-hdr-primary, var(--success)) !important;
	border: 2px solid var(--v8sf-hdr-bg, #fff) !important;
	border-radius: 999px !important;
	color: #fff !important;
	font-size: 10px !important;
	font-weight: 800 !important;
	line-height: 14px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}

.v8sf-hdr-nav {
	border-top: 1px solid var(--border) !important;
	background: var(--v8sf-hdr-bg, #fff) !important;
}

.v8sf-hdr-menu,
.v8sf-hdr-nav .page_item {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.v8sf-hdr-nav .v8sf-hdr-menu {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 4px !important;
	max-width: 1280px !important;
	margin: 0 auto !important;
	padding: 0 24px !important;
	overflow-x: auto !important;
	scrollbar-width: none !important;
}

.v8sf-hdr-nav .v8sf-hdr-menu::-webkit-scrollbar {
	display: none !important;
}

.v8sf-hdr-nav .v8sf-hdr-menu > li {
	position: relative !important;
}

.v8sf-hdr-nav .v8sf-hdr-menu > li > a {
	display: block !important;
	padding: 12px 16px !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	color: var(--v8sf-hdr-text, var(--text-main)) !important;
	text-decoration: none !important;
	white-space: nowrap !important;
	transition: color 0.2s ease !important;
}

.v8sf-hdr-nav .v8sf-hdr-menu > li > a:hover,
.v8sf-hdr-nav .v8sf-hdr-menu > li.current-menu-item > a {
	color: var(--v8sf-hdr-primary) !important;
}

body.v8sf-header-layout-split .v8sf-hdr-inner {
	gap: 40px !important;
}

body.v8sf-header-layout-split .v8sf-hdr-search {
	max-width: 560px !important;
	margin: 0 auto !important;
}

body.v8sf-header-layout-minimal .v8sf-hdr-search {
	display: none !important;
}
/* ================================================================
   HEADER MOBILE - REPLICACAO FIEL DO AMOSTRA-CART.HTML
   ================================================================ */
@media (max-width: 768px) {

	.v8sf-hdr-desktop {
		display: none !important;
	}

	.v8sf-hdr-mobile {
		display: flex !important;
		justify-content: space-between !important;
		align-items: center !important;
		background: var(--v8sf-hdr-bg, var(--surface)) !important;
		border-bottom: 1px solid var(--border) !important;
		padding: 16px 16px !important;
		position: -webkit-sticky !important;
		position: sticky !important;
		top: 0 !important;
		z-index: 900 !important;
		box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02) !important;
		transition: box-shadow 0.25s ease !important;
	}

	.v8sf-hdr-mobile.is-stuck {
		box-shadow: 0 6px 20px -10px rgba(17, 24, 39, 0.25) !important;
	}

	.v8sf-hdr-mobile.v8sf-search-open {
		padding-left: 8px !important;
	}

	/* Bloco esquerdo: voltar/hamburguer + logo */
	.v8sf-hdr-mobile .v8sf-back {
		display: flex !important;
		align-items: center !important;
		gap: 2px !important;
		flex-shrink: 0 !important;
		overflow: hidden !important;
		transition: gap 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
	}

	.v8sf-hdr-mobile .v8sf-brand {
		display: flex !important;
		align-items: center !important;
		overflow: hidden !important;
		white-space: nowrap !important;
		/* FASE 2.1 — logo limitada no mobile: libera largura para o input
		   de busca (antes, marca de até 200px + paddings deixavam ~14px
		   úteis no input — o texto cortava seco, tipo "pesqu"). */
		max-width: min(200px, 32vw) !important;
		flex-shrink: 1 !important;
		min-width: 0 !important;
		transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1),
			transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
			max-width 0.35s cubic-bezier(0.16, 1, 0.3, 1);
	}

	.v8sf-hdr-mobile .v8sf-hdr-logo-text {
		font-size: 24px !important;
		font-weight: 800 !important;
		letter-spacing: -1px !important;
		color: var(--brand) !important;
		white-space: nowrap !important;
		overflow: hidden !important;
	}

	.v8sf-hdr-mobile .v8sf-hdr-logo-img {
		max-height: 34px !important;
		width: auto !important;
		height: auto !important;
	}

	/* Botao voltar (mesmo estilo do amostra) */
	.v8sf-hdr-mobile .v8sf-hdr-back {
		display: flex !important;
		align-items: center !important;
		/* FASE 2.2 — largura/altura FIXA igual ao hambúrguer (32px): a
		   logo não muda de posição quando a página alterna entre o
		   hambúrguer (menu) e o botão voltar (produto). */
		width: 32px !important;
		height: 32px !important;
		min-width: 32px !important;
		justify-content: center !important;
		color: #9CA3AF !important;
		text-decoration: none !important;
		transition: color 0.2s !important;
		flex-shrink: 0 !important;
	}

	.v8sf-hdr-mobile .v8sf-hdr-back:hover {
		color: #111827 !important;
	}

/* Hamburguer */
	header.v8sf-hdr button.v8sf-hdr-burger {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 32px !important;
		height: 32px !important;
		min-width: 32px !important;
		max-width: 32px !important;
		min-height: 32px !important;
		max-height: 32px !important;
		padding: 0 !important;
		margin: 0 !important;
		line-height: 1 !important;
		font-size: 0 !important;
		letter-spacing: 0 !important;
		border: none !important;
		background: none !important;
		color: var(--v8sf-hdr-text, var(--text-main)) !important;
		cursor: pointer !important;
		border-radius: 8px !important;
		transition: background 0.2s ease, color 0.2s ease !important;
		flex-shrink: 0 !important;
		appearance: none !important;
		-webkit-appearance: none !important;
		box-shadow: none !important;
		text-indent: 0 !important;
		white-space: nowrap !important;
	}

	header.v8sf-hdr button.v8sf-hdr-burger svg {
		width: 22px !important;
		height: 22px !important;
		flex-shrink: 0 !important;
	}

	header.v8sf-hdr button.v8sf-hdr-burger:active {
		background: rgba(16, 185, 129, 0.1) !important;
	}

	/* MICRO-INTERACAO: expandir a busca esconde a marca (exato do amostra) */
	.v8sf-hdr-mobile.v8sf-search-open .v8sf-back {
		gap: 0 !important;
	}

	.v8sf-hdr-mobile.v8sf-search-open .v8sf-brand {
		opacity: 0 !important;
		transform: translateX(-16px) !important;
		max-width: 0 !important;
	}

	/* Busca */
	.v8sf-hdr-mobile .v8sf-search-head {
		flex: 1 !important;
		/* FASE 2.1 — folga lateral menor: mais largura útil no input. */
		padding: 0 8px !important;
		min-width: 0 !important;
		position: relative !important;
		/* FASE 3.9 — o botão OK sai de cima do input (era absoluto e
		   roubava 80px do texto) e vira botão ao lado da caixa. */
		display: flex !important;
		align-items: center !important;
		gap: 6px !important;
	}

	.v8sf-hdr-mobile .v8sf-search-head input[type="search"]::-webkit-search-cancel-button {
		display: none !important;
	}

	.v8sf-hdr-mobile .v8sf-search-head input {
		transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
	}

	.v8sf-hdr-mobile.v8sf-search-open .v8sf-search-head {
		padding-left: 0 !important;
	}

	.v8sf-hdr-mobile.v8sf-search-open .v8sf-search-head .v8sf-search-icon {
		left: 16px !important;
	}

	.v8sf-hdr-mobile.v8sf-search-open .v8sf-search-head input {
		border-color: var(--v8sf-hdr-primary, var(--success)) !important;
		background-color: #FFFFFF !important;
		box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.1) !important;
		animation: v8sf-expand-in 0.45s cubic-bezier(0.16, 1, 0.3, 1) !important;
	}

	@keyframes v8sf-expand-in {
		0% { transform: scaleX(0.96); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
		60% { box-shadow: 0 0 0 10px rgba(16, 185, 129, 0.09); }
		100% { transform: scaleX(1); box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.1); }
	}

	.v8sf-hdr-mobile .v8sf-search-icon {
		position: absolute !important;
		left: 28px !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		color: var(--text-muted) !important;
		pointer-events: none !important;
		z-index: 1 !important;
	}

	/* 0.1.105 — X FORA do input também: nada cobre a área de texto.
	   Ordem no mobile: [input][X][OK] — o texto vai até o fim da caixa
	   (padding direito só 12px) e rola nativamente acompanhando o cursor. */
	.v8sf-hdr-mobile .v8sf-search-head .v8sf-search-clear {
		position: static !important;
		transform: none !important;
		width: 34px !important;
		height: 44px !important;
		border-radius: 10px !important;
		background: transparent !important;
		color: var(--text-muted) !important;
		flex-shrink: 0 !important;
	}

	/* FASE 3.9 — OK FORA do input: botão compacto à direita da caixa
	   (padrão de app). O input fica 100% para o texto. */
	.v8sf-hdr-mobile .v8sf-search-head .v8sf-search-go {
		position: static !important;
		transform: none !important;
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		flex-shrink: 0 !important;
		height: 44px !important;
		padding: 0 10px !important;
		border-radius: 10px !important;
		font-size: 13px !important;
		font-weight: 800 !important;
	}

	.v8sf-hdr-mobile .v8sf-search-head .v8sf-search-go[hidden] {
		display: none !important;
	}

	.v8sf-hdr-mobile .v8sf-search-head input {
		flex: 1 !important;
		min-width: 0 !important;
		width: auto !important;
		height: 44px !important;
		/* 0.1.105 — sem nada dentro à direita: o texto chega até o fim da
		   caixa (padding direito 12px). SEM ellipsis — rola nativo. */
		padding: 0 12px 0 40px !important;
		border: 1.5px solid var(--border) !important;
		border-radius: 10px !important;
		font-size: 15px !important;
		font-weight: 500 !important;
		color: var(--text-main) !important;
		background-color: #FAFAFA !important;
		outline: none !important;
	}

	.v8sf-hdr-mobile .v8sf-search-head input:focus {
		border-color: var(--v8sf-hdr-primary, var(--success)) !important;
		background-color: #FFFFFF !important;
		box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.1) !important;
	}

	.v8sf-hdr-mobile .v8sf-search-head input::placeholder {
		color: var(--text-muted) !important;
		font-weight: 500 !important;
	}

	/* POP da busca (atalhos + sugestoes) */
	.v8sf-hdr-mobile .v8sf-search-pop {
		position: absolute !important;
		top: calc(100% + 12px) !important;
		left: 0 !important;
		right: 0 !important;
		background: var(--surface) !important;
		border: 1px solid var(--border) !important;
		border-radius: 16px !important;
		box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.18) !important;
		padding: 16px !important;
		display: none !important;
		z-index: 999 !important;
	}

	.v8sf-hdr-mobile.v8sf-search-open .v8sf-search-pop {
		display: block !important;
		animation: v8sf-pop-in 0.2s ease !important;
	}

	@keyframes v8sf-pop-in {
		from { opacity: 0; transform: translateY(-6px); }
		to { opacity: 1; transform: translateY(0); }
	}

	.v8sf-hdr-mobile .v8sf-pop-title {
		font-size: 12px !important;
		font-weight: 700 !important;
		color: var(--text-muted) !important;
		text-transform: uppercase !important;
		letter-spacing: 0.5px !important;
		margin-bottom: 10px !important;
	}

	.v8sf-hdr-mobile .v8sf-pop-grid {
		display: grid !important;
		grid-template-columns: repeat(3, 1fr) !important;
		gap: 8px !important;
	}

.v8sf-hdr-mobile a.v8sf-pop-chip {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		gap: 6px !important;
		padding: 14px 8px !important;
		background: #FAFAFA !important;
		border: 1px solid var(--border) !important;
		border-radius: 12px !important;
		font-size: 12.5px !important;
		font-weight: 700 !important;
		color: var(--text-main) !important;
		transition: all 0.2s ease !important;
		text-align: center !important;
		text-decoration: none !important;
	}

	.v8sf-hdr-mobile a.v8sf-pop-chip svg {
		color: var(--text-muted) !important;
	}

	.v8sf-hdr-mobile a.v8sf-pop-chip:hover {
		border-color: var(--success) !important;
		color: var(--success) !important;
		transform: translateY(-2px) !important;
		box-shadow: 0 8px 16px -6px rgba(16, 185, 129, 0.25) !important;
	}

	.v8sf-hdr-mobile a.v8sf-pop-row {
		display: flex !important;
		align-items: center !important;
		gap: 10px !important;
		padding: 12px 10px !important;
		border-radius: 10px !important;
		font-size: 14px !important;
		font-weight: 600 !important;
		color: var(--text-main) !important;
		transition: background 0.2s ease !important;
		text-decoration: none !important;
	}

	.v8sf-hdr-mobile a.v8sf-pop-row svg {
		color: var(--text-muted) !important;
		flex-shrink: 0 !important;
	}

	.v8sf-hdr-mobile a.v8sf-pop-row:hover {
		background: #FAFAFA !important;
	}

	.v8sf-hdr-mobile .v8sf-pop-results {
		display: flex !important;
		flex-direction: column !important;
		max-height: calc(100vh - 180px) !important;
		overflow-y: auto !important;
	}

.v8sf-hdr-mobile a.v8sf-pop-result-item {
		display: flex !important;
		align-items: center !important;
		gap: 12px !important;
		padding: 10px 8px !important;
		border-radius: 10px !important;
		text-decoration: none !important;
		transition: background 0.2s ease !important;
	}

	.v8sf-hdr-mobile a.v8sf-pop-result-item:hover {
		background: #FAFAFA !important;
	}

	.v8sf-hdr-mobile .v8sf-pop-result-item img {
		width: 42px !important;
		height: 42px !important;
		border-radius: 8px !important;
		object-fit: cover !important;
		border: 1px solid var(--border) !important;
		flex-shrink: 0 !important;
		background: #fff !important;
	}

	.v8sf-hdr-mobile .v8sf-pop-result-name {
		font-size: 14px !important;
		font-weight: 700 !important;
		color: var(--text-main) !important;
		white-space: nowrap !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
	}

	.v8sf-hdr-mobile .v8sf-pop-empty,
	.v8sf-hdr-mobile .v8sf-pop-loading {
		padding: 16px 8px !important;
		font-size: 13px !important;
		font-weight: 600 !important;
		color: var(--text-muted) !important;
		text-align: center !important;
	}

/* Carrinho (direita) */
	.v8sf-hdr-mobile a.header-trust {
		position: relative !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		color: var(--v8sf-hdr-text, var(--text-main)) !important;
		background: none !important;
		padding: 0 !important;
		border: none !important;
		text-decoration: none !important;
		flex-shrink: 0 !important;
	}

	.v8sf-hdr-mobile .v8sf-cart-badge {
		position: absolute !important;
		top: -6px !important;
		right: -8px !important;
		min-width: 18px !important;
		height: 18px !important;
		padding: 0 4px !important;
		background: var(--v8sf-hdr-primary, var(--success)) !important;
		border: 2px solid var(--v8sf-hdr-bg, var(--surface)) !important;
		border-radius: 999px !important;
		color: #fff !important;
		font-size: 10px !important;
		font-weight: 800 !important;
		line-height: 1 !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15) !important;
	}

	/* Backdrop da busca (fica ABAIXO do header, exato do amostra) */
	.v8sf-hdr-mobile.v8sf-search-open ~ .v8sf-search-backdrop {
		opacity: 1 !important;
		pointer-events: auto !important;
	}

	/* Seguranca: nada vaza do header */
	.v8sf-hdr-mobile {
		overflow: visible !important;
	}

	.v8sf-hdr-mobile .v8sf-search-head {
		overflow: visible !important;
	}

	@media (max-width: 380px) {
		.v8sf-hdr-mobile .v8sf-brand {
			max-width: 120px !important;
		}
		.v8sf-hdr-mobile .v8sf-hdr-logo-text {
			font-size: 20px !important;
		}
		.v8sf-hdr-mobile {
			padding: 12px 10px !important;
		}
	}
}
/* ------------------------------------------------------------
   DRAWER DE MENU (hamburguer) - GLOBAL (mobile E desktop).
   Identico em todas as telas: abre da esquerda, mesma animacao.
   Antes vivia dentro do @media (max-width:768px) e o desktop
   nao tinha como exibi-lo.
   ------------------------------------------------------------ */
	.v8sf-drawer-backdrop {
		position: fixed !important;
		inset: 0 !important;
		display: block !important;
		background: rgba(17, 24, 39, 0.45) !important;
		z-index: 1000 !important;
		opacity: 0 !important;
		pointer-events: none !important;
		transition: opacity 0.25s ease !important;
	}

	.v8sf-drawer-backdrop.is-open {
		opacity: 1 !important;
		pointer-events: auto !important;
	}

	.v8sf-drawer-backdrop[hidden] {
		display: none !important;
	}

	.v8sf-drawer {
		position: fixed !important;
		top: 0 !important;
		left: 0 !important;
		bottom: 0 !important;
		width: min(320px, 88vw) !important;
		background: var(--v8sf-drawer-bg, var(--surface)) !important;
		color: var(--v8sf-drawer-text, var(--text-main)) !important;
		z-index: 1001 !important;
		transform: translateX(-100%) !important;
		transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
		display: flex !important;
		flex-direction: column !important;
	}

	.v8sf-drawer[hidden] {
		display: none !important;
	}

	.v8sf-drawer.is-open {
		transform: translateX(0) !important;
		box-shadow: 20px 0 40px -20px rgba(0, 0, 0, 0.35) !important;
	}

	.v8sf-drawer-head {
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		padding: 18px 20px !important;
		border-bottom: 1px solid var(--border) !important;
		flex-shrink: 0 !important;
	}

	.v8sf-drawer-head strong {
		font-size: 16px !important;
		font-weight: 800 !important;
		color: var(--v8sf-drawer-text, var(--text-main)) !important;
	}

button.v8sf-drawer-close {
		width: 34px !important;
		height: 34px !important;
		padding: 0 !important;
		line-height: 1 !important;
		border: none !important;
		background: #F3F4F6 !important;
		border-radius: 10px !important;
		color: var(--text-muted) !important;
		cursor: pointer !important;
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		transition: all 0.2s ease !important;
	}

	button.v8sf-drawer-close:hover {
		color: var(--danger) !important;
		background: rgba(220, 38, 38, 0.08) !important;
	}

	.v8sf-drawer-body {
		flex: 1 !important;
		overflow-y: auto !important;
		overscroll-behavior: contain !important;
	}

	.v8sf-drawer-search {
		position: relative !important;
		margin: 16px 20px 4px !important;
	}

	.v8sf-drawer-search .v8sf-search-icon {
		position: absolute !important;
		left: 14px !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		color: var(--text-muted) !important;
		pointer-events: none !important;
		z-index: 1 !important;
	}

	.v8sf-drawer-search input {
		width: 100% !important;
		height: 44px !important;
		padding: 0 14px 0 40px !important;
		border: 1.5px solid var(--border) !important;
		border-radius: 10px !important;
		font-size: 14px !important;
		font-weight: 500 !important;
		background: #FAFAFA !important;
		outline: none !important;
	}

	.v8sf-drawer-search input:focus {
		border-color: var(--v8sf-hdr-primary, var(--success)) !important;
		background: #fff !important;
		box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.1) !important;
	}

	.v8sf-drawer-shortcuts {
		padding: 12px 20px 4px !important;
	}

	.v8sf-drawer .v8sf-pop-title {
		font-size: 12px !important;
		font-weight: 700 !important;
		color: var(--text-muted) !important;
		text-transform: uppercase !important;
		letter-spacing: 0.5px !important;
		margin-bottom: 10px !important;
	}

	.v8sf-drawer .v8sf-pop-grid {
		display: grid !important;
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 8px !important;
	}

	.v8sf-drawer a.v8sf-pop-chip {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		gap: 6px !important;
		padding: 12px 8px !important;
		background: #FAFAFA !important;
		border: 1px solid var(--border) !important;
		border-radius: 12px !important;
		font-size: 12.5px !important;
		font-weight: 700 !important;
		color: var(--text-main) !important;
		text-decoration: none !important;
		transition: all 0.2s ease !important;
		text-align: center !important;
	}

	.v8sf-drawer a.v8sf-pop-chip:hover {
		border-color: var(--success) !important;
		color: var(--success) !important;
		transform: translateY(-2px) !important;
		box-shadow: 0 8px 16px -6px rgba(16, 185, 129, 0.25) !important;
	}

	.v8sf-drawer-nav {
		padding: 8px 0 16px !important;
	}

	.v8sf-drawer-menu,
	.v8sf-drawer-nav .page_item {
		list-style: none !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.v8sf-drawer-menu > li > a {
		display: flex !important;
		align-items: center !important;
		padding: 14px 20px !important;
		font-size: 15px !important;
		font-weight: 700 !important;
		color: var(--v8sf-drawer-text, var(--text-main)) !important;
		text-decoration: none !important;
		border-bottom: 1px solid #F3F4F6 !important;
		transition: background 0.2s ease, color 0.2s ease !important;
	}

	.v8sf-drawer-menu > li > a:hover {
		background: #FAFAFA !important;
		color: var(--v8sf-hdr-primary, var(--success)) !important;
	}

	/* ─── ACORDEÃO — categorias com subcategorias no menu hambúrguer ─── */
	.v8sf-drawer-menu li.menu-item-has-children,
	.v8sf-drawer-menu li.page_item_has_children {
		position: relative !important;
	}
	.v8sf-drawer-menu li.menu-item-has-children > a,
	.v8sf-drawer-menu li.page_item_has_children > a {
		padding-right: 44px !important;
	}
	.v8sf-drawer-menu li.menu-item-has-children > a::after,
	.v8sf-drawer-menu li.page_item_has_children > a::after {
		content: "" !important;
		position: absolute !important;
		right: 22px !important;
		top: 50% !important;
		width: 9px !important;
		height: 9px !important;
		border-right: 2px solid currentColor !important;
		border-bottom: 2px solid currentColor !important;
		transform: translateY(-70%) rotate(45deg) !important;
		transition: transform 0.25s ease !important;
	}
	.v8sf-drawer-menu li.menu-item-has-children.is-open > a::after,
	.v8sf-drawer-menu li.page_item_has_children.is-open > a::after {
		transform: translateY(-30%) rotate(-135deg) !important;
	}
	.v8sf-drawer-menu ul.sub-menu,
	.v8sf-drawer-menu ul.children {
		display: none !important;
		margin: 0 !important;
		padding: 0 !important;
		list-style: none !important;
		background: #F9FAFB !important;
	}
	.v8sf-drawer-menu li.menu-item-has-children.is-open > ul.sub-menu,
	.v8sf-drawer-menu li.page_item_has_children.is-open > ul.children {
		display: block !important;
	}
	.v8sf-drawer-menu ul.sub-menu a,
	.v8sf-drawer-menu ul.children a {
		display: flex !important;
		align-items: center !important;
		padding: 12px 20px 12px 36px !important;
		font-size: 14px !important;
		font-weight: 500 !important;
		color: var(--v8sf-drawer-text, var(--text-main)) !important;
		text-decoration: none !important;
		border-bottom: 1px solid #F3F4F6 !important;
		transition: background 0.2s ease, color 0.2s ease !important;
	}
	.v8sf-drawer-menu ul.sub-menu a:hover,
	.v8sf-drawer-menu ul.children a:hover {
		background: #F3F4F6 !important;
		color: var(--v8sf-hdr-primary, var(--success)) !important;
	}

	.v8sf-drawer-footer {
		border-top: 1px solid var(--border) !important;
		padding: 16px 20px !important;
		flex-shrink: 0 !important;
	}

.v8sf-drawer a.v8sf-drawer-account {
		display: flex !important;
		align-items: center !important;
		gap: 10px !important;
		padding: 12px 14px !important;
		border-radius: 12px !important;
		background: #FAFAFA !important;
		border: 1px solid var(--border) !important;
		font-size: 14px !important;
		font-weight: 700 !important;
		color: var(--v8sf-drawer-text, var(--text-main)) !important;
		text-decoration: none !important;
		transition: all 0.2s ease !important;
	}

	.v8sf-drawer a.v8sf-drawer-account:hover {
		border-color: var(--v8sf-hdr-primary, var(--success)) !important;
		color: var(--v8sf-hdr-primary, var(--success)) !important;
	}

	body.v8sf-drawer-open {
		overflow: hidden !important;
	}

/* Backdrop global da busca (fora do media query, sempre no DOM) */
.v8sf-search-backdrop {
	position: fixed !important;
	inset: 0 !important;
	background: rgba(17, 24, 39, 0.35) !important;
	opacity: 0 !important;
	pointer-events: none !important;
	transition: opacity 0.25s ease !important;
	z-index: 899 !important;
}

@media (max-width: 768px) {
	.v8sf-hdr-mobile .v8sf-pop-row img {
		width: 64px !important;
		height: 76px !important;
		border-radius: 8px !important;
		object-fit: cover !important;
		border: 1px solid var(--border) !important;
		flex-shrink: 0 !important;
		background: #fff !important;
	}

	.v8sf-hdr-mobile .v8sf-pop-see-all {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 6px !important;
		padding: 13px 8px !important;
		margin-top: 4px !important;
		border-top: 1px solid var(--border) !important;
		font-size: 13.5px !important;
		font-weight: 800 !important;
		color: var(--v8sf-hdr-primary) !important;
		text-decoration: none !important;
		transition: background 0.2s ease !important;
	}

	.v8sf-hdr-mobile .v8sf-pop-see-all:hover {
		background: #FAFAFA !important;
	}
}

/* Keyframes globais (usadas tambem pela busca desktop) */
@keyframes v8sf-expand-in {
	0% { transform: scaleX(0.96); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
	60% { box-shadow: 0 0 0 10px rgba(16, 185, 129, 0.09); }
	100% { transform: scaleX(1); box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.1); }
}

@keyframes v8sf-pop-in {
	from { opacity: 0; transform: translateY(-6px); }
	to { opacity: 1; transform: translateY(0); }
}

/* ──────────────────────────────────────────────────────────────
   MINI-CART (DRAWER) — painel do carrinho renderizado no servidor.
   Zero requisições ao abrir; update client-side após o add do
   Quick View. Desktop: painel lateral à direita · Mobile: bottom
   sheet (mesmo padrão de interação do Quick View).
   ────────────────────────────────────────────────────────────── */
.v8sf-cart-drawer {
	position: fixed !important;
	inset: 0 !important;
	z-index: 99985 !important;
	display: flex !important;
	/* MOBILE: bottom sheet ancorado no RODAPÉ (painel sobe de baixo). */
	align-items: flex-end !important;
	justify-content: center !important;
}

.v8sf-cart-drawer[hidden] {
	display: none !important;
}

.v8sf-cart-drawer-backdrop {
	position: absolute !important;
	inset: 0 !important;
	background: rgba(17, 24, 39, 0.5) !important;
	backdrop-filter: blur(2px) !important;
	-webkit-backdrop-filter: blur(2px) !important;
	animation: v8sf-cart-drawer-fade 0.22s ease !important;
}

@keyframes v8sf-cart-drawer-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

/* LOCK DE SCROLL — trava html E body (alguns temas rolam no <html>):
   com o drawer aberto, a PÁGINA nunca rola por cima da lista. */
html.v8sf-cart-drawer-open,
html.v8sf-cart-drawer-open body {
	overflow: hidden !important;
}

.v8sf-cart-drawer-panel {
	position: relative !important;
	display: flex !important;
	flex-direction: column !important;
	width: 100% !important;
	max-width: 100% !important;
	height: 92dvh !important;
	max-height: 92dvh !important;
	background: var(--v8sf-drawer-bg, #ffffff) !important;
	color: var(--v8sf-drawer-text, #111827) !important;
	border-radius: 20px 20px 0 0 !important;
	box-shadow: 0 -4px 24px rgba(17, 24, 39, 0.18) !important;
	animation: v8sf-cart-drawer-up 0.24s ease !important;
}

@keyframes v8sf-cart-drawer-up {
	from { transform: translateY(28px); opacity: 0; }
	to { transform: translateY(0); opacity: 1; }
}

@media (min-width: 769px) {
	.v8sf-cart-drawer {
		/* DESKTOP: painel lateral à direita, altura total. */
		align-items: stretch !important;
		justify-content: flex-end !important;
	}
	.v8sf-cart-drawer-panel {
		width: 420px !important;
		flex-shrink: 0 !important;
		height: 100dvh !important;
		max-height: 100dvh !important;
		border-radius: 0 !important;
		box-shadow: -8px 0 32px rgba(17, 24, 39, 0.2) !important;
		animation: v8sf-cart-drawer-right 0.24s ease !important;
	}
}

@keyframes v8sf-cart-drawer-right {
	from { transform: translateX(40px); opacity: 0; }
	to { transform: translateX(0); opacity: 1; }
}

/* Cabeçalho */
.v8sf-cart-drawer-head {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 12px !important;
	padding: 16px 18px !important;
	border-bottom: 1px solid var(--border, #f3f4f6) !important;
	flex-shrink: 0 !important;
}

/* DESKTOP: cabeçalho mais compacto */
@media (min-width: 769px) {
	.v8sf-cart-drawer-head {
		padding: 10px 18px !important;
	}
}

.v8sf-cart-drawer-close {
	width: 34px !important;
	height: 34px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	border: none !important;
	border-radius: 50% !important;
	background: var(--border, #f3f4f6) !important;
	color: inherit !important;
	cursor: pointer !important;
	flex-shrink: 0 !important;
}

/* Área da lista: container flex = lista + BARRA VERTICAL ao lado.
   PADDING ZERADO em cima/baixo: o respiro vem dos próprios itens. */
.v8sf-cart-drawer-scrollarea {
	flex: 1 1 auto !important;
	min-height: 0 !important;
	display: flex !important;
	align-items: stretch !important;
	padding: 0 !important;
}

/* Lista rolável — DESKTOP: barra nativa grossa e sempre presente
   (overflow-y: SCROLL — nunca auto-oculta). */
.v8sf-cart-drawer-scroll {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	overflow-y: scroll !important;
	overscroll-behavior: contain !important;
	-webkit-overflow-scrolling: touch !important;
	scrollbar-width: auto !important;
	scrollbar-color: #9ca3af #f3f4f6 !important;
}

.v8sf-cart-drawer-scroll::-webkit-scrollbar {
	width: 14px !important;
}

.v8sf-cart-drawer-scroll::-webkit-scrollbar-track {
	background: #f3f4f6 !important;
	border-radius: 999px !important;
	margin: 6px 0 !important;
}

.v8sf-cart-drawer-scroll::-webkit-scrollbar-thumb {
	background: #9ca3af !important;
	border-radius: 999px !important;
	border: 3px solid #f3f4f6 !important;
	min-height: 40px !important;
}

.v8sf-cart-drawer-scroll::-webkit-scrollbar-thumb:hover {
	background: #6b7280 !important;
}

/* ── BARRA VERTICAL PERSONALIZADA (celular) ──
   Elemento REAL (trilho + polegar), SEMPRE visível: o sistema do
   celular esconde a barra nativa — esta não depende dele. Grossa
   (10px), trilho claro e polegar cinza-escuro que desliza. */
.v8sf-cart-drawer-scrollbar {
	flex: 0 0 10px !important;
	width: 10px !important;
	position: relative !important;
	border-radius: 999px !important;
	background: #f3f4f6 !important;
	margin: 2px 8px 2px 4px !important;
	overflow: hidden !important;
	display: none !important;
}

.v8sf-cart-drawer-scrollbar-thumb {
	position: absolute !important;
	left: 0 !important;
	right: 0 !important;
	/* IMPORTANTE: top/height SEM !important — o JS define por estilo
	   inline (pixels); com !important o inline perderia e o polegar
	   ficaria invisível (altura 0). */
	top: 0;
	height: 0;
	border-radius: 999px !important;
	background: #9ca3af !important;
}

@media (pointer: coarse) {
	/* Celular: a barra personalizada assume e a nativa é escondida
	   (no iOS ela nem existe; no Android ficaria duplicada). */
	.v8sf-cart-drawer-scrollbar {
		display: block !important;
	}

	.v8sf-cart-drawer-scroll {
		scrollbar-width: none !important;
	}

	.v8sf-cart-drawer-scroll::-webkit-scrollbar {
		display: none !important;
	}
}

/* Vazio */
.v8sf-cart-drawer-empty {
	text-align: center !important;
	padding: 40px 20px !important;
}

.v8sf-cart-drawer-empty p {
	margin: 0 0 16px !important;
	color: var(--v8sf-drawer-text, #111827) !important;
	font-size: 14px !important;
}

.v8sf-cart-drawer-shop {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 11px 20px !important;
	border-radius: 12px !important;
	border: 1.5px solid var(--border, #e5e7eb) !important;
	background: #ffffff !important;
	color: var(--v8sf-drawer-text, #111827) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	text-decoration: none !important;
}

/* Itens */
.v8sf-cart-drawer-items {
	padding: 4px 18px !important;
}

.v8sf-cart-drawer-item {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	padding: 12px 0 !important;
	border-bottom: 1px dashed var(--border, #f3f4f6) !important;
}

.v8sf-cart-drawer-item:last-child {
	border-bottom: none !important;
}

.v8sf-cart-drawer-item-img {
	flex: 0 0 64px !important;
	width: 64px !important;
	height: 64px !important;
	border-radius: 12px !important;
	overflow: hidden !important;
	background: #f9fafb !important;
}

.v8sf-cart-drawer-item-img img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
}

.v8sf-cart-drawer-item-info {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 2px !important;
}

.v8sf-cart-drawer-item-name {
	font-size: 13.5px !important;
	font-weight: 700 !important;
	color: var(--v8sf-drawer-text, #111827) !important;
	text-decoration: none !important;
	line-height: 1.35 !important;
}

.v8sf-cart-drawer-item-var {
	font-size: 12px !important;
	color: var(--v8sf-drawer-text, #111827) !important;
	opacity: 0.65 !important;
}

/* Kit do visual-kit-builder no drawer: compacto, sem estourar a coluna. */
.v8sf-cart-drawer-item-kit {
	max-width: 100% !important;
	display: block !important;
}
.v8sf-cart-drawer-item-kit .vkb-kit-display {
	margin: 6px 0 2px !important;
	width: 100% !important;
}
.v8sf-cart-drawer-item-kit .vkb-kit-display > div {
	flex-wrap: wrap !important;
}


.v8sf-cart-drawer-item-price {
	font-size: 14px !important;
	font-weight: 800 !important;
	color: var(--v8sf-drawer-text, #111827) !important;
}

/* X de remoção do item — MESMO padrão da página do carrinho
   (.v8sf-product-remove): transparente, cinza, vermelho no hover. */
.v8sf-cart-drawer-item-remove {
	flex: 0 0 30px !important;
	width: 30px !important;
	height: 30px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	border: none !important;
	background: none !important;
	color: #9CA3AF !important;
	border-radius: 8px !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	flex-shrink: 0 !important;
}

.v8sf-cart-drawer-item-remove:hover {
	background: rgba(220, 38, 38, 0.08) !important;
	color: var(--danger, #DC2626) !important;
}

.v8sf-cart-drawer-item-remove.is-busy {
	pointer-events: none !important;
}

/* SPINNER VERMELHO no X durante a remoção (sobre o fundo atual do botão):
   o usuário VÊ que está removendo (o X vira um carregador girando —
   leve, 0.6s, puro CSS). */
.v8sf-cart-drawer-item-remove.is-busy svg {
	display: none !important;
}

.v8sf-cart-drawer-item-remove.is-busy::before {
	content: '' !important;
	width: 14px !important;
	height: 14px !important;
	border: 2px solid rgba(220, 38, 38, 0.3) !important;
	border-top-color: #dc2626 !important;
	border-radius: 50% !important;
	animation: v8sf-cart-drawer-spin 0.6s linear infinite !important;
}

@keyframes v8sf-cart-drawer-spin {
	to { transform: rotate(360deg); }
}

/* Rodapé — fundo CINZA CLARO (mesmo do Quick View), abaixo da linha */
.v8sf-cart-drawer-foot {
	flex-shrink: 0 !important;
	padding: 16px 18px 18px !important;
	border-top: 1px solid var(--border, #f3f4f6) !important;
	background: #F9FAFB !important;
}

@supports (padding-bottom: max(0px)) {
	.v8sf-cart-drawer-foot {
		padding-bottom: max(30px, env(safe-area-inset-bottom)) !important;
	}
}

/* DESKTOP: rodapé mais compacto (9px no topo) com fundo de 20px */
@media (min-width: 769px) {
	.v8sf-cart-drawer-foot {
		padding: 9px 18px 18px !important;
	}
}

@supports (padding-bottom: max(0px)) {
	@media (min-width: 769px) {
		.v8sf-cart-drawer-foot {
			padding-bottom: max(20px, env(safe-area-inset-bottom)) !important;
		}
	}
}

.v8sf-cart-drawer-titlewrap {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	min-width: 0 !important;
}

/* Título maior (padrão da página do carrinho) */
.v8sf-cart-drawer-titlewrap .v8sf-step-title {
	font-size: 22px !important;
	font-weight: 800 !important;
}

/* Total do pedido: respiro maior em cima/embaixo + texto maior para
   não se perder entre as informações do rodapé. */
.v8sf-cart-drawer-subtotal {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 10px !important;
	margin: 6px 0 16px !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	color: var(--v8sf-drawer-text, #111827) !important;
}

.v8sf-cart-drawer-subtotal strong {
	font-size: 19px !important;
	font-weight: 900 !important;
}

.v8sf-cart-drawer-actions {
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
}

.v8sf-cart-drawer-btn {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 13px 16px !important;
	border-radius: 12px !important;
	font-size: 15px !important;
	font-weight: 800 !important;
	text-decoration: none !important;
	transition: background 0.2s ease, border-color 0.2s ease !important;
}

.v8sf-cart-drawer-btn.is-primary {
	background: linear-gradient(135deg, #10B981 0%, #059669 100%) !important;
	color: #ffffff !important;
	border: none !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	font-size: 17px !important;
	font-weight: 900 !important;
	padding: 20px 24px !important;
	border-radius: 14px !important;
	gap: 10px !important;
	box-shadow: 0 8px 25px -5px rgba(16, 185, 129, 0.5) !important;
	position: relative !important;
	overflow: hidden !important;
}

.v8sf-cart-drawer-btn.is-primary:hover {
	transform: translateY(-3px) !important;
	box-shadow: 0 12px 30px -5px rgba(16, 185, 129, 0.6) !important;
	color: #ffffff !important;
}

/* Reflexo (shine) — mesmo efeito do botão da página do carrinho */
.v8sf-cart-drawer-btn.is-primary::after {
	content: '' !important;
	position: absolute !important;
	top: 0 !important;
	left: -100% !important;
	width: 50% !important;
	height: 100% !important;
	background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0) 100%) !important;
	transform: skewX(-20deg) !important;
	animation: v8sf-btn-shine 1.8s ease-in-out infinite !important;
	pointer-events: none !important;
}

@keyframes v8sf-btn-shine {
	0% { left: -100%; }
	100% { left: 200%; }
}

.v8sf-cart-drawer-btn.is-secondary {
	border: 1.5px solid var(--border, #e5e7eb) !important;
	background: #ffffff !important;
	color: var(--v8sf-drawer-text, #111827) !important;
}

@media (min-width: 769px) {
	.v8sf-cart-drawer-actions {
		flex-direction: row !important;
	}
	.v8sf-cart-drawer-btn {
		flex: 1 1 auto !important;
	}
}

/* ============================================================
   MODO ENTREGA do MINI-CART — mesmo padrão visual da página do
   carrinho (bloco CEP + Endereço confirmado + botão go-checkout).
   ============================================================ */
/* ===== ABA MEU LOCAL ===== */
.v8sf-cart-drawer .v8sf-my-location {
	display: flex !important;
	flex-direction: column !important;
	gap: 0 !important;
	background: var(--surface) !important;
	border: 1px solid var(--border) !important;
	border-radius: 16px !important;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 16px 40px -16px rgba(0, 0, 0, 0.12) !important;
	padding: 12px 16px !important;
	margin-bottom: 16px !important;
}

.v8sf-cart-drawer .v8sf-loc-top { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; width: 100% !important; }

.v8sf-cart-drawer .v8sf-loc-left { display: flex !important; align-items: center !important; gap: 12px !important; min-width: 0 !important; flex: 1 1 auto !important; }

.v8sf-cart-drawer .v8sf-loc-pin {
	width: 38px !important;
	height: 38px !important;
	background: rgba(16, 185, 129, 0.1) !important;
	color: var(--success) !important;
	border-radius: 10px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
}

.v8sf-cart-drawer .v8sf-loc-text { display: flex !important; flex-direction: column !important; min-width: 0 !important; flex: 1 1 auto !important; }

.v8sf-cart-drawer .v8sf-loc-label { font-size: 11px !important; font-weight: 700 !important; color: var(--text-muted) !important; text-transform: uppercase !important; letter-spacing: 0.4px !important; }

.v8sf-cart-drawer .v8sf-loc-value { font-size: 15px !important; font-weight: 800 !important; color: var(--text-main) !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; margin-top: 1px !important; }

.v8sf-cart-drawer .v8sf-loc-value.is-loading { color: var(--text-muted) !important; font-weight: 600 !important; }

.v8sf-cart-drawer .v8sf-loc-right { display: flex !important; align-items: center !important; flex-shrink: 0 !important; }

.v8sf-cart-drawer .v8sf-loc-cep-link {
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	font-size: 13px !important;
	font-weight: 800 !important;
	color: var(--success) !important;
	background: rgba(16, 185, 129, 0.08) !important;
	border: 1.5px solid rgba(16, 185, 129, 0.35) !important;
	border-radius: 999px !important;
	padding: 8px 16px !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	text-decoration: none !important;
	transition: all 0.2s ease !important;
}

.v8sf-cart-drawer .v8sf-loc-cep-link svg { flex-shrink: 0 !important; }

.v8sf-cart-drawer .v8sf-loc-cep-link[hidden] { display: none !important; }

.v8sf-cart-drawer .v8sf-loc-cep-link:hover { background: rgba(16, 185, 129, 0.15) !important; border-color: var(--success) !important; transform: translateY(-1px) !important; }

.v8sf-cart-drawer .v8sf-loc-cep-close {
	width: 38px !important;
	height: 38px !important;
	flex-shrink: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: #F1F3F5 !important;
	border: 1.5px solid var(--border) !important;
	border-radius: 10px !important;
	color: #374151 !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
}

.v8sf-loc-cep-close svg {
	width: 14px !important;
	height: 14px !important;
	flex-shrink: 0 !important;
	display: block !important;
}

.v8sf-cart-drawer .v8sf-loc-cep-close[hidden] { display: none !important; }

.v8sf-cart-drawer .v8sf-loc-cep-close:hover { color: var(--danger) !important; border-color: rgba(220, 38, 38, 0.35) !important; background: rgba(220, 38, 38, 0.05) !important; }

.v8sf-cart-drawer .v8sf-loc-cep-line {
	display: flex !important;
	gap: 8px !important;
	align-items: center !important;
	margin-top: 12px !important;
	animation: v8sf-pop-in 0.22s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.v8sf-cart-drawer .v8sf-loc-cep-line[hidden] { display: none !important; }

.v8sf-cart-drawer .v8sf-loc-cep-line input {
	flex: 1 !important;
	height: 42px !important;
	padding: 0 14px !important;
	border: 1.5px solid var(--border) !important;
	border-radius: 10px !important;
	font-size: 13.5px !important;
	font-weight: 700 !important;
	letter-spacing: 0.3px !important;
	background: #FAFAFA !important;
	outline: none !important;
	transition: all 0.2s ease !important;
	min-width: 0 !important;
	color: var(--text-main) !important;
}

.v8sf-cart-drawer .v8sf-loc-cep-line input:focus { border-color: var(--success) !important; background: #fff !important; box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1) !important; }

.v8sf-cart-drawer .v8sf-loc-cep-line input.is-checking { border-color: #94A3B8 !important; background: #F8FAFC !important; }

.v8sf-cart-drawer .v8sf-loc-cep-line input.is-found { border-color: var(--success) !important; background: #ECFDF5 !important; box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.15) !important; }

.v8sf-cart-drawer .v8sf-loc-cep-line input.has-error { border-color: var(--danger) !important; background: #FEF2F2 !important; }

.v8sf-cart-drawer .v8sf-loc-cep-save {
	height: 42px !important;
	min-width: 86px !important;
	padding: 0 16px !important;
	border: none !important;
	border-radius: 10px !important;
	background: var(--success) !important;
	color: #fff !important;
	font-size: 12.5px !important;
	font-weight: 800 !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	white-space: nowrap !important;
	font-family: inherit !important;
}

.v8sf-cart-drawer .v8sf-loc-cep-save:hover { background: #059669 !important; transform: translateY(-1px) !important; }

.v8sf-cart-drawer .v8sf-loc-cep-save:disabled { opacity: 0.5 !important; cursor: not-allowed !important; transform: none !important; }

/* Card de endereÃ§o confirmado */
.v8sf-cart-drawer .v8sf-cep-found {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	background: rgba(16, 185, 129, 0.08) !important;
	border: 1px solid rgba(16, 185, 129, 0.3) !important;
	border-radius: 12px !important;
	padding: 10px 14px !important;
	margin-bottom: 16px !important;
	animation: v8sf-pop-in 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.v8sf-cart-drawer .v8sf-cep-found[hidden] { display: none !important; }

.v8sf-cart-drawer .v8sf-cep-found-icon {
	width: 26px !important;
	height: 26px !important;
	background: var(--success) !important;
	color: #fff !important;
	border-radius: 50% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
}

.v8sf-cart-drawer .v8sf-cep-found-text { display: flex !important; flex-direction: column !important; gap: 1px !important; min-width: 0 !important; flex: 1 !important; }

.v8sf-cart-drawer .v8sf-cep-found-text strong { font-size: 13.5px !important; font-weight: 800 !important; color: var(--success-dark) !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }

.v8sf-cart-drawer .v8sf-cep-found-street { font-size: 12.5px !important; font-weight: 600 !important; color: var(--text-main) !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }

.v8sf-cart-drawer .v8sf-cep-found-city { font-size: 12px !important; font-weight: 500 !important; color: var(--text-muted) !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }

.v8sf-cart-drawer .v8sf-cep-found-edit {
	font-size: 12px !important;
	font-weight: 700 !important;
	color: var(--success) !important;
	background: none !important;
	border: 1px solid rgba(16, 185, 129, 0.3) !important;
	border-radius: 8px !important;
	padding: 6px 14px !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	flex-shrink: 0 !important;
	font-family: inherit !important;
}

.v8sf-cart-drawer .v8sf-cep-found-edit:hover { background: rgba(16, 185, 129, 0.1) !important; }

.v8sf-cart-drawer .v8sf-go-checkout {
	width: 100% !important;
	background: linear-gradient(135deg, #10B981 0%, #059669 100%) !important;
	color: #fff !important;
	padding: 24px 30px !important;
	border: none !important;
	border-radius: 14px !important;
	font-size: 18px !important;
	font-weight: 900 !important;
	cursor: pointer !important;
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
	gap: 10px !important;
	transition: all 0.3s ease !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	box-shadow: 0 8px 25px -5px rgba(16, 185, 129, 0.5) !important;
	text-decoration: none !important;
	margin-top: 24px !important;
	font-family: inherit !important;
	position: relative !important;
	overflow: hidden !important; /* necessÃ¡rio p/ o reflexo */
}

.v8sf-cart-drawer .v8sf-go-checkout:hover {
	transform: translateY(-3px) !important;
	box-shadow: 0 12px 30px -5px rgba(16, 185, 129, 0.6) !important;
	color: #fff !important;
}

/* Reflexo (shine) â€” mesmo efeito do botÃ£o "Finalizar" do checkout:
   o brilho branco varre o botÃ£o em loop. */
.v8sf-cart-drawer .v8sf-go-checkout::after {
	content: '' !important;
	position: absolute !important;
	top: 0 !important;
	left: -100% !important;
	width: 50% !important;
	height: 100% !important;
	background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0) 100%) !important;
	transform: skewX(-20deg) !important;
	animation: v8sf-btn-shine 1.8s ease-in-out infinite !important;
	pointer-events: none !important;
}

@keyframes v8sf-btn-shine {
	0% { left: -100%; }
	65% { left: 200%; }
	100% { left: 200%; }
}

/* Seta GRANDE animada no botÃ£o: vai para a direita e volta (loop) */
.v8sf-cart-drawer .v8sf-go-checkout svg {
	width: 22px !important;
	height: 22px !important;
	flex-shrink: 0 !important;
	animation: v8sf-arrow-slide 1.4s ease-in-out infinite !important;
}

@keyframes v8sf-arrow-slide {
	0%, 100% { transform: translateX(0); }
	50% { transform: translateX(7px); }
}

/* Mobile: botão mais compacto (mesma regra da página do carrinho) */
@media (max-width: 768px) {
	.v8sf-cart-drawer .v8sf-go-checkout {
		padding: 20px !important;
		font-size: 18px !important;
	}
}

/* Modo Entrega: margem entre o total e o bloco de CEP */
.v8sf-cart-drawer-delivery {
	margin: 0 0 12px !important;
}

/* REGRA (pedida): endereço LOCALIZADO → a caixa "Entregando para"
   é ocultada de vez (display:none com !important vence o flex da
   página do carrinho) — só reaparece quando o cliente clica em
   "Trocar" (o JS alterna o hidden no data-v8sf-drawer-loc-box). */
.v8sf-cart-drawer .v8sf-my-location[hidden] {
	display: none !important;
}

/* Alerta "Prossiga..." SUTIL: texto pequeno e discreto, menor que o
   botão de checkout — avisa para prosseguir SEM roubar a atenção
   dele. Só aparece APÓS o CEP confirmado, sempre abaixo do botão. */
.v8sf-cart-drawer-hint {
	margin: 8px 0 0 !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	text-align: center !important;
	color: var(--text-muted, #6b7280) !important;
}

.v8sf-cart-drawer-hint[hidden] {
	display: none !important;
}

/* Botão "Entrega e Pagamento" dentro do drawer: sem a margem grande
   da página do carrinho (ali ele fica solto; aqui já está no rodapé). */
.v8sf-cart-drawer .v8sf-go-checkout {
	margin-top: 0 !important;
}

/* ==================================================================
   FASE 4.1 — STICKY INTELIGENTE do header (painel: hdr_smart_sticky).
   Com o recurso ligado (body.v8sf-hdr-smart), o header esconde ao
   rolar para baixo e volta ao rolar para cima.
   ================================================================== */
body.v8sf-hdr-smart .v8sf-hdr-desktop,
body.v8sf-hdr-smart .v8sf-hdr-mobile {
	transition: box-shadow 0.25s ease, transform 0.32s ease !important;
}

body.v8sf-hdr-smart .v8sf-hdr-desktop.v8sf-hdr-hidden,
body.v8sf-hdr-smart .v8sf-hdr-mobile.v8sf-hdr-hidden {
	transform: translateY(-110%) !important;
	box-shadow: none !important;
}
