/* =========================================================================
   BE ESSENTIAL - main.css
   Estilo inspirado na Aesop: proporcao, respiro e hierarquia clara.
   Fontes da identidade atual: Cardo (titulos), Poppins (corpo), Jost (apoio).
   Cor da marca: #4A7551 (hover #3b5f41).
   ========================================================================= */

/* ---------- Variaveis ---------- */
:root {
	--be-green: #4A7551;
	--be-green-dark: #3b5f41;
	--be-cream: #FDF2EA;
	--be-ink: #021027;
	--be-muted: #7B7B7B;
	--be-line: #ececec;
	--be-white: #ffffff;

	--be-max: 1520px;          /* largura generosa em telas grandes */
	--be-pad: 40px;            /* respiro lateral (desktop) */

	--font-serif: 'Cardo', Georgia, 'Times New Roman', serif;
	--font-body: 'Poppins', system-ui, -apple-system, sans-serif;
	--font-accent: 'Jost', var(--font-body);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }

body {
	margin: 0;
	font-family: var(--font-body);
	font-weight: 400;
	color: var(--be-ink);
	background: var(--be-white);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }

h1, h2, h3, h4 {
	font-family: var(--font-serif);
	font-weight: 400;
	color: var(--be-ink);
	margin: 0;
	line-height: 1.2;
}

.be-no-scroll { overflow: hidden; }

/* Container central com largura generosa */
.be-container {
	width: 100%;
	max-width: var(--be-max);
	margin-inline: auto;
	padding-inline: var(--be-pad);
}

/* ---------- SISTEMA DE BOTOES (padrao unico do site) ----------
   Primario: verde da marca, texto branco, CANTO RETO.
   Secundario (.be-btn--ghost): contorno, texto verde, canto reto.
   Nada de arredondado (pedido da cliente) e nada de azul. */
.be-btn {
	display: inline-block;
	font-family: var(--font-accent);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	background: var(--be-green) !important;
	color: #fff !important;
	padding: 14px 30px;
	border: 1px solid var(--be-green) !important;
	border-radius: 0 !important;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.be-btn:hover { background: var(--be-green-dark) !important; border-color: var(--be-green-dark) !important; }

.be-btn--ghost {
	background: transparent !important;
	color: var(--be-green) !important;
}
.be-btn--ghost:hover { background: var(--be-green) !important; color: #fff !important; }

/* --- NORMALIZACAO GLOBAL: todo botao de acao = verde primario, CANTO RETO ---
   (vence o estilo global de botao do Elementor, que deixava azul/arredondado). */
.woocommerce a.button, .woocommerce button.button,
.woocommerce-page a.button, .woocommerce-page button.button,
.single-product .single_add_to_cart_button, .woocommerce div.product form.cart .single_add_to_cart_button,
.be-products a.button, .be-products a.add_to_cart_button, .be-shop a.button, .be-shop a.add_to_cart_button,
a.checkout-button, .woocommerce a.checkout-button,
.woocommerce #place_order, .woocommerce-checkout #place_order, .woocommerce-checkout button[type="submit"],
.woocommerce-checkout .button.alt, .woocommerce-checkout .fc-step__substep-save,
.woocommerce-checkout .fc-step__next-step, .woocommerce-checkout .fc-place-order-button,
.woocommerce-checkout .fc-coupon-code__apply, .woocommerce-checkout .fc-login-button,
.woocommerce-checkout .fc-contact-login__action,
.be-filter-toggle, .be-filter__apply, .be-cart-coupon__btn, .be-cart-update,
.be-order-card__btn, .be-reviews__btn, .be-news-form .be-btn, .be-btn--full,
.be-single-reviews .form-submit .submit,
.be-account-content button[type="submit"], .be-account-content .button,
.be-minicart .elementor-menu-cart__footer-buttons .elementor-button,
.woocommerce .woocommerce-Button, .woocommerce input.button,
.woocommerce-form-login .woocommerce-form-login__submit,
.woocommerce-form-register .woocommerce-form-register__submit {
	border-radius: 0 !important;
	/* fonte PADRONIZADA em todos os botoes (mesma do mini-carrinho que a cliente aprovou) */
	font-family: var(--font-accent) !important;
	font-weight: 500 !important;
	letter-spacing: .06em !important;
	text-transform: uppercase !important;
}
/* garante VERDE nos primarios (nao aplica ao ghost / ao "Ver carrinho") */
.be-filter-toggle { background: #fff !important; color: var(--be-ink) !important; border: 1px solid #cfcfcf !important; }

/* ITEM 2 - newsletter: input e botao com a MESMA altura (conjunto harmonico) */
.be-news-form .be-btn { height: 54px; display: inline-flex; align-items: center; justify-content: center; padding: 0 30px; }

/* ITEM 5 - checkout: campo "Pais" (fixo Brasil) escondido -> nenhum campo destoa */
.woocommerce-checkout #billing_country_field,
.woocommerce-checkout #shipping_country_field,
.be-account-content #billing_country_field,
.be-account-content #shipping_country_field { display: none !important; }

/* ITEM 7 - conta: sem caixa/borda em volta do endereco (alinha com "Dados pessoais") */
.be-dash-address { border: 0 !important; border-radius: 0 !important; padding: 0 !important; background: none !important; }

/* ITEM 6 - checkout: "Editar carrinho" vira um lapis discreto (cinza) */
.fc-checkout-order-review__edit-cart {
	display: inline-block; width: 24px; height: 24px; overflow: hidden;
	font-size: 0 !important; color: transparent !important; text-decoration: none !important;
	font-weight: 400 !important; border: 0 !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237B7B7B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important; background-position: center !important; background-size: 18px !important;
}
.fc-checkout-order-review__edit-cart:hover { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A7551' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z'/%3E%3C/svg%3E") !important; }

.be-link {
	font-family: var(--font-accent);
	font-size: 15px;
	color: var(--be-green);
	border-bottom: 1px solid transparent;
	transition: border-color .2s ease;
}
.be-link:hover { border-color: var(--be-green); }

/* =========================================================================
   HEADER
   ========================================================================= */
.be-header {
	position: sticky;
	top: 0;
	z-index: 100;
	/* vidro fosco: fundo branco translucido + desfoque do que passa atras */
	background: rgba(255, 255, 255, .72);
	-webkit-backdrop-filter: saturate(180%) blur(14px);
	backdrop-filter: saturate(180%) blur(14px);
	border-bottom: 1px solid rgba(0, 0, 0, .06);
}

/* Header em UMA LINHA: menu (esq) | LOGO empilhada (centro) | icones (dir) */
.be-header-inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;   /* menu | logo | icones */
	align-items: center;
	gap: 14px;
	padding-block: 10px;
}

/* Esquerda: menu principal (vira hamburguer no mobile) */
.be-header-left {
	justify-self: start;
	display: flex;
	align-items: center;
	gap: 8px;
}

/* Direita: cluster de icones */
.be-header-icons {
	display: flex;
	align-items: center;
	gap: 8px;
	justify-self: end;
}

/* Icones LIMPOS: sem circulo/fundo, no azul-marinho da paleta (pedido da cliente).
   !important vence o snippet externo que pinta <button> de navy. */
.be-icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0;
	background: none !important;
	background-color: transparent !important;
	color: var(--be-ink) !important;
	border: 0 !important;
	box-shadow: none !important;
	cursor: pointer;
	border-radius: 0;
	transition: color .2s ease;
}
.be-icon:hover { background: none !important; color: var(--be-green) !important; }
/* TODOS os 4 icones do MESMO tamanho. !important porque um CSS externo encolhe
   svg dentro de <button> (por isso so o coracao, que e <a>, ficava grande). */
.be-icon svg,
button.be-icon svg,
a.be-icon svg {
	width: 21px !important;
	height: 21px !important;
	min-width: 21px !important;
	min-height: 21px !important;
	max-width: none !important;
	max-height: none !important;
	flex: 0 0 auto;
	stroke-width: 1.5 !important;
}

/* Contador do carrinho */
.be-cart-toggle { }
.be-cart-count {
	position: absolute;
	top: -1px;
	right: -3px;
	min-width: 17px;
	height: 17px;
	padding: 0 4px;
	font-family: var(--font-accent);
	font-size: 10px;
	line-height: 17px;
	text-align: center;
	color: #fff;
	background: var(--be-green);
	border-radius: 999px;
}

/* Logo centralizada (versao empilhada: folha acima do nome -> mais alta) */
.be-logo { justify-self: center; text-align: center; }
.be-logo img { max-height: 76px; width: auto; margin-inline: auto; }
.be-logo-text {
	font-family: var(--font-serif);
	font-size: 26px;
	letter-spacing: 0.02em;
	color: var(--be-ink);
}

/* (menu fica na MESMA linha do logo; no mobile vira dropdown - regras no @media) */

.be-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 28px;
}
.be-menu a {
	font-family: var(--font-accent);
	font-size: 15px;
	letter-spacing: 0.02em;
	color: var(--be-ink);
	padding: 6px 0;
	border-bottom: 1px solid transparent;
	transition: color .2s ease, border-color .2s ease;
}
.be-menu a:hover { color: var(--be-green); border-color: var(--be-green); }

/* Botao hamburguer (mobile) */
/* HAMBURGUER a prova de balas: forca tamanho, padding 0 e linhas VISIVEIS
   (o estilo global de botao do Elementor punha padding 20px + fundo navy,
   o que espremia/escondia as 3 linhas). */
.be-nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px !important;
	width: 44px !important;
	height: 44px !important;
	min-height: 0 !important;
	padding: 0 !important;
	background: none !important;
	background-color: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	cursor: pointer;
}
.be-nav-toggle span {
	display: block !important;
	width: 24px !important;
	height: 2px !important;
	background: var(--be-ink) !important;
	border-radius: 2px;
	margin: 0 auto !important;
	transition: transform .25s ease, opacity .25s ease;
}

/* extras do menu (busca + conta/favoritos) so aparecem no MENU MOBILE */
.be-nav-search, .be-nav-account { display: none; }

/* Dropdown da conta */
.be-account { position: relative; }
.be-account-menu {
	position: absolute;
	top: calc(100% + 8px);
	left: auto;
	right: 0;   /* icones agora ficam a DIREITA -> o menu abre para a esquerda (nao vaza da tela) */
	min-width: 190px;
	background: #fff;
	border: 1px solid var(--be-line);
	box-shadow: 0 12px 30px rgba(0,0,0,.08);
	border-radius: 4px;
	padding: 8px 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
	z-index: 120;
}
.be-account:hover .be-account-menu,
.be-account.is-open .be-account-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.be-account-menu a {
	display: block;
	padding: 9px 18px;
	font-size: 14px;
	color: var(--be-ink);
	white-space: nowrap;
}
.be-account-menu a:hover { background: var(--be-cream); color: var(--be-green); }

/* =========================================================================
   MEGA MENU DA LOJA
   Desktop: painel sob o header, categorias em 3 colunas + "Comprar por tipo".
   Rolagem interna suave se a lista passar da altura da tela.
   ========================================================================= */
.be-mega {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: #fff;
	border-top: 1px solid var(--be-line);
	border-bottom: 1px solid var(--be-line);
	box-shadow: 0 24px 44px rgba(2, 16, 39, .10);
	z-index: 90;
	max-height: min(86vh, 640px);
	overflow-y: auto;
	scrollbar-width: thin;
}
.be-mega[hidden] { display: none; }
.be-mega-inner {
	display: grid;
	grid-template-columns: 1.4fr 200px 300px;   /* Loja (2 col) | Comprar por tipo | destaque */
	gap: 48px;
	padding-block: 24px 28px;
	align-items: start;
}
.be-mega-title {
	font-family: var(--font-accent);
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: 12px;
	font-weight: 600;
	color: var(--be-muted);
	margin: 0 0 14px;
}
.be-mega-list { list-style: none; margin: 0; padding: 0; }
.be-mega-col--cats .be-mega-list { columns: 2; column-gap: 44px; }   /* LOJA em 2 colunas (pedido) */
.be-mega-list li { break-inside: avoid; margin: 0 0 6px; }
.be-mega-list a { font-family: var(--font-body); font-size: 14.5px; color: var(--be-ink); }
.be-mega-list a:hover { color: var(--be-green); }
.be-mega-col--tipos { border-left: 1px solid var(--be-line); padding-left: 42px; }

/* card em destaque (direita) */
.be-mega-feature { display: block; text-decoration: none; }
.be-mega-feature__img { display: block; border-radius: 10px; overflow: hidden; }
.be-mega-feature__img img { width: 100%; height: 190px; object-fit: cover; display: block; }
.be-mega-feature__eyebrow { display: block; margin-top: 14px; font-family: var(--font-accent); text-transform: uppercase; letter-spacing: .1em; font-size: 11px; color: var(--be-muted); }
.be-mega-feature__title { display: block; margin: 6px 0 8px; font-family: var(--font-serif); font-weight: 400; font-size: 19px; line-height: 1.25; color: var(--be-ink); }
.be-mega-feature__link { font-family: var(--font-accent); font-size: 13px; color: var(--be-green); border-bottom: 1px solid var(--be-green); padding-bottom: 2px; }

@media (max-width: 1180px) {
	.be-mega-inner { grid-template-columns: 1.3fr 190px; }
	.be-mega-feature { display: none; }   /* em telas medias, esconde o destaque */
}
@media (max-width: 900px) {
	.be-mega { display: none !important; }  /* no mobile vale o accordion do menu */
}

/* Mobile: accordion "Categorias" dentro do menu hamburguer */
.be-mm-cats { display: none; }
@media (max-width: 900px) {
	.be-mm-cats { display: block; }
	.be-mm-cats__toggle {
		width: 100%;
		display: flex;
		align-items: center;
		justify-content: space-between;
		background: none !important;
		border: 0 !important;
		box-shadow: none !important;
		border-bottom: 1px solid var(--be-line) !important;
		padding: 14px var(--be-pad) !important;
		font-family: var(--font-accent);
		font-size: 15px;
		color: var(--be-ink) !important;
		text-align: left;
		cursor: pointer;
	}
	.be-mm-cats__icon { position: relative; width: 12px; height: 12px; flex: 0 0 auto; }
	.be-mm-cats__icon::before,
	.be-mm-cats__icon::after { content: ""; position: absolute; background: var(--be-ink); }
	.be-mm-cats__icon::before { top: 5px; left: 0; width: 12px; height: 2px; }
	.be-mm-cats__icon::after { top: 0; left: 5px; width: 2px; height: 12px; transition: transform .2s ease; }
	.be-mm-cats__toggle.is-open .be-mm-cats__icon::after { transform: scaleY(0); }
	.be-mm-cats__list {
		list-style: none;
		margin: 0;
		padding: 4px 0 10px;
		max-height: 55vh;          /* limite de altura com ROLAGEM interna */
		overflow-y: auto;
		background: #faf8f6;
	}
	.be-mm-cats__list li a {
		display: block;
		padding: 10px calc(var(--be-pad) + 12px);
		font-size: 14px;
		color: var(--be-ink);
		border-bottom: 1px solid #f0ece7;
	}
}

/* Painel de busca expansivel */
.be-search-panel {
	border-top: 1px solid var(--be-line);
	background: var(--be-white);
	padding: 22px 0;
}
.be-search-panel[hidden] { display: none; }
.be-search-panel form { display: flex; gap: 10px; max-width: 720px; margin-inline: auto; }
.be-search-panel input[type="search"],
.be-search-panel input[type="text"] {
	flex: 1;
	height: 52px;
	padding: 0 18px;
	font-family: var(--font-body);
	font-size: 15px;
	border: 1px solid #cfcfcf;
	border-radius: 2px;
	outline: none;
}
.be-search-panel input:focus { border-color: var(--be-green); }
.be-search-panel button[type="submit"] {
	height: 52px;
	padding: 0 26px;
	background: var(--be-green);
	color: #fff;
	border: 0;
	border-radius: 2px;
	font-family: var(--font-accent);
	text-transform: uppercase;
	letter-spacing: .05em;
	cursor: pointer;
}
.be-search-panel button[type="submit"]:hover { background: var(--be-green-dark); }

/* =========================================================================
   CARRINHO LATERAL (mini-cart) - fundo BRANCO
   ========================================================================= */
.be-drawer-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,.4);
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s;
	z-index: 200;
}
.be-drawer-overlay.is-open { opacity: 1; visibility: visible; }

.be-minicart {
	position: fixed;
	top: 0;
	right: 0;
	width: 400px;
	max-width: 90vw;
	height: 100%;
	background: var(--be-white);      /* <-- fundo branco (correcao do verde ilegivel) */
	color: var(--be-ink);
	box-shadow: -12px 0 34px rgba(0,0,0,.12);
	transform: translateX(100%);
	transition: transform .32s cubic-bezier(.4,0,.2,1);
	z-index: 210;
	display: flex;
	flex-direction: column;
}
.be-minicart.is-open { transform: translateX(0); }

.be-minicart-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 22px 24px;
	border-bottom: 1px solid var(--be-line);
}
.be-minicart-title {
	font-family: var(--font-serif);
	font-size: 20px;
}
/* X de fechar SEM fundo/quadradinho (o snippet externo pintava <button> de navy) */
.be-minicart-close {
	background: none !important;
	background-color: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	width: auto !important;
	height: auto !important;
	padding: 2px 6px !important;
	font-size: 30px;
	line-height: 1;
	color: var(--be-ink) !important;
	cursor: pointer;
}
.be-minicart-close:hover { color: var(--be-green) !important; background: none !important; }

.be-minicart-body {
	flex: 1;
	overflow-y: auto;
	padding: 20px 24px;
}

/* Estilo do conteudo padrao do WooCommerce dentro do drawer */
.be-minicart .woocommerce-mini-cart {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* ITENS estilo TRD: miniatura PEQUENA a esquerda + nome/preco ao lado + X a direita
   (antes a foto aparecia num quadrado gigante) */
.be-minicart .woocommerce-mini-cart-item {
	position: relative;
	list-style: none;
	margin: 0 !important;
	padding: 14px 26px 14px 78px !important;
	border-bottom: 1px solid var(--be-line);
	min-height: 92px;
}
.be-minicart .woocommerce-mini-cart-item a:not(.remove) {
	display: block;
	font-size: 14px;
	line-height: 1.4;
	font-family: var(--font-body);
}
.be-minicart .woocommerce-mini-cart-item img {
	position: absolute;
	left: 0;
	top: 14px;
	width: 64px !important;
	height: 64px !important;
	max-width: 64px !important;
	object-fit: cover;
	border-radius: 8px;
	margin: 0 !important;
	float: none !important;
	box-shadow: none;
}
.be-minicart .woocommerce-mini-cart-item .quantity {
	display: block;
	margin-top: 6px;
	font-size: 13.5px;
	color: var(--be-muted);
}
.be-minicart .woocommerce-mini-cart-item a.remove {
	position: absolute;
	right: 0;
	top: 12px;
	width: 22px;
	height: 22px;
	line-height: 20px;
	text-align: center;
	font-size: 19px;
	color: var(--be-muted) !important;
	background: none !important;
	border: 0 !important;
}
.be-minicart .woocommerce-mini-cart-item a.remove:hover { color: #a1231f !important; background: none !important; }

/* garantia extra: so o botao FINALIZAR COMPRA no drawer (o "Ver carrinho" ja foi
   removido no PHP, mas fragmentos antigos em cache ainda podiam mostra-lo) */
.be-minicart .woocommerce-mini-cart__buttons a.button:not(.checkout) { display: none !important; }
.be-minicart .woocommerce-mini-cart__buttons .button.checkout { width: 100%; }
.be-minicart .woocommerce-mini-cart__total {
	display: flex;
	justify-content: space-between;
	padding: 16px 0;
	border-top: 1px solid var(--be-line);
	border-bottom: 1px solid var(--be-line);
	margin: 14px 0 18px;
	font-size: 15px;
}
.be-minicart .woocommerce-mini-cart__buttons { display: flex; flex-direction: column; gap: 10px; }
.be-minicart .woocommerce-mini-cart__buttons .button {
	display: block;
	text-align: center;
	background: var(--be-green);
	color: #fff !important;
	padding: 13px 20px;
	border-radius: 2px;
	font-family: var(--font-accent);
	text-transform: uppercase;
	letter-spacing: .05em;
	font-size: 13px;
}
.be-minicart .woocommerce-mini-cart__buttons .button:hover { background: var(--be-green-dark); }
.be-minicart .woocommerce-mini-cart__buttons .button.checkout { background: var(--be-ink); }
.be-minicart .woocommerce-mini-cart__buttons .button.checkout:hover { background: #000; }
.be-minicart p.woocommerce-mini-cart__empty-message { color: var(--be-muted); }
/* Item 6: nomes/precos do mini-carrinho nao herdam a cor de link (azul/navy) */
.be-minicart .woocommerce-mini-cart-item a:not(.remove) { color: #1a1a1a; text-decoration: none; }
.be-minicart .woocommerce-mini-cart-item .amount,
.be-minicart .woocommerce-mini-cart__total .amount { color: #1a1a1a; }

/* MINI-CARRINHO do Elementor (o drawer usa o markup .elementor-menu-cart__*):
   miniatura pequena + nome/preco ao lado (estilo TRD) e botoes VERDES. */
.be-minicart .elementor-menu-cart__product {
	position: relative;
	display: grid;
	grid-template-columns: 64px 1fr;
	grid-template-areas: "img name" "img price";
	column-gap: 14px;
	align-items: start;
	padding: 16px 34px 16px 24px;
	border-bottom: 1px solid var(--be-line);
}
.be-minicart .elementor-menu-cart__product-image { grid-area: img; width: 64px; }
.be-minicart .elementor-menu-cart__product-image img {
	width: 64px !important; height: 64px !important; max-width: 64px !important;
	object-fit: cover; border-radius: 8px; display: block;
}
.be-minicart .elementor-menu-cart__product-name { grid-area: name; margin: 0; }
.be-minicart .elementor-menu-cart__product-name a { font-family: var(--font-body); font-size: 14px; line-height: 1.35; color: #1a1a1a; }
.be-minicart .elementor-menu-cart__product-price { grid-area: price; margin-top: 4px; }
.be-minicart .elementor-menu-cart__product-price .quantity,
.be-minicart .elementor-menu-cart__product-price .amount { font-size: 13.5px; color: var(--be-muted); }
/* remover (x) discreto no canto; Elementor duplica o link -> mostra so 1 */
.be-minicart .elementor-menu-cart__product-remove { position: absolute; top: 12px; right: 4px; }
.be-minicart .elementor-menu-cart__product-remove a.elementor_remove_from_cart_button { display: none; }
.be-minicart .elementor-menu-cart__product-remove a.remove_from_cart_button { display: inline-block; width: 22px; height: 22px; line-height: 20px; text-align: center; }
.be-minicart .elementor-menu-cart__product-remove a.remove_from_cart_button::before { content: "\00d7"; font-size: 18px; color: var(--be-muted); }
.be-minicart .elementor-menu-cart__product-remove a.remove_from_cart_button:hover::before { color: #a1231f; }

.be-minicart .elementor-menu-cart__subtotal { display: flex; justify-content: space-between; align-items: center; padding: 16px 24px; border-top: 1px solid var(--be-line); font-size: 15px; }
.be-minicart .elementor-menu-cart__subtotal strong { font-weight: 600; }

/* botoes do drawer: VERDES (Finalizar solido, Ver carrinho contorno) */
.be-minicart .elementor-menu-cart__footer-buttons { display: flex; flex-direction: column; gap: 10px; padding: 0 24px 24px; }
.be-minicart .elementor-menu-cart__footer-buttons .elementor-button {
	display: block; width: 100%; text-align: center; padding: 13px 20px; border-radius: 2px;
	font-family: var(--font-accent); text-transform: uppercase; letter-spacing: .05em; font-size: 13px; line-height: 1.2;
	background: var(--be-green) !important; color: #fff !important; border: 1px solid var(--be-green) !important;
}
.be-minicart .elementor-menu-cart__footer-buttons .elementor-button--view-cart { background: transparent !important; color: var(--be-green) !important; }
.be-minicart .elementor-menu-cart__footer-buttons .elementor-button:hover { background: var(--be-green-dark) !important; border-color: var(--be-green-dark) !important; color: #fff !important; }

/* Popup "adicionado ao carrinho" (estilo TRD) - abaixo do icone do carrinho */
.be-cart-wrap { position: relative; }
.be-cart-pop {
	position: absolute;
	top: calc(100% + 12px);
	left: auto;
	right: 0;   /* icone do carrinho a DIREITA -> popup abre para a esquerda */
	width: 320px;
	max-width: calc(100vw - 32px);
	background: #fff;
	border: 1px solid var(--be-line);
	border-radius: 10px;
	box-shadow: 0 18px 44px rgba(2, 16, 39, .16);
	padding: 16px;
	z-index: 300;
	opacity: 0;
	transform: translateY(-8px);
	transition: opacity .22s ease, transform .22s ease;
	pointer-events: none;
}
.be-cart-pop.is-open { opacity: 1; transform: translateY(0); pointer-events: auto; }
.be-cart-pop__row { display: flex; gap: 12px; align-items: flex-start; }
.be-cart-pop__img { width: 56px; height: 56px; object-fit: cover; border-radius: 6px; flex: 0 0 56px; }
.be-cart-pop__info { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.be-cart-pop__name { font-family: var(--font-serif); font-size: 15px; line-height: 1.25; color: var(--be-ink); }
.be-cart-pop__meta { font-family: var(--font-body); font-size: 13px; color: var(--be-muted); }
.be-cart-pop__ok { font-family: var(--font-accent); font-size: 13px; font-weight: 500; color: var(--be-green); margin-top: 4px; }
@media (max-width: 480px) {
	.be-cart-pop { position: fixed; top: 72px; left: 16px; right: 16px; width: auto; }
}

/* =========================================================================
   HERO
   ========================================================================= */
/* Banner clicavel: a imagem aparece INTEIRA (sem corte) e o bloco todo leva a Loja.
   O <picture> troca a imagem: mobile (<768px) x desktop (>=768px). */
.be-hero { display: block; }
.be-hero img { display: block; width: 100%; height: auto; }
.be-hero-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding-top: 120px;
	padding-bottom: 120px;
}
.be-eyebrow {
	font-family: var(--font-accent);
	text-transform: uppercase;
	letter-spacing: .28em;
	font-size: 12px;
	color: var(--be-green);
	margin: 0 0 22px;
}
.be-hero-title {
	font-size: clamp(38px, 5vw, 64px);
	line-height: 1.08;
	margin: 0 0 22px;
}
.be-hero-sub {
	font-size: 18px;
	color: var(--be-muted);
	max-width: 540px;
	margin: 0 0 34px;
}

/* =========================================================================
   SECOES GENERICAS
   ========================================================================= */
.be-section { padding-block: 96px; }
.be-section--cream { background: var(--be-cream); }

.be-section-head { text-align: center; max-width: 640px; margin: 0 auto 54px; }
.be-section-title {
	font-size: clamp(28px, 3.4vw, 40px);
	letter-spacing: .01em;
}
.be-section-sub {
	font-size: 16px;
	color: var(--be-muted);
	margin-top: 14px;
}
.be-section-head--row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	text-align: left;
	max-width: none;
}
.be-section-cta { text-align: center; margin-top: 46px; }

/* =========================================================================
   GRADE DE PRODUTOS (WooCommerce [products])
   ========================================================================= */
.be-products ul.products,
.be-shop ul.products {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 34px 26px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.be-products ul.products::before,
.be-products ul.products::after { content: none; display: none; } /* remove clearfix antigo */

.be-products ul.products li.product,
.be-shop ul.products li.product {
	position: relative;              /* referencia para o coracao sobreposto */
	display: flex;                   /* cartao em coluna: empurra o botao pra base */
	flex-direction: column;
	height: 100%;                    /* todos os cards com a MESMA altura */
	width: auto !important;
	margin: 0 !important;
	padding: 12px 12px 16px !important;
	float: none !important;
	text-align: center;
	background: #fff;
	border-radius: 10px;
	/* base pequena e discreta: qualquer texto extra (parcelamento/Pix) fica menor.
	   Escopo restrito ao card da grade -> nao afeta o resto do site. */
	font-size: 12px;
	line-height: 1.45;
	color: var(--be-muted);
}
.be-products li.product a img,
.be-shop li.product a img {
	width: 100%;
	aspect-ratio: 1 / 1;             /* imagens sempre no mesmo formato */
	object-fit: cover;
	border-radius: 8px;
	margin-bottom: 14px;
	background: #fff;
}

/* CONTAINER da imagem: quadrado fixo com overflow:hidden -> as 2 fotos
   (principal + hover) ficam DENTRO e nunca vazam sobre o texto. */
.be-products li.product .be-card-media,
.be-shop li.product .be-card-media {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 14px;
	background: #fff;
}
.be-products li.product .be-card-media img,
.be-shop li.product .be-card-media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	margin: 0;
	border-radius: 8px;
	aspect-ratio: auto;
}
/* foto de hover: sobreposta, aparece com fade ao passar o mouse */
.be-products li.product .be-card-media img.be-card-hover,
.be-shop li.product .be-card-media img.be-card-hover {
	opacity: 0;
	transition: opacity .35s ease;
	z-index: 2;
}
.be-products li.product:hover .be-card-media img.be-card-hover,
.be-shop li.product:hover .be-card-media img.be-card-hover { opacity: 1; }
.be-products li.product .woocommerce-loop-product__title,
.be-shop li.product .woocommerce-loop-product__title {
	font-family: var(--font-serif);
	font-size: 18px;                 /* card: aumentado */
	font-weight: 500;
	line-height: 1.25;
	min-height: 2.5em;               /* alinha preco/botao mesmo com titulo de 1 ou 2 linhas */
	padding: 0;
	margin: 0 0 16px;                /* respiro entre titulo e preco */
	color: #1a1a1a;                  /* preto suave (nao herda o azul do link) */
	text-decoration: none;
}
/* Estrelas de avaliacao: OCULTAS na grade da home (visual clean, tipo Aesop). */
.be-products li.product .star-rating,
.be-products li.product .woocommerce-product-rating {
	display: none !important;
}
.be-products li.product .price,
.be-shop li.product .price {
	display: block;
	font-family: var(--font-accent);
	color: #1a1a1a;            /* preto suave (remove o azul de link) */
	font-size: 22px;           /* card: aumentado */
	font-weight: 700;
	text-decoration: none;
	margin-bottom: 10px;       /* respiro entre o preco e a linha do Pix */
}
/* forca cor/peso e tira a aparencia de link no preco do card */
.be-products li.product .price .amount,
.be-products li.product .price bdi,
.be-shop li.product .price .amount,
.be-shop li.product .price bdi {
	color: #1a1a1a;
	font-weight: 700;
	text-decoration: none;
}
.be-products li.product .price del,
.be-shop li.product .price del { color: var(--be-muted); font-weight: 400; font-size: .85em; }
.be-products li.product .price ins,
.be-shop li.product .price ins { text-decoration: none; }

/* Nossa legenda discreta de Pix (gerada no functions.php): cinza e sutil,
   sem caixa colorida, com o icone oficial do Pix a esquerda. */
.be-products li.product .be-pix-note {
	display: flex;
	align-items: center;
	justify-content: center;   /* icone + texto centralizados no card */
	gap: 6px;
	margin: 4px 0 6px;
	font-family: var(--font-body);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
	color: #4A7551;            /* verde da marca */
	letter-spacing: .01em;
}
.be-products li.product .be-pix-icon {
	flex: 0 0 auto;
	color: #4A7551;            /* verde da marca */
}
.be-products li.product .be-pix-note .amount,
.be-products li.product .be-pix-note bdi { color: #4A7551; font-weight: 500; }

/* Esconde blocos extras de plugins dentro do card (ex.: a caixa de
   PARCELAMENTO), mantendo SOMENTE: imagem, titulo, preco, nossa legenda de
   Pix, botao e coracao. Escopo restrito a grade "Novos produtos" da home
   -> nao afeta a loja nem o resto do site. */
.be-products li.product > *:not(.woocommerce-LoopProduct-link):not(.woocommerce-loop-product__link):not(.woocommerce-loop-product__title):not(.price):not(.button):not(.be-pix-note):not(.onsale):not(.star-rating):not([class*="wishlist"]):not([class*="tinv"]):not([class*="yith"]):not([class*="wcwl"]),
.be-products li.product .woocommerce-LoopProduct-link > *:not(img):not(.be-card-media):not(.woocommerce-loop-product__title):not(.price):not(.be-pix-note):not(.onsale):not(.star-rating):not([class*="wishlist"]):not([class*="wcwl"]):not([class*="tinvwl"]) {
	display: none !important;
}

/* Esconde a CAIXA ANTIGA de parcelamento/Pix do plugin em TODA grade de
   produtos do site (Home, Loja, categoria e relacionados), a qualquer
   profundidade. Mira nas classes reais do plugin antigo. NAO afeta a nossa
   legenda .be-pix-note (classe diferente de .be-pix). */
.be-products li.product .be-payment-info,
.be-products li.product .be-installments,
.be-products li.product .be-pix,
ul.products li.product .be-payment-info,
ul.products li.product .be-installments,
ul.products li.product .be-pix,
.single-product .be-payment-info,
.single-product .be-installments,
.single-product .be-pix {
	display: none !important;
}

/* Coracao / Wishlist: sobreposto no canto superior direito da imagem
   (estilo Aesop / Neal's Yard). Cobre os plugins mais comuns (TI e YITH).
   Se o seu plugin de wishlist for outro e o coracao nao mover, me diga o
   nome do plugin que eu ajusto o seletor exato. */
.be-products li.product > [class*="wishlist"],
.be-products li.product > [class*="wcwl"],
.be-products li.product > [class*="tinvwl"],
.be-products li.product .woocommerce-LoopProduct-link > [class*="wishlist"],
.be-products li.product .woocommerce-LoopProduct-link > [class*="wcwl"],
.be-products li.product .woocommerce-LoopProduct-link > [class*="tinvwl"] {
	position: absolute;
	top: 12px;
	right: 12px;
	left: auto;
	margin: 0 !important;
	padding: 0 !important;
	z-index: 3;
	width: 34px;
	height: 34px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, .92);
	border-radius: 50%;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
	transition: background-color .2s ease;
}
.be-products li.product > [class*="wishlist"]:hover,
.be-products li.product > [class*="wcwl"]:hover,
.be-products li.product > [class*="tinvwl"]:hover { background: #fff; }
.be-products li.product [class*="wishlist"] a,
.be-products li.product [class*="wcwl"] a,
.be-products li.product [class*="tinvwl"] a { line-height: 1; color: var(--be-ink); }

/* Botao "adicionar ao carrinho" no verde da marca (apenas na loja/produto) */
.be-products a.button,
.be-products a.add_to_cart_button,
.be-shop a.button,
.be-shop a.add_to_cart_button,
.woocommerce a.button.add_to_cart_button,
.woocommerce button.single_add_to_cart_button {
	display: inline-block;
	margin-top: 12px;
	background: var(--be-green);
	color: #fff;
	border: 1px solid var(--be-green);
	border-radius: 2px;
	padding: 12px 22px;
	font-family: var(--font-accent);
	font-size: 13px;
	letter-spacing: .05em;
	text-transform: uppercase;
	transition: background-color .2s ease, border-color .2s ease;
}
.be-products a.button:hover,
.be-shop a.button:hover,
.woocommerce a.button.add_to_cart_button:hover,
.woocommerce button.single_add_to_cart_button:hover {
	background: var(--be-green-dark);
	border-color: var(--be-green-dark);
	color: #fff;
}

/* Botoes SEMPRE na base do card, TODOS NA MESMA LINHA.
   !important porque um CSS externo desfazia o flex/margin e o botao
   "VER OPCOES" descia em relacao aos vizinhos. */
.be-products ul.products li.product,
.be-shop ul.products li.product {
	display: flex !important;
	flex-direction: column !important;
}
.be-products li.product a.button,
.be-products li.product a.add_to_cart_button,
.be-products li.product a.product_type_variable,
.be-shop li.product a.button,
.be-shop li.product a.add_to_cart_button,
.be-shop li.product a.product_type_variable {
	margin-top: auto !important;
	width: 100%;
	text-align: center;
	box-sizing: border-box;
	border-radius: 0;   /* formato mais reto (menos arredondado) */
	/* MESMA ALTURA em todos: "VER OPCOES" (1 linha) x "ADICIONAR AO CARRINHO"
	   (2 linhas) ficavam com alturas diferentes. Altura fixa + texto centralizado. */
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	padding-top: 8px !important;
	padding-bottom: 8px !important;
	line-height: 1.25;
}
/* "Ver carrinho" que aparece depois de adicionar: vira link discreto, nao segundo botao */
.be-products li.product a.added_to_cart {
	margin-top: 8px;
	width: 100%;
	background: transparent;
	color: var(--be-green);
	border: 0;
	padding: 4px 0;
	font-size: 12px;
	letter-spacing: .04em;
}

/* =========================================================================
   SECAO DE FOTOS GRANDES (editorial "zig-zag", estilo Aesop)
   - usa o MESMO container/max-width da Home (.be-container)
   - imagem e texto centralizados verticalmente um em relacao ao outro
   - imagem SEM corte/distorcao (mantem a proporcao natural da foto)
   ========================================================================= */
.be-feature { padding-block: 56px; }          /* respiro vertical entre os blocos */

.be-feature-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;                        /* imagem e texto centralizados um com o outro */
	gap: 64px;
}
.be-feature--reverse .be-feature-media { order: 2; }   /* zig-zag: imagem vai para a direita */

.be-feature-media img {
	width: 100%;
	height: auto;                              /* mantem a proporcao (nao corta / nao estica) */
	display: block;
	border-radius: 10px;
}
.be-feature-ph {                               /* so o PLACEHOLDER precisa de altura propria */
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 5;
	background: #efe7de;
	color: #b9ab9b;
	border-radius: 10px;
	font-family: var(--font-accent);
	text-transform: uppercase;
	letter-spacing: .1em;
	font-size: 13px;
}

.be-feature-body { max-width: 480px; }
.be-feature-title {
	font-size: clamp(28px, 3vw, 40px);
	line-height: 1.15;
	margin-bottom: 18px;
}
.be-feature-text {
	font-size: 16px;
	line-height: 1.75;
	color: var(--be-muted);
	margin-bottom: 26px;
}
.be-feature-link {
	display: inline-block;
	font-family: var(--font-accent);
	font-size: 13px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--be-green);
	border-bottom: 1px solid var(--be-green);
	padding-bottom: 4px;
	transition: color .2s ease, border-color .2s ease;
}
.be-feature-link:hover { color: var(--be-green-dark); border-color: var(--be-green-dark); }

/* =========================================================================
   CATEGORIAS
   ========================================================================= */
.be-cats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 26px;
}
.be-cat { text-align: center; }
.be-cat-img {
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: transparent;   /* sem card/borda branca atras da foto da categoria */
}
.be-cat-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.be-cat:hover .be-cat-img img { transform: scale(1.05); }
.be-cat-name {
	display: block;
	margin-top: 14px;
	font-family: var(--font-accent);
	font-size: 16px;
	color: var(--be-ink);
}

/* =========================================================================
   NEWSLETTER
   ========================================================================= */
/* Newsletter em DUAS COLUNAS (texto + foto), fundo creme - estilo Soap Opera */
.be-news { background: var(--be-cream); color: var(--be-ink); }
.be-news-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: center;
	padding-block: 72px;
}
.be-news-title { color: var(--be-ink); font-size: clamp(28px, 3.4vw, 42px); margin: 0 0 14px; }
.be-news-sub { color: var(--be-muted); margin: 0 0 26px; max-width: 470px; line-height: 1.75; }
.be-news-form { display: flex; gap: 10px; justify-content: flex-start; }
.be-news-form input {
	flex: 1;
	max-width: 320px;
	height: 54px;
	padding: 0 16px;
	border: 1px solid #d8cbbd;
	background: #fff;
	color: var(--be-ink);
	border-radius: 2px;
	font-family: var(--font-body);
}
.be-news-form input::placeholder { color: var(--be-muted); }
/* imagem da newsletter: nunca estica nem desalinha; se vier MUITO alta,
   limita a altura e enquadra pelo centro (sem distorcer) */
.be-news-media img {
	width: 100%;
	height: auto;
	max-height: 540px;
	object-fit: cover;
	object-position: center;
	border-radius: 12px;
	display: block;
}
@media (max-width: 900px) {
	.be-news-media img { max-height: 420px; }
}
@media (max-width: 900px) {
	.be-news-grid { grid-template-columns: 1fr; gap: 32px; padding-block: 56px; }
}

/* =========================================================================
   PAGINAS (institucionais / Elementor) e conteudo generico
   ========================================================================= */
.be-page { padding-block: 60px; }
.be-page-title { font-size: 40px; margin-bottom: 24px; }
.be-page-content { width: 100%; }   /* Elementor controla a largura interna */

/* =========================================================================
   FOOTER
   ========================================================================= */
.be-footer { background: var(--be-ink); color: #fff; margin-top: 0; }

/* 3 colunas de links */
.be-footer-cols {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	padding-block: 72px 44px;
}
.be-footer-title {
	font-family: var(--font-serif);
	text-transform: uppercase;
	letter-spacing: .06em;
	font-size: 18px;
	color: #fff;
	margin: 0 0 20px;
}
.be-footer-menu { list-style: none; margin: 0; padding: 0; }
.be-footer-menu li { margin-bottom: 12px; }
/* links quase-brancos e legiveis (!important vence o estilo externo/snippet) */
.be-footer .be-footer-menu a { font-size: 15px; color: #ececef !important; text-decoration: none; transition: color .2s ease; }
.be-footer .be-footer-menu a:hover { color: #fff !important; }

/* redes sociais (centralizadas) - icones brancos */
.be-footer-social { display: flex; justify-content: center; align-items: center; gap: 22px; padding-bottom: 26px; }
.be-footer .be-social { display: inline-flex; color: #fff !important; opacity: .92; transition: opacity .2s ease; }
.be-footer .be-social:hover { opacity: 1; }
.be-footer .be-social--nolink { cursor: default; }
.be-footer .be-social svg { width: 22px; height: 22px; fill: currentColor !important; }

/* icones de contato (e-mail / whatsapp) ao lado do texto */
.be-footer-contact a { display: inline-flex; align-items: center; gap: 8px; }
.be-footer .be-contact-ic { flex: 0 0 auto; color: #fff; }

/* formas de pagamento + selo SSL (centralizados, lado a lado) */
.be-footer-pay { display: flex; justify-content: center; align-items: center; gap: 30px; flex-wrap: wrap; padding-bottom: 44px; }
/* tamanho FORCADO (!important + seletor forte) para nao estourar em outras
   paginas onde um CSS externo remove o max-width e a imagem fica gigante. */
/* pagamento DISCRETO e ALINHADO: faixa e selo SSL com a MESMA altura,
   centralizados na mesma linha (dimensionar pela ALTURA elimina o "torto") */
/* as DUAS imagens com a MESMA altura -> alinhadas e centralizadas na linha */
.be-footer .be-footer-pay .be-payments-img {
	height: auto !important;
	width: auto !important;
	max-width: 380px !important;
	display: block;
	object-fit: contain;
	opacity: .95;
}
.be-payments-placeholder {
	display: inline-block;
	padding: 16px 20px;
	border: 1px dashed rgba(255,255,255,.3);
	border-radius: 6px;
	color: rgba(255,255,255,.6);
	font-size: 13px;
	font-family: var(--font-accent);
}

.be-footer-bottom {
	border-top: 1px solid rgba(255,255,255,.12);
	padding-block: 20px;
	text-align: center;
	font-size: 13px;
	color: rgba(255,255,255,.6);
}

/* =========================================================================
   BREADCRUMB (loja e produto unico)
   ========================================================================= */
.be-breadcrumb {
	font-family: var(--font-accent);
	font-size: 13px;
	color: var(--be-muted);
	margin-bottom: 18px;
	letter-spacing: .02em;
}
.be-breadcrumb a { color: var(--be-muted); }
.be-breadcrumb a:hover { color: var(--be-green); }
.be-breadcrumb .be-crumb-sep { margin: 0 8px; color: #cfc7bd; }

/* =========================================================================
   LOJA / LISTAGEM DE PRODUTOS (archive-product.php)
   Filtro lateral (esquerda) + grade (direita). O card reaproveita .be-products.
   ========================================================================= */
.be-shop { padding-block: 30px 80px; }

.be-shop-head { margin-bottom: 26px; }
.be-shop-title { font-size: clamp(28px, 3.2vw, 42px); }

/* loja em COLUNA UNICA: filtro virou dropdown "Filtrar" na barra de topo */
.be-shop-layout { display: block; }

/* --- dropdown "Filtrar" --- */
.be-filterbar { position: relative; }
.be-filter-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #fff !important;
	color: var(--be-ink) !important;
	border: 1px solid #cfcfcf !important;
	border-radius: 4px;
	padding: 10px 16px;
	font-family: var(--font-accent);
	font-size: 14px;
	letter-spacing: .02em;
	cursor: pointer;
}
.be-filter-toggle:hover { border-color: var(--be-ink) !important; }
.be-filter-caret { width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin-top: -3px; transition: transform .2s ease; }
.be-filter-toggle[aria-expanded="true"] .be-filter-caret { transform: rotate(-135deg); margin-top: 2px; }
.be-filter-panel {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	z-index: 60;
	width: 280px;
	max-width: calc(100vw - 32px);
	background: #fff;
	border: 1px solid var(--be-line);
	border-radius: 8px;
	box-shadow: 0 16px 34px rgba(2,16,39,.12);
	padding: 16px 18px;
}
.be-filter-panel[hidden] { display: none; }
.be-filter__list { list-style: none; margin: 0 0 14px; padding: 0; max-height: 320px; overflow-y: auto; }
.be-filter__item { margin-bottom: 12px; break-inside: avoid; }
.be-filter__item label {
	display: flex;
	align-items: center;
	gap: 9px;
	cursor: pointer;
	font-size: 15px;
	color: var(--be-ink);
}
.be-filter__item input[type="checkbox"] {
	width: 17px;
	height: 17px;
	accent-color: var(--be-green);
	flex: 0 0 auto;
}
.be-filter__count { color: var(--be-muted); font-size: 13px; }
.be-filter__apply {
	width: 100%;
	background: var(--be-green);
	color: #fff;
	border: 0;
	border-radius: 0;
	padding: 12px;
	font-family: var(--font-accent);
	text-transform: uppercase;
	letter-spacing: .05em;
	font-size: 13px;
	cursor: pointer;
	transition: background-color .2s ease;
}
.be-filter__apply:hover { background: var(--be-green-dark); }
.be-filter__clear {
	display: inline-block;
	margin-top: 12px;
	font-size: 13px;
	color: var(--be-muted);
	border-bottom: 1px solid transparent;
}
.be-filter__clear:hover { color: var(--be-green); border-color: var(--be-green); }
.be-filter__actions { display: flex; align-items: center; gap: 14px; }
.be-filter__actions .be-filter__apply { width: auto; flex: 1; border-radius: 4px; }
.be-filter__actions .be-filter__clear { margin-top: 0; white-space: nowrap; }
/* lado esquerdo da barra de topo: Filtrar + total lado a lado */
.be-shop-toolbar__left { display: flex; align-items: center; gap: 16px; }

/* --- barra de topo da grade: total + ordenacao --- */
.be-shop-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 26px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--be-line);
}
.be-shop-total { font-size: 14px; color: var(--be-muted); }
.be-shop-toolbar .woocommerce-ordering { margin: 0; }
.be-shop-toolbar .woocommerce-ordering select {
	padding: 10px 14px;
	border: 1px solid #cfcfcf;
	border-radius: 2px;
	background: #fff;
	font-family: var(--font-body);
	font-size: 14px;
}

/* grade ao lado do filtro: 4 / 2 / 1 (seletor mais especifico que o da home) */
.be-shop .be-products ul.products { grid-template-columns: repeat(4, 1fr); }

/* REFORCO: garante a grade na Loja mesmo com CSS externo (evita cards/imagens gigantes).
   Nao usa !important em grid-template-columns para nao quebrar o responsivo abaixo. */
.be-shop .be-products ul.products { display: grid !important; float: none !important; }
.be-shop .be-products ul.products::before,
.be-shop .be-products ul.products::after { content: none !important; display: none !important; }
.be-shop .be-products ul.products li.product {
	width: auto !important;
	max-width: 100% !important;
	float: none !important;
	margin: 0 !important;
}
.be-shop .be-products li.product img { max-width: 100% !important; height: auto; }

/* paginacao (padrao WooCommerce) */
.woocommerce-pagination { margin-top: 50px; }
.woocommerce-pagination ul { display: inline-flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.woocommerce-pagination ul li { margin: 0; }
.woocommerce-pagination a.page-numbers,
.woocommerce-pagination span.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 10px;
	border: 1px solid var(--be-line);
	color: var(--be-ink);
	font-family: var(--font-accent);
	font-size: 14px;
}
.woocommerce-pagination span.current { background: var(--be-green); border-color: var(--be-green); color: #fff; }
.woocommerce-pagination a.page-numbers:hover { border-color: var(--be-green); color: var(--be-green); }

/* =========================================================================
   PRODUTO UNICO (single-product.php) - distribuicao estilo Neal's Yard
   ========================================================================= */
/* topo: galeria (esq) + informacoes (dir). Acordeao e relacionados ficam
   FORA deste grid, ocupando a largura toda naturalmente. */
.be-single-top {
	display: grid;
	grid-template-columns: 1.05fr 1fr;   /* galeria | informacoes */
	gap: 56px;
	align-items: start;
	margin-bottom: 8px;
}

/* preco + badge de desconto (badge escuro, texto branco, pequeno) */
.be-single-price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 12px;
	font-family: var(--font-accent);
	font-size: 26px;          /* Bug 3: valor exato */
	font-weight: 700;
	color: #1a1a1a;           /* preto suave (remove o azul de link) */
	margin-bottom: 8px;
}
/* forca cor/peso e remove qualquer aparencia de link no preco principal */
.be-single-price .woocommerce-Price-amount,
.be-single-price .amount,
.be-single-price ins,
.be-single-price bdi {
	color: #1a1a1a;
	font-weight: 700;
	text-decoration: none;
}
/* preco antigo (riscado) fica cinza, mantendo o risco */
.be-single-price del,
.be-single-price del .amount,
.be-single-price del bdi {
	color: var(--be-muted);
	font-weight: 400;
	text-decoration: line-through;
}
.be-discount-badge {
	display: inline-block;
	background: var(--be-ink);
	color: #fff;
	font-family: var(--font-accent);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .03em;
	padding: 4px 9px;
	border-radius: 2px;
	line-height: 1.2;
}

/* GALERIA PROPRIA (estilo Neal's Yard): miniaturas na vertical + foto grande.
   Sem FlexSlider -> altura sempre correta, nada "vaza" por cima do acordeao. */
.be-single-gallery { position: sticky; top: 100px; }
.be-gallery { display: flex; gap: 16px; align-items: flex-start; }
.be-gallery__thumbs { display: flex; flex-direction: column; gap: 12px; flex: 0 0 80px; width: 80px; }
.be-gallery__thumb {
	display: block;
	width: 80px;
	padding: 0 !important;
	border: 1px solid transparent !important;
	border-radius: 8px;
	background: none !important;
	background-color: transparent !important;
	box-shadow: none !important;
	cursor: pointer;
	overflow: hidden;
	line-height: 0;
}
.be-gallery__thumb img { display: block; width: 100%; height: auto; border-radius: 7px; opacity: .6; transition: opacity .2s; }
.be-gallery__thumb:hover img { opacity: 1; }
.be-gallery__thumb.is-active { border-color: var(--be-ink) !important; }
.be-gallery__thumb.is-active img { opacity: 1; }
.be-gallery__main { flex: 1 1 auto; min-width: 0; }
.be-gallery__main img { display: block; width: 100%; height: auto; border-radius: 10px; }
@media (max-width: 640px) {
	.be-gallery { gap: 10px; }
	.be-gallery__thumbs { flex-basis: 56px; width: 56px; }
	.be-gallery__thumb { width: 56px; }
}

/* esconde o "X em estoque" na pagina do produto (a inspiracao nao mostra) */
.single-product .stock { display: none !important; }

/* coluna de informacoes */
.single-product div.product .summary { width: 100% !important; float: none !important; margin: 0 !important; }
.single-product .product_title {
	font-family: var(--font-serif);
	font-size: 32px;          /* Bug 3: valor exato */
	font-weight: 500;
	color: #1a1a1a;           /* preto suave (nao azul/navy) */
	line-height: 1.2;
	margin: 0 0 12px;
}
@media (max-width: 640px) {
	.single-product .product_title { font-size: 28px; }
}
.single-product div.product p.price,
.single-product div.product .summary .price {
	font-family: var(--font-accent);
	font-size: 26px;
	font-weight: 600;
	color: var(--be-ink);
	margin: 0 0 6px;
}
.single-product div.product p.price del { font-weight: 400; color: var(--be-muted); }
.single-product div.product p.price ins { text-decoration: none; }
/* Bug 3: legenda de Pix no produto - verde da marca, 15px, semi-bold */
.single-product .be-pix-note {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 6px;
	font-size: 15px;
	font-weight: 500;
	color: #4A7551;
	margin: 0 0 22px;
}
.single-product .be-pix-note .be-pix-icon { color: #4A7551; }
.single-product .be-pix-note .be-pix-text,
.single-product .be-pix-note .amount,
.single-product .be-pix-note bdi { color: #4A7551; font-weight: 500; }
.single-product .woocommerce-product-details__short-description { color: var(--be-muted); line-height: 1.75; margin-bottom: 26px; }

/* variacoes nativas (tamanho/cor/etc) */
.single-product .variations { width: 100%; margin: 0 0 18px; }
.single-product .variations th,
.single-product .variations td { padding: 6px 10px 6px 0; text-align: left; vertical-align: middle; }
.single-product .variations select { min-height: 46px; padding: 0 12px; border: 1px solid #cfcfcf; border-radius: 2px; background: #fff; }
.single-product .reset_variations { font-size: 13px; color: var(--be-green); }

/* quantidade + adicionar ao carrinho */
.single-product .quantity input.qty { height: 54px; width: 84px; border: 1px solid #cfcfcf; border-radius: 2px; text-align: center; font-family: var(--font-body); }
.single-product form.cart:not(.variations_form):not(.grouped_form) { display: flex; gap: 12px; align-items: stretch; flex-wrap: wrap; margin-bottom: 18px; }
.single-product .woocommerce-variation-add-to-cart { display: flex; gap: 12px; align-items: stretch; flex-wrap: wrap; }
.single-product form.cart .single_add_to_cart_button { flex: 1 1 240px; height: 54px; border-radius: 0; margin: 0; font-size: 14px; }

/* botao verde da marca REFORCADO (vence o roxo do WooCommerce/ShopEngine/snippet) */
.single-product .single_add_to_cart_button,
.woocommerce div.product form.cart .single_add_to_cart_button {
	background: var(--be-green) !important;
	border-color: var(--be-green) !important;
	color: #fff !important;
}
.single-product .single_add_to_cart_button:hover,
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
	background: var(--be-green-dark) !important;
	border-color: var(--be-green-dark) !important;
}

/* remove o selo "Oferta!/Sale!" nativo em qualquer lugar do site */
span.onsale,
.onsale { display: none !important; }

/* aviso "adicionado ao carrinho" desativado no PHP; se sobrar um aviso VAZIO, some */
.woocommerce-message:empty { display: none !important; }

/* badges/tags do produto (Vegano, Cruelty-Free...) */
.be-badges { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 22px; padding: 0; }
.be-badge {
	font-family: var(--font-accent);
	text-transform: uppercase;
	letter-spacing: .05em;
	font-size: 11px;
	color: var(--be-green);
	border: 1px solid var(--be-green);
	border-radius: 999px;
	padding: 5px 12px;
}

/* meta (categorias / sku) */
.single-product .product_meta { margin-top: 6px; padding-top: 18px; border-top: 1px solid var(--be-line); font-size: 13px; color: var(--be-muted); }
.single-product .product_meta a { color: var(--be-ink); }

/* SIMULACAO DE FRETE no produto (plugin Melhor Envio) - REATIVADA a pedido,
   no estilo TRD: campo de CEP + opcoes de envio ABAIXO do botao de compra.
   (Antes este bloco escondia o simulador; agora ele volta, estilizado.) */
.single-product form.cart .quantity { order: 1; }
.single-product form.cart .single_add_to_cart_button { order: 2; }
.single-product form.cart .containerCalculator { order: 3; }
.single-product .containerCalculator { flex: 1 1 100%; width: 100%; margin-top: 22px; }
.single-product .containerCalculator .row { display: block; }
.single-product .containerCalculator .col-75 { width: 100%; float: none; }
.single-product .containerCalculator p {
	font-family: var(--font-accent);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .02em;
	color: var(--be-ink);
	margin: 0 0 8px;
}
.single-product .containerCalculator .iptCep {
	height: 48px;
	width: 100%;
	max-width: 300px;
	border: 1px solid #cfcfcf;
	border-radius: 4px;
	padding: 0 14px;
	font-family: var(--font-body);
	font-size: 16px;
	background: #fff;
}
.single-product .containerCalculator .iptCep:focus { outline: none; border-color: var(--be-green); }
#calcular-frete-loader img { width: 30px; height: 30px; margin-top: 10px; }
.single-product .resultado-frete table { width: 100%; border-collapse: separate; border-spacing: 0 8px; margin: 10px 0 0; }
.single-product .resultado-frete tbody tr { background: #f6f6f6; }
.single-product .resultado-frete td,
.single-product .resultado-frete th {
	padding: 12px 14px;
	border: 0;
	font-size: 14px;
	color: var(--be-ink);
	vertical-align: middle;
	text-align: left;
}
.single-product .resultado-frete td { text-align: left !important; }
.single-product .resultado-frete td:first-child { border-radius: 6px 0 0 6px; }
.single-product .resultado-frete td:last-child { border-radius: 0 6px 6px 0; }
/* caminhaozinho (SVG proprio, azul-marinho) antes de cada opcao de envio */
.single-product .resultado-frete td:first-child::before {
	content: "";
	display: inline-block;
	width: 19px;
	height: 19px;
	margin-right: 10px;
	vertical-align: -4px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23021027' stroke-width='1.6'%3E%3Crect x='1.5' y='6.5' width='12.5' height='9'/%3E%3Cpath d='M14 10h4.2l2.8 3v2.5h-7z'/%3E%3Ccircle cx='6' cy='17.7' r='1.7'/%3E%3Ccircle cx='17' cy='17.7' r='1.7'/%3E%3C/svg%3E") no-repeat center / contain;
}
.single-product .resultado-frete small { display: block; margin-top: 8px; color: var(--be-muted); font-size: 12.5px; }

/* acordeao: Descricao / Como usar / Ingredientes / Frete e entrega
   (fica DENTRO da coluna de informacoes, abaixo do botao - como na inspiracao) */
.be-accordion { margin-top: 42px; border-top: 1px solid var(--be-line); }
.be-single-summary .be-accordion__head { font-size: 17px !important; padding: 18px 2px !important; }
.be-single-summary .be-accordion__label svg { width: 18px; height: 18px; }
.be-single-summary .be-accordion__panel { padding: 0 2px 22px; font-size: 14.5px; }
.be-accordion__item { border-bottom: 1px solid var(--be-line); }
/* forca fundo transparente e cor escura (vence o snippet externo que pinta
   TODOS os <button> de azul-marinho com !important) */
.be-accordion__head {
	width: 100%;
	background: none !important;
	background-color: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 22px 4px !important;
	text-align: left;
	font-family: var(--font-serif) !important;
	font-size: 20px !important;
	font-weight: 400 !important;
	color: var(--be-ink) !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}
.be-accordion__head:hover { background: none !important; color: var(--be-green) !important; }
.be-accordion__label { display: flex; align-items: center; gap: 14px; }
.be-accordion__label svg { flex: 0 0 auto; color: var(--be-ink); }
.be-accordion__icon { position: relative; width: 14px; height: 14px; flex: 0 0 auto; }
.be-accordion__icon::before,
.be-accordion__icon::after { content: ""; position: absolute; background: var(--be-ink); transition: transform .25s ease; }
.be-accordion__icon::before { top: 6px; left: 0; width: 14px; height: 2px; }
.be-accordion__icon::after { top: 0; left: 6px; width: 2px; height: 14px; }
.be-accordion__item.is-open .be-accordion__icon::after { transform: scaleY(0); }
.be-accordion__panel { display: none; padding: 0 4px 26px; max-width: 820px; color: #444; line-height: 1.8; }
.be-accordion__item.is-open .be-accordion__panel { display: block; }
.be-accordion__panel p { margin: 0 0 14px; }

/* estrelas de avaliacao abaixo do titulo */
.single-product .woocommerce-product-rating { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; line-height: 1; }
.single-product .woocommerce-product-rating .star-rating { font-size: 15px; color: var(--be-ink); margin: 0; }
.single-product .woocommerce-product-rating .woocommerce-review-link { color: var(--be-muted); font-size: 14px; text-decoration: none; }
.single-product .woocommerce-product-rating .woocommerce-review-link:hover { color: var(--be-green); }

/* SECAO DE INGREDIENTES (estilo Neal's Yard): imagem central + circulos nas laterais */
.be-ingredients { margin: 84px 0; }
.be-ingredients__grid { display: grid; grid-template-columns: 1fr minmax(240px, 400px) 1fr; gap: 44px; align-items: center; }
.be-ingredients__center { text-align: center; }
.be-ingredients__center img { width: 100%; max-width: 400px; border-radius: 10px; }
.be-ingredients__col { display: flex; flex-direction: column; gap: 52px; }
.be-ingredient { text-align: center; }
.be-ingredient__img { width: 132px; height: 132px; margin: 0 auto 16px; border-radius: 50%; overflow: hidden; }
.be-ingredient__img img { width: 100%; height: 100%; object-fit: cover; }
.be-ingredient__img--placeholder { display: flex; align-items: center; justify-content: center; background: var(--be-cream); }
.be-ingredient__img--placeholder span { font-family: var(--font-serif); font-size: 44px; color: var(--be-green); }
/* exemplos (produto ainda sem ativos cadastrados): circulo tracejado indica "foto pendente" */
.be-ingredients--demo .be-ingredient__img--placeholder { background: #fff; border: 1px dashed var(--be-green); }
.be-ingredient__name { font-family: var(--font-accent); text-transform: uppercase; letter-spacing: .06em; font-size: 14px; font-weight: 600; color: var(--be-ink); margin: 0 0 8px; }
.be-ingredient__desc { font-family: var(--font-body); font-size: 14px; line-height: 1.7; color: var(--be-muted); margin: 0 auto; max-width: 280px; }
@media (max-width: 900px) {
	.be-ingredients__grid { grid-template-columns: 1fr; gap: 40px; }
	.be-ingredients__center { order: -1; }
	.be-ingredients__col { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 32px; }
	.be-ingredient { flex: 1 1 200px; max-width: 260px; }
	.be-ingredient__img { width: 112px; height: 112px; }
}

/* AVALIACOES de clientes */
.be-single-reviews { margin-top: 84px; border-top: 1px solid var(--be-line); padding-top: 48px; }
/* bloco de avaliacoes CENTRALIZADO na pagina (lista + formulario).
   !important porque o CSS do WooCommerce/externo zerava a margem automatica. */
.be-single-reviews #comments,
.be-single-reviews .be-reviews__list,
.be-single-reviews #review_form_wrapper,
.be-single-reviews .commentlist {
	max-width: 920px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	float: none !important;
}
.be-single-reviews #reviews h2,
.be-single-reviews #reviews h3 { font-family: var(--font-serif); font-weight: 400; color: var(--be-ink); }
.be-single-reviews #reviews > .woocommerce-Reviews-title,
.be-single-reviews #reviews #comments > h2 { font-size: clamp(24px, 3vw, 32px); text-align: center; margin-bottom: 34px; }
.be-single-reviews .commentlist { list-style: none; margin: 0 auto 34px; padding: 0; max-width: 780px; }
.be-single-reviews .commentlist li.review,
.be-single-reviews .commentlist li.comment { border-bottom: 1px solid var(--be-line); padding: 22px 0; }
.be-single-reviews .commentlist .star-rating { color: var(--be-ink); font-size: 13px; margin-bottom: 8px; }
.be-single-reviews .comment-form-rating .stars a { color: #e0a500; }
.be-single-reviews .comment-form { max-width: 780px; margin: 0 auto; }
.be-single-reviews .comment-form input[type="text"],
.be-single-reviews .comment-form input[type="email"],
.be-single-reviews .comment-form textarea { width: 100%; border: 1px solid #cfcfcf; border-radius: 4px; padding: 11px 13px; font-family: var(--font-body); }
.be-single-reviews .form-submit .submit { background: var(--be-green) !important; color: #fff !important; border: 0 !important; border-radius: 4px; padding: 13px 26px; font-family: var(--font-accent); cursor: pointer; }
.be-single-reviews .form-submit .submit:hover { background: var(--be-green-dark) !important; }

/* resumo das avaliacoes (media | barras por estrela | botao) - estilo inspiracao */
.be-reviews__heading { font-family: var(--font-serif); font-weight: 400; font-size: clamp(24px, 3vw, 32px); text-align: center; color: var(--be-ink); margin: 0 0 38px; letter-spacing: .02em; }
.be-reviews__summary { display: grid; grid-template-columns: 1fr auto 1fr; gap: 40px; align-items: center; max-width: 920px; margin: 0 auto 48px; }
.be-reviews__avg { justify-self: end; }
.be-reviews__stars { display: flex; align-items: center; gap: 10px; }
.be-reviews__stars .star-rating { font-size: 15px; color: var(--be-ink); margin: 0; }
.be-reviews__avg-num { font-family: var(--font-accent); font-size: 16px; font-weight: 600; color: var(--be-ink); }
.be-reviews__based { color: var(--be-muted); font-size: 14px; margin: 6px 0 0; }
.be-reviews__bars { display: flex; flex-direction: column; gap: 6px; border-left: 1px solid var(--be-line); border-right: 1px solid var(--be-line); padding: 4px 36px; }
.be-reviews__bar-row { display: flex; align-items: center; gap: 12px; }
.be-reviews__bar-row .star-rating { font-size: 12px; color: var(--be-ink); margin: 0; }
.be-reviews__bar-stars { flex: 0 0 auto; }
.be-reviews__bar-track { width: 150px; height: 10px; background: #ececec; overflow: hidden; }
.be-reviews__bar-fill { display: block; height: 100%; background: var(--be-ink); }
.be-reviews__bar-count { font-size: 13px; color: var(--be-muted); min-width: 24px; text-align: right; }
.be-reviews__cta { justify-self: start; }
.be-reviews__btn {
	display: inline-block;
	background: var(--be-ink) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 999px;
	padding: 15px 34px;
	font-family: var(--font-accent);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
	cursor: pointer;
	text-decoration: none;
}
.be-reviews__btn:hover { background: #000 !important; }
#review_form_wrapper { max-width: 780px; margin: 0 auto 40px; }
.be-reviews__list .commentlist { max-width: 920px; }
@media (max-width: 900px) {
	.be-reviews__summary { grid-template-columns: 1fr; justify-items: center; gap: 24px; }
	.be-reviews__avg, .be-reviews__cta { justify-self: center; text-align: center; }
	.be-reviews__bars { border: 0; padding: 0; }
}

/* relacionados / upsells */
.single-product .related.products,
.single-product .up-sells.products { margin-top: 76px; }
.single-product .related.products > h2,
.single-product .up-sells.products > h2 {
	font-family: var(--font-serif);
	font-weight: 400;
	font-size: clamp(24px, 3vw, 34px);
	text-align: center;
	margin-bottom: 38px;
}

/* responsivo da loja e do produto unico */
@media (max-width: 1024px) {
	.be-shop .be-products ul.products { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
	.be-shop-layout { grid-template-columns: 1fr; gap: 26px; }
	.be-shop-sidebar { position: static; }
	.be-filter__list { columns: 2; }
	.be-single-top { grid-template-columns: 1fr; gap: 30px; }
	.be-single-gallery { position: static; }
}
@media (max-width: 640px) {
	.be-shop .be-products ul.products { grid-template-columns: 1fr; }
	.be-filter__list { columns: 1; }
	.single-product form.cart .single_add_to_cart_button { flex-basis: 100%; }
}

/* =========================================================================
   BIBLIOTECA / BLOG (estilo Soap Opera BKK) - template-biblioteca.php
   ========================================================================= */
.be-blog { padding-block: 50px 90px; }
.be-blog-layout { display: grid; grid-template-columns: 1fr 330px; gap: 60px; align-items: start; }

/* posts em zig-zag (imagem alterna de lado) */
.be-post { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: center; margin-bottom: 72px; }
.be-post:nth-child(even) .be-post-media { order: 2; }
.be-post-media { display: block; border-radius: 12px; overflow: hidden; }
.be-post-media img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 12px; }
.be-post-media--ph { display: block; aspect-ratio: 4 / 3; background: #e7ddd2; border-radius: 12px; }

.be-post-content { text-align: center; }
.be-post-cat {
	display: inline-block;
	margin-bottom: 14px;
	background: var(--be-green);
	color: #fff;
	font-family: var(--font-accent);
	text-transform: uppercase;
	letter-spacing: .06em;
	font-size: 11px;
	padding: 6px 14px;
	border-radius: 999px;
}
.be-post-title { font-family: var(--font-serif); font-size: clamp(22px, 2.4vw, 30px); line-height: 1.2; margin: 0 0 12px; }
.be-post-title a { color: var(--be-ink); }
.be-post-title a:hover { color: var(--be-green); }
.be-post-meta { font-family: var(--font-accent); font-size: 13px; color: var(--be-muted); margin-bottom: 14px; }
.be-post-excerpt { color: var(--be-muted); line-height: 1.7; margin: 0 auto 18px; max-width: 430px; font-size: 15px; }
.be-post-more {
	display: inline-block;
	font-family: var(--font-accent);
	text-transform: uppercase;
	letter-spacing: .06em;
	font-size: 13px;
	color: var(--be-green);
	border-bottom: 1px solid var(--be-green);
	padding-bottom: 3px;
	transition: color .2s ease, border-color .2s ease;
}
.be-post-more:hover { color: var(--be-green-dark); border-color: var(--be-green-dark); }

/* paginacao do blog */
.be-blog-pagination { margin-top: 10px; }
.be-blog-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 42px; height: 42px; padding: 0 10px; margin: 0 3px;
	border: 1px solid var(--be-line); color: var(--be-ink);
	font-family: var(--font-accent); font-size: 14px;
}
.be-blog-pagination .page-numbers.current { background: var(--be-green); color: #fff; border-color: var(--be-green); }
.be-blog-pagination a.page-numbers:hover { border-color: var(--be-green); color: var(--be-green); }

/* sidebar */
.be-blog-side { position: sticky; top: 100px; }
.be-side-block { margin-bottom: 40px; padding-bottom: 32px; border-bottom: 1px solid var(--be-line); }
.be-side-block:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.be-side-title { font-family: var(--font-serif); font-size: 20px; margin: 0 0 16px; color: var(--be-ink); }
.be-side-text { color: var(--be-muted); line-height: 1.7; font-size: 15px; }
.be-side-posts { list-style: none; margin: 0; padding: 0; }
.be-side-post { display: flex; gap: 12px; align-items: center; margin-bottom: 16px; }
.be-side-post:last-child { margin-bottom: 0; }
.be-side-post__thumb { flex: 0 0 64px; }
.be-side-post__thumb img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; display: block; }
.be-side-post__title { display: block; font-family: var(--font-serif); font-size: 15px; line-height: 1.3; color: var(--be-ink); }
.be-side-post__title:hover { color: var(--be-green); }
.be-side-post__date,
.be-side-post__price { display: block; margin-top: 4px; font-size: 12px; color: var(--be-muted); }

/* responsivo do blog */
@media (max-width: 900px) {
	.be-blog-layout { grid-template-columns: 1fr; gap: 40px; }
	.be-blog-side { position: static; }
	.be-post { gap: 28px; }
}
@media (max-width: 640px) {
	.be-post { grid-template-columns: 1fr; }
	.be-post:nth-child(even) .be-post-media { order: 0; }
}

/* =========================================================================
   CONTA / LOGIN (estilo TRD by Gabi) - woocommerce/myaccount/*
   ========================================================================= */
/* .be-container.be-account = wrapper da PAGINA de conta.
   (Nao confundir com o .be-account do dropdown no cabecalho, que e so
   .be-account, sem .be-container -> por isso escopamos com as duas classes.) */
.be-container.be-account { padding-block: 30px 90px; }
.be-container.be-account .be-breadcrumb { margin-bottom: 8px; }
.be-account-title { font-family: var(--font-serif); font-weight: 400; font-size: clamp(32px, 4vw, 54px); color: var(--be-ink); margin: 0 0 30px; }
.be-account--lost .be-account-title { margin-bottom: 14px; }
.be-account-intro { color: var(--be-muted); line-height: 1.6; font-size: 15px; margin: 0 0 26px; max-width: 560px; }

/* formularios (login/cadastro/edicao) */
.be-account-forms { max-width: 560px; }
.be-field { margin-bottom: 20px; }
.be-field label { display: block; margin-bottom: 8px; font-family: var(--font-body); font-size: 14px; color: var(--be-ink); }
.be-input {
	width: 100%;
	height: 54px;
	padding: 0 16px;
	border: 1px solid #cfcfcf;
	border-radius: 4px;
	background: #fff;
	font-family: var(--font-body);
	font-size: 15px;
	color: var(--be-ink);
	box-sizing: border-box;
}
.be-input:focus { outline: none; border-color: var(--be-green); }

.be-pass-wrap { position: relative; display: block; }
.be-pass-wrap .be-input { padding-right: 48px; }
.be-pass-toggle {
	position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
	width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center;
	padding: 0; cursor: pointer;
	background: none !important;   /* remove o circulo navy que o snippet pinta nos <button> */
	border: 0 !important;
	box-shadow: none !important;
	color: var(--be-muted) !important;  /* olhinho cinza, visivel no campo branco */
}
.be-pass-toggle svg { display: block; }
.be-pass-toggle:hover, .be-pass-toggle.is-on { color: var(--be-ink) !important; }

.be-account-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 4px 0 22px; flex-wrap: wrap; }
.be-remember { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--be-ink); cursor: pointer; }
.be-remember input { width: 16px; height: 16px; accent-color: var(--be-green); }
.be-account-link { font-size: 14px; color: var(--be-green); border-bottom: 1px solid transparent; }
.be-account-link:hover { border-color: var(--be-green); }

.be-btn--full { display: block; width: 100%; text-align: center; height: 56px; border-radius: 6px; border: 1px solid var(--be-green); cursor: pointer; }

.be-account-switch { margin-top: 20px; font-size: 14px; color: var(--be-muted); }
.be-account-switch a { color: var(--be-green); border-bottom: 1px solid var(--be-green); }

/* dashboard (Minha conta) */
.be-account-grid { display: grid; grid-template-columns: 220px 1fr; gap: 44px; align-items: start; }

/* MENU da conta blindado: mira TANTO a classe do tema (.be-account-nav) QUANTO a
   padrao do WooCommerce (.woocommerce-MyAccount-navigation) -> funciona mesmo se o
   template/snippet renderizar o menu padrao (retangulo azul desalinhado do Elementor). */
.be-account-nav ul,
.woocommerce-MyAccount-navigation ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.be-account-nav li,
.woocommerce-MyAccount-navigation li { margin: 0 0 4px !important; padding: 0 !important; border: 0 !important; list-style: none !important; background: none !important; }
.be-account-nav li::before, .be-account-nav li::marker,
.woocommerce-MyAccount-navigation li::before, .woocommerce-MyAccount-navigation li::marker { content: none !important; display: none !important; }
.be-account-nav li a,
.woocommerce-MyAccount-navigation li a {
	display: block !important;
	width: 100% !important;
	box-sizing: border-box !important;
	padding: 12px 16px !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 8px !important;
	background: none !important;
	box-shadow: none !important;
	text-align: left !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	line-height: 1.3 !important;
	white-space: nowrap !important;
	font-family: var(--font-accent) !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	color: var(--be-ink) !important;
	text-decoration: none !important;
	transition: color .2s ease;
}
/* coluna larga o suficiente pra "Detalhes da conta" caber numa linha so */
.be-account-nav, .woocommerce-MyAccount-navigation { min-width: 190px !important; }
/* idle e hover: SEM caixa (so texto); no hover apenas muda a cor pra verde.
   assim so a aba ATIVA tem preenchimento -> nada de retangulos soltos. */
.be-account-nav li a,
.woocommerce-MyAccount-navigation li a { background: transparent !important; }
.be-account-nav li a:hover,
.woocommerce-MyAccount-navigation li a:hover { background: transparent !important; color: var(--be-green) !important; }
.be-account-nav li.is-active a,
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation-link.is-active a { background: var(--be-green) !important; color: #fff !important; }
/* ITEM 8 (rede de seguranca): esconde "Downloads" mesmo se o menu vier do padrao/snippet */
.be-account-nav li.woocommerce-MyAccount-navigation-link--downloads,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--downloads { display: none !important; }

.be-dashboard-subtitle { font-family: var(--font-serif); font-weight: 400; font-size: 24px; margin: 0; }

/* CORRECAO CRITICA: o WooCommerce poe float:right + width:68.5% no conteudo
   da conta (assumindo um menu lateral a esquerda). Isso jogava o painel pro
   meio/direita e espremia os pedidos em 1 coluna. Forcamos largura total ->
   o nosso proprio grid cuida do layout. */
.woocommerce-account .woocommerce-MyAccount-content,
.be-account-content { width: 100% !important; float: none !important; }

/* PAINEL estilo TRD: dados + enderecos (esquerda) | pedidos (direita) */
.be-dashboard--trd { display: grid; grid-template-columns: 300px 1fr; gap: 54px; align-items: start; }
.be-dash-side { }
.be-dash-block { margin-bottom: 30px; }
.be-dash-block__head { display: flex; align-items: baseline; gap: 14px; margin-bottom: 10px; }
.be-dash-block__head .be-dashboard-subtitle { font-size: 22px; }
.be-dash-lines { color: var(--be-ink); line-height: 1.9; margin: 0; font-size: 15px; }
.be-dash-address { font-style: normal; color: var(--be-ink); line-height: 1.9; margin: 0; font-size: 15px; }
.be-dash-logout { display: inline-block; margin-top: 6px; }
.be-dash-main .be-dashboard-subtitle { margin-bottom: 4px; }

/* ENDERECOS (aba Enderecos) - estilo TRD, alinhado a esquerda, SEM caixas */
.be-address-intro { color: var(--be-muted); font-size: 15px; margin: 0 0 26px; }
.be-addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 40px 30px; max-width: 620px; align-items: start; }
.be-address { margin: 0; }
.be-address__head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 10px; flex-wrap: wrap; }
.be-address__title { font-family: var(--font-serif); font-weight: 400; font-size: 20px; margin: 0; white-space: nowrap; }
.be-address__body {
	font-style: normal !important;
	color: var(--be-ink) !important;
	line-height: 1.9 !important;
	font-size: 15px !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	background: none !important;
}
/* rede de seguranca: se o template padrao aparecer, tira as caixas e o float torto */
.woocommerce-Addresses { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 40px 30px !important; max-width: 620px !important; float: none !important; }
.woocommerce-Address { width: auto !important; float: none !important; }
.woocommerce-Address address { border: 0 !important; padding: 0 !important; background: none !important; }
@media (max-width: 720px) {
	.be-addresses, .woocommerce-Addresses { grid-template-columns: 1fr !important; }
}

/* grade de pedidos */
.be-orders-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 18px; margin-top: 18px; }
.be-order-card {
	border: 1px solid var(--be-line);
	border-radius: 12px;
	padding: 18px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	background: #fff;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.be-order-card:hover { border-color: var(--be-green); box-shadow: 0 8px 22px rgba(2,16,39,.08); }
.be-order-card__head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.be-order-card__num { font-family: var(--font-accent); font-weight: 600; font-size: 15px; color: var(--be-ink); }
.be-order-card__date { color: var(--be-muted); font-size: 13px; white-space: nowrap; }
.be-order-card__thumbs { display: flex; gap: 8px; align-items: center; }
.be-order-card__thumb img { width: 50px; height: 50px; object-fit: cover; border-radius: 8px; display: block; }
.be-order-card__more { display: inline-flex; align-items: center; justify-content: center; width: 50px; height: 50px; border-radius: 8px; background: var(--be-cream); color: var(--be-muted); font-size: 13px; }
.be-order-card__meta { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.be-order-card__status { font-family: var(--font-accent); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--be-green); background: #eef3ee; padding: 4px 10px; border-radius: 999px; }
.be-order-status--completed { color: #2c6b3a; background: #eaf5ec; }
.be-order-status--processing, .be-order-status--on-hold, .be-order-status--pending { color: #8a6d1a; background: #fbf3e0; }
.be-order-status--cancelled, .be-order-status--refunded, .be-order-status--failed { color: #a1231f; background: #fdecec; }
.be-order-card__total { font-family: var(--font-accent); font-weight: 600; color: var(--be-ink); }
.be-order-card__btn {
	display: block; text-align: center; margin-top: 2px;
	background: var(--be-green); color: #fff !important; text-decoration: none;
	padding: 11px 16px; border-radius: 6px;
	font-family: var(--font-accent); text-transform: uppercase; letter-spacing: .04em; font-size: 12.5px;
	transition: background-color .2s ease;
}
.be-order-card__btn:hover { background: var(--be-green-dark); }
.be-dashboard-orders__all { margin-top: 22px; }
.be-dashboard-empty { text-align: center; padding: 30px 20px; }
.be-dashboard-empty .be-dashboard-cta__icon { display: inline-flex; color: var(--be-ink); margin-bottom: 10px; }
.be-dashboard-empty .be-dashboard-cta__icon svg { width: 34px; height: 34px; }
.be-dashboard-empty p { color: var(--be-muted); margin: 0 0 18px; }

/* ITEM 10 — detalhe do pedido (view-order), estilo TRD, sem caixas */
.be-order-detail { max-width: 720px; }
.be-order-info { list-style: none; margin: 0 0 26px; padding: 0; }
.be-order-info li { display: flex; gap: 10px; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid var(--be-line); font-size: 15px; color: var(--be-ink); }
.be-order-info li:last-child { border-bottom: 0; }
.be-oi-ic { flex: 0 0 auto; margin-top: 2px; color: var(--be-muted); }
.be-order-info strong { font-weight: 600; }
.be-order-info__addr { color: var(--be-muted); line-height: 1.7; font-size: 14px; }
.be-order-items { margin: 4px 0 20px; }
.be-order-item { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--be-line); }
.be-order-item img { width: 56px; height: 56px; object-fit: cover; border-radius: 8px; display: block; flex: 0 0 auto; }
.be-order-item__name { flex: 1; font-size: 15px; color: var(--be-ink); }
.be-order-item__qty { color: var(--be-muted); }
.be-order-item__price { font-family: var(--font-accent); font-weight: 600; white-space: nowrap; color: var(--be-ink); }
.be-order-totals { margin-top: 18px; max-width: 380px; margin-left: auto; }
.be-order-totals__row { display: flex; justify-content: space-between; gap: 20px; padding: 8px 0; font-size: 15px; color: var(--be-ink); }
.be-order-totals__label { color: var(--be-muted); }
.be-order-totals__row--total { border-top: 1px solid var(--be-line); font-weight: 700; font-size: 17px; padding-top: 14px; margin-top: 6px; }
.be-order-totals__row--total .be-order-totals__label { color: var(--be-ink); }

/* compat: telas antigas que ainda usem o CTA */
.be-dashboard-cta { text-align: center; padding: 30px 20px; }
.be-dashboard-cta__icon { display: inline-flex; color: var(--be-ink); margin-bottom: 10px; }
.be-dashboard-cta__icon svg { width: 34px; height: 34px; }
.be-dashboard-cta p { color: var(--be-muted); margin: 0 0 18px; }

/* meu cadastro (editar) */
.be-account--edit .be-form { max-width: 560px; }
.be-account-pass-link { margin: 4px 0 20px; }
.be-account-pass-link a { color: var(--be-green); border-bottom: 1px solid var(--be-green); font-size: 14px; }
.be-pass-section { border: 0; margin: 0 0 10px; padding: 0; }
.be-pass-section[hidden] { display: none; }

/* =========================================================================
   CONTEUDO DA CONTA (Enderecos, Detalhes, Pedidos) - some do visual "cru"
   ========================================================================= */
.be-account-content > p { color: var(--be-muted); line-height: 1.7; margin: 0 0 22px; }

/* ENDERECOS em cards lado a lado */
.be-account-content .woocommerce-Addresses,
.be-account-content .u-columns.addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; margin-top: 6px; }
.be-account-content .woocommerce-Address { }
.be-account-content .woocommerce-Address-title { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0 0 12px; }
.be-account-content .woocommerce-Address-title h2,
.be-account-content .woocommerce-Address-title h3 { font-family: var(--font-serif); font-weight: 400; font-size: 20px; margin: 0; color: var(--be-ink); }
.be-account-content .woocommerce-Address-title a { font-family: var(--font-accent); font-size: 14px; color: var(--be-green); white-space: nowrap; border-bottom: 1px solid transparent; }
.be-account-content .woocommerce-Address-title a:hover { border-color: var(--be-green); }
.be-account-content address { font-style: normal; line-height: 1.85; color: var(--be-ink); border: 1px solid var(--be-line); border-radius: 10px; padding: 16px 18px; margin: 0; }

/* FORMULARIOS da conta (editar endereco / detalhes) no padrao do site */
.be-account-content .woocommerce-address-fields,
.be-account-content .woocommerce-EditAccountForm { max-width: 640px; }
.be-account-content .form-row { margin: 0 0 18px; }
.be-account-content .form-row.form-row-first { width: 48%; float: left; }
.be-account-content .form-row.form-row-last { width: 48%; float: right; }
.be-account-content .form-row-wide, .be-account-content fieldset { clear: both; }
.be-account-content .woocommerce-address-fields::after,
.be-account-content .woocommerce-EditAccountForm::after { content: ""; display: block; clear: both; }
.be-account-content label { display: block; margin-bottom: 8px; font-family: var(--font-body); font-size: 14px; color: var(--be-ink); }
.be-account-content .input-text,
.be-account-content input[type="text"],
.be-account-content input[type="email"],
.be-account-content input[type="tel"],
.be-account-content input[type="password"],
.be-account-content select,
.be-account-content textarea {
	width: 100%; height: 52px; padding: 0 14px;
	border: 1px solid #cfcfcf; border-radius: 4px; background: #fff;
	font-family: var(--font-body); font-size: 15px; color: var(--be-ink); box-sizing: border-box;
}
.be-account-content textarea { height: auto; min-height: 90px; padding: 12px 14px; }
.be-account-content .input-text:focus, .be-account-content select:focus, .be-account-content textarea:focus { outline: none; border-color: var(--be-green); }
.be-account-content fieldset { border: 1px solid var(--be-line); border-radius: 10px; padding: 18px 20px; margin: 22px 0; }
.be-account-content fieldset legend { font-family: var(--font-serif); font-size: 18px; padding: 0 8px; }
.be-account-content button[type="submit"],
.be-account-content .woocommerce-Button,
.be-account-content .button {
	background: var(--be-green) !important; color: #fff !important; border: 0 !important;
	border-radius: 6px; padding: 13px 26px; font-family: var(--font-accent);
	text-transform: uppercase; letter-spacing: .04em; font-size: 13px; cursor: pointer;
}
.be-account-content button[type="submit"]:hover, .be-account-content .button:hover { background: var(--be-green-dark) !important; }

/* pais fixo "Brasil" nos formularios da conta: caixa full-width */
.be-account-content #billing_country_field .woocommerce-input-wrapper strong,
.be-account-content #shipping_country_field .woocommerce-input-wrapper strong {
	display: flex; align-items: center; width: 100%; min-height: 52px;
	border: 1px solid #cfcfcf; border-radius: 4px; padding: 0 14px; font-weight: 400; background: #fff;
}

/* TABELA de pedidos (aba Pedidos), caso o snippet nao atue */
.be-account-content table.woocommerce-orders-table { width: 100%; border-collapse: separate; border-spacing: 0 10px; }
.be-account-content .woocommerce-orders-table th { font-family: var(--font-accent); text-transform: uppercase; letter-spacing: .04em; font-size: 12px; color: var(--be-muted); padding: 8px 14px; text-align: left; }
.be-account-content .woocommerce-orders-table td { background: #fff; border: 1px solid var(--be-line); padding: 14px; vertical-align: middle; }
.be-account-content .woocommerce-orders-table td:first-child { border-radius: 8px 0 0 8px; border-right: 0; }
.be-account-content .woocommerce-orders-table td:last-child { border-radius: 0 8px 8px 0; border-left: 0; }
.be-account-content .woocommerce-orders-table .woocommerce-button { padding: 9px 16px; font-size: 12px; }

@media (max-width: 640px) {
	.be-account-content .woocommerce-Addresses,
	.be-account-content .u-columns.addresses { grid-template-columns: 1fr; }
	.be-account-content .form-row.form-row-first,
	.be-account-content .form-row.form-row-last { width: 100%; float: none; }
}

/* avisos do WooCommerce na area da conta */
.woocommerce-account .woocommerce-notices-wrapper { max-width: 1180px; margin: 0 auto; padding: 20px var(--be-pad) 0; }
.woocommerce-account .woocommerce-error,
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info {
	list-style: none; margin: 0 0 6px; padding: 14px 18px; border-radius: 6px; font-size: 14px;
}
.woocommerce-account .woocommerce-error { background: #fdecec; color: #a1231f; }
.woocommerce-account .woocommerce-message { background: #eaf5ec; color: #2c6b3a; }
.woocommerce-account .woocommerce-info { background: var(--be-cream); color: var(--be-ink); }
/* icone ::before do WooCommerce ficava POR CIMA do texto do aviso -> removemos,
   e matamos o anel rosa (outline/box-shadow de estilo externo) */
.woocommerce-account .woocommerce-message::before,
.woocommerce-account .woocommerce-error::before,
.woocommerce-account .woocommerce-info::before { display: none !important; content: none !important; }
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-error,
.woocommerce-account .woocommerce-info { border: 0 !important; outline: none !important; box-shadow: none !important; }

/* =========================================================================
   LOGIN / SENHA CENTRALIZADOS (estilo TRD): titulo, card e links ao centro
   ========================================================================= */
.be-account--login .be-account-forms,
.be-account--lost .be-account-forms { margin-inline: auto; }
.be-account--login .be-breadcrumb,
.be-account--lost .be-breadcrumb,
.be-account--login .be-account-title,
.be-account--lost .be-account-title,
.be-account--login .be-account-intro,
.be-account--lost .be-account-intro,
.be-account--login .be-account-switch,
.be-account--lost .be-account-switch { text-align: center; }
.be-account--lost .be-account-intro { margin-inline: auto; }
.be-account--login .be-account-title,
.be-account--lost .be-account-title { font-size: clamp(28px, 3.4vw, 38px); }

/* o CARD e nosso (.be-account-box): borda suave, tudo DENTRO dele */
.be-account-box { background: #fff; border: 1px solid var(--be-line); border-radius: 12px; padding: 30px 28px 26px; }
/* o WooCommerce/estilos externos pintavam o <form> como uma segunda caixa com
   altura fixa -> o botao "vazava" para fora. Anulamos a caixa do form. */
.be-account-box form.login,
.be-account-box form.register,
.be-container.be-account form.be-form {
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	height: auto !important;
	max-height: none !important;
	min-height: 0 !important;
	overflow: visible !important;
	background: transparent !important;
	box-shadow: none !important;
	border-radius: 0 !important;
}

/* botao das paginas de conta SEMPRE verde (vence .woocommerce button.button) */
.woocommerce .be-container.be-account button.button,
.woocommerce-page .be-container.be-account button.button,
.be-container.be-account .be-btn {
	background: var(--be-green) !important;
	border-color: var(--be-green) !important;
	color: #fff !important;
}
.woocommerce .be-container.be-account button.button:hover,
.be-container.be-account .be-btn:hover {
	background: var(--be-green-dark) !important;
	border-color: var(--be-green-dark) !important;
}

@media (max-width: 900px) {
	.be-account-grid { grid-template-columns: 1fr; gap: 24px; }
	.be-dashboard--trd { grid-template-columns: 1fr; gap: 30px; }
	.be-orders-grid { grid-template-columns: 1fr; }
}

/* =========================================================================
   CARRINHO (pagina /carrinho/)
   ========================================================================= */
.woocommerce-cart .be-page-content { max-width: 1180px; margin: 0 auto; padding: 40px var(--be-pad) 80px; }

/* NOVO carrinho estilo Aesop: coluna larga (produtos em cards) + resumo */
.woocommerce-cart .woocommerce { display: block; }
.be-cart { display: grid; grid-template-columns: 1fr 370px; gap: 44px; align-items: start; }
.be-cart-main { min-width: 0; }
.be-cart .woocommerce-cart-form { margin: 0; }

/* itens como cards */
.be-cart-items { border-top: 1px solid var(--be-line); }
.be-cart-item { display: flex; gap: 20px; align-items: flex-start; padding: 22px 0; border-bottom: 1px solid var(--be-line); }
.be-cart-item__media { flex: 0 0 96px; }
.be-cart-item__media img { width: 96px; height: 96px; object-fit: cover; border-radius: 8px; display: block; }
.be-cart-item__info { flex: 1; min-width: 0; }
.be-cart-item__name { font-family: var(--font-serif); font-size: 17px; line-height: 1.3; color: var(--be-ink); margin-bottom: 12px; }
.be-cart-item__name a { color: var(--be-ink); text-decoration: none; }
.be-cart-item__name a:hover { color: var(--be-green); }
.be-cart-item__name dl.variation { font-family: var(--font-body); font-size: 13px; color: var(--be-muted); margin: 6px 0 0; }
.be-cart-item__row { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.be-cart-item__qty .quantity input.qty { height: 42px; width: 70px; border: 1px solid #cfcfcf; border-radius: 4px; text-align: center; }
.be-cart-item__price { font-family: var(--font-accent); font-weight: 600; font-size: 16px; color: var(--be-ink); }
.be-cart-item__remove { margin-left: auto; }
.be-cart-item__remove a.remove { color: var(--be-muted) !important; font-size: 22px; line-height: 1; }
.be-cart-item__remove a.remove:hover { color: #a1231f !important; background: none !important; }

/* acoes: cupom + atualizar */
.be-cart-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; padding-top: 22px; }
.be-cart-coupon { display: flex; gap: 8px; }
.be-cart-coupon .be-input { height: 46px; width: 200px; }
.be-cart-coupon__btn { height: 46px; background: var(--be-ink) !important; color: #fff !important; border: 0 !important; border-radius: 4px; padding: 0 18px; }
.be-cart-update { background: transparent !important; color: var(--be-ink) !important; border: 1px solid #cfcfcf !important; border-radius: 4px; padding: 12px 22px; font-family: var(--font-accent); text-transform: uppercase; letter-spacing: .04em; font-size: 13px; }
.be-cart-update:hover { border-color: var(--be-ink) !important; }

/* cross-sell (voce tambem pode gostar) */
.be-cart-crosssell { margin-top: 44px; }
.be-cart-crosssell .cross-sells > h2 { font-family: var(--font-serif); font-weight: 400; font-size: 24px; margin: 0 0 24px; }
.be-cart-crosssell ul.products { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; list-style: none; margin: 0; padding: 0; }
.be-cart-crosssell ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; text-align: center; }
.be-cart-crosssell ul.products li.product img { border-radius: 8px; margin-bottom: 10px; }

/* resumo (lado direito) */
.be-cart-side { position: sticky; top: 100px; }

@media (max-width: 900px) {
	.be-cart { grid-template-columns: 1fr; gap: 30px; }
	.be-cart-side { position: static; }
	.be-cart-crosssell ul.products { grid-template-columns: repeat(2, 1fr); }
}

/* tabela do carrinho */
.woocommerce-cart table.cart { border: 1px solid var(--be-line); border-radius: 10px; width: 100%; overflow: hidden; }
.woocommerce-cart table.cart thead th { font-family: var(--font-accent); text-transform: uppercase; letter-spacing: .04em; font-size: 13px; color: var(--be-muted); padding: 16px; border: 0; background: var(--be-cream); text-align: left; }
.woocommerce-cart table.cart td { padding: 16px; border-top: 1px solid var(--be-line); vertical-align: middle; }
.woocommerce-cart table.cart img { width: 64px; height: auto; border-radius: 8px; }
.woocommerce-cart td.product-name a { color: var(--be-ink); font-family: var(--font-serif); text-decoration: none; }
.woocommerce-cart td.product-name a:hover { color: var(--be-green); }
.woocommerce-cart td.product-price, .woocommerce-cart td.product-subtotal { color: var(--be-ink); }
.woocommerce-cart .product-remove a.remove { color: var(--be-muted) !important; font-size: 20px; }
.woocommerce-cart .product-remove a.remove:hover { color: #a1231f !important; background: none !important; }
.woocommerce-cart .quantity input.qty { height: 44px; width: 72px; border: 1px solid #cfcfcf; border-radius: 4px; text-align: center; }

/* botao atualizar (ghost) + cupom */
.woocommerce-cart .actions button[name="update_cart"] {
	background: transparent !important; color: var(--be-ink) !important;
	border: 1px solid #cfcfcf !important; border-radius: 4px; padding: 12px 22px;
	font-family: var(--font-accent); text-transform: uppercase; letter-spacing: .04em; font-size: 13px;
}
.woocommerce-cart .actions button[name="update_cart"]:hover { border-color: var(--be-ink) !important; }
.woocommerce-cart .coupon input#coupon_code { height: 44px; padding: 0 14px; border: 1px solid #cfcfcf; border-radius: 4px; }
.woocommerce-cart .coupon button { height: 44px; background: var(--be-ink) !important; color: #fff !important; border: 0 !important; border-radius: 4px; padding: 0 20px; }

/* caixa de totais */
.be-cart-totals, .woocommerce-cart .cart_totals { background: #fff; border: 1px solid var(--be-line); border-radius: 10px; padding: 26px; }
.be-cart-totals__title { font-family: var(--font-serif); font-weight: 400; font-size: 22px; margin: 0 0 16px; }
.be-cart-totals table.shop_table { border: 0; margin: 0; }
.be-cart-totals table th { text-align: left; padding: 10px 0; font-weight: 400; color: var(--be-ink); border: 0; }
.be-cart-totals table td { text-align: right; padding: 10px 0; border: 0; }
.be-cart-totals .order-total th, .be-cart-totals .order-total td { font-weight: 700; font-size: 18px; border-top: 1px solid var(--be-line); padding-top: 14px; }

/* botao FINALIZAR COMPRA (verde da marca, largura total) */
.woocommerce .wc-proceed-to-checkout { padding: 18px 0 0; }
.woocommerce a.checkout-button,
.woocommerce a.checkout-button.button.alt {
	display: block; width: 100%; text-align: center;
	background: var(--be-green) !important; color: #fff !important;
	border: 0 !important; border-radius: 6px; height: 56px; line-height: 56px; padding: 0;
	font-family: var(--font-accent); text-transform: uppercase; letter-spacing: .05em; font-size: 14px;
}
.woocommerce a.checkout-button:hover { background: var(--be-green-dark) !important; }

/* botoes do CHECKOUT (Fluid Checkout) no verde da marca - TODOS padronizados.
   Classes conferidas no HTML real do checkout: fc-step__substep-save ("Salvar
   alteracoes"), fc-step__next-step, fc-place-order-button, fc-coupon-code__apply,
   fc-login-button. Cinza confundia (parecia desabilitado). */
.woocommerce #place_order,
.woocommerce-checkout #place_order,
.woocommerce-checkout button[type="submit"],
.woocommerce-checkout .button.alt,
.woocommerce-checkout .fc-step__substep-save,
.woocommerce-checkout .fc-step__next-step,
.woocommerce-checkout .fc-place-order-button,
.woocommerce-checkout .fc-coupon-code__apply,
.woocommerce-checkout .fc-login-button,
.woocommerce-checkout [class*="substep-button"],
.woocommerce-checkout [class*="next-step-button"] {
	background: var(--be-green) !important;
	border-color: var(--be-green) !important;
	color: #fff !important;
	border-radius: 6px;
	font-family: var(--font-accent);
	letter-spacing: .03em;
}
.woocommerce #place_order:hover,
.woocommerce-checkout #place_order:hover,
.woocommerce-checkout button[type="submit"]:hover,
.woocommerce-checkout .button.alt:hover,
.woocommerce-checkout .fc-step__substep-save:hover,
.woocommerce-checkout .fc-step__next-step:hover,
.woocommerce-checkout .fc-place-order-button:hover,
.woocommerce-checkout .fc-coupon-code__apply:hover,
.woocommerce-checkout .fc-login-button:hover {
	background: var(--be-green-dark) !important;
	border-color: var(--be-green-dark) !important;
}

/* "Ja tem uma conta? Faca login" vira BOTAO verde (nao mais link cinza sublinhado) */
.woocommerce-checkout .fc-contact-login__action,
.woocommerce-checkout .fc-contact-login__action--underline {
	display: inline-block;
	background: var(--be-green) !important;
	color: #fff !important;
	padding: 9px 18px;
	border-radius: 6px;
	border: 0 !important;
	border-bottom: 0 !important;
	text-decoration: none !important;
	font-family: var(--font-accent);
	font-weight: 500;
	margin-left: 6px;
}
.woocommerce-checkout .fc-contact-login__action:hover { background: var(--be-green-dark) !important; color: #fff !important; }

/* campos do checkout (bordas/altura limpas) */
.woocommerce-checkout .input-text,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="number"],
.woocommerce-checkout select,
.woocommerce-checkout textarea {
	min-height: 50px;
	border: 1px solid #cfcfcf !important;
	border-radius: 4px !important;
	padding: 0 14px;
	font-family: var(--font-body);
	font-size: 15px;
	box-shadow: none;
}
.woocommerce-checkout textarea { padding: 12px 14px; min-height: 90px; }
.woocommerce-checkout .input-text:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout textarea:focus { border-color: var(--be-green) !important; outline: none; }

/* Campo PAIS (fixo "Brasil"): vira uma caixa FULL-WIDTH igual aos outros
   campos, em vez de um retangulo pequeno colado ao texto. */
.woocommerce-checkout #billing_country_field,
.woocommerce-checkout #shipping_country_field { width: 100% !important; }
.woocommerce-checkout #billing_country_field .woocommerce-input-wrapper,
.woocommerce-checkout #shipping_country_field .woocommerce-input-wrapper { display: block; width: 100%; }
.woocommerce-checkout #billing_country_field .woocommerce-input-wrapper strong,
.woocommerce-checkout #shipping_country_field .woocommerce-input-wrapper strong {
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 50px;
	border: 1px solid #cfcfcf;
	border-radius: 4px;
	padding: 0 14px;
	font-weight: 400;
	color: var(--be-ink);
	background: #fff;
}

@media (max-width: 640px) {
	.woocommerce-cart .quantity input.qty { width: 60px; }
}

/* =========================================================================
   RESPONSIVO
   ========================================================================= */
@media (max-width: 1024px) {
	:root { --be-pad: 24px; }
	.be-products ul.products,
	.be-shop ul.products,
	.be-cats { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 900px) {
	/* MOBILE: hamburguer (esq) | LOGO (centro) | carrinho (dir) */
	.be-nav-toggle { display: flex; }

	/* so o carrinho fica no topo; busca/favoritos/conta vao pra DENTRO do menu */
	.be-header-icons .be-icon[data-search-toggle],
	.be-header-icons > a.be-icon,
	.be-header-icons .be-account { display: none !important; }
	.be-header-icons { justify-self: end; }

	.be-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: #fff;
		border-top: 1px solid var(--be-line);
		border-bottom: 1px solid var(--be-line);
		box-shadow: 0 18px 30px rgba(2,16,39,.10);
		display: none;
		max-width: none;
		margin: 0;
		padding: 0;
		max-height: calc(100vh - 100px);
		overflow-y: auto;
	}
	.be-nav.is-open { display: block; }
	.be-menu { flex-direction: column; align-items: stretch; gap: 0; padding: 0; }
	.be-menu a { display: block; padding: 16px var(--be-pad); border-bottom: 1px solid var(--be-line); font-size: 16px; }

	/* busca no topo do menu (estilo Soap Opera) */
	/* ITEM 4 - busca so com a LUPA (sem botao "Pesquisar"), estilo Soap Opera */
	.be-nav-search { display: block; padding: 14px var(--be-pad); border-bottom: 1px solid var(--be-line); background: var(--be-cream); }
	.be-nav-search form { position: relative; display: block; }
	.be-nav-search input[type="search"], .be-nav-search input[type="text"] { width: 100%; height: 48px; padding: 0 46px 0 14px; border: 1px solid #d8cbbd; border-radius: 0; background: #fff; font-size: 16px; box-sizing: border-box; }
	.be-nav-search button[type="submit"] {
		position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
		width: 40px; height: 40px; padding: 0 !important; margin: 0 !important;
		background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important;
		font-size: 0 !important; color: transparent !important; cursor: pointer;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23021027' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='10.8' cy='10.8' r='8'/%3E%3Cline x1='22' y1='22' x2='16.6' y2='16.6'/%3E%3C/svg%3E") !important;
		background-repeat: no-repeat !important; background-position: center !important; background-size: 20px !important;
	}

	/* conta/login + favoritos dentro do menu (estilo TRD) */
	.be-nav-account { display: block; list-style: none; margin: 0; padding: 0; }
	.be-nav-account a { display: flex; align-items: center; gap: 12px; padding: 16px var(--be-pad); border-bottom: 1px solid var(--be-line); font-family: var(--font-accent); font-size: 15px; color: var(--be-ink); }
	.be-nav-account svg { width: 20px; height: 20px; }

	.be-feature { padding-block: 36px; }
	.be-feature-grid { grid-template-columns: 1fr; gap: 32px; }
	.be-feature--reverse .be-feature-media { order: 0; }   /* no celular a imagem fica sempre em cima */
	.be-feature-body { max-width: none; }

	.be-footer-cols { grid-template-columns: 1fr 1fr; }
	.be-hero-inner { padding-block: 84px; }
	.be-section { padding-block: 64px; }
}

@media (max-width: 640px) {
	.be-products ul.products,
	.be-shop ul.products,
	.be-cats { grid-template-columns: repeat(2, 1fr); gap: 20px 16px; }

	.be-header-inner { padding-top: 10px; }
	.be-icon { width: 42px; height: 42px; }
	.be-icon svg { width: 25px !important; height: 25px !important; min-width: 25px !important; min-height: 25px !important; }
	.be-header-icons { gap: 0; }
	.be-logo img { max-height: 58px; }
	.be-logo-text { font-size: 20px; }

	.be-section-head--row { flex-direction: column; gap: 8px; }
	.be-footer-cols { grid-template-columns: 1fr; }
	/* newsletter no mobile: campo e botao com a MESMA largura e altura, empilhados */
	.be-news-form { flex-direction: column; align-items: stretch; gap: 12px; }
	.be-news-form input { max-width: 100%; width: 100%; height: 52px; }
	.be-news-form .be-btn { width: 100%; height: 52px; display: flex; align-items: center; justify-content: center; padding: 0; }
}

/* =========================================================================
   POLIMENTO MOBILE/TABLET (revisao completa de responsividade)
   ========================================================================= */

/* iOS: evita que o navegador aumente o texto sozinho ao girar a tela */
html { -webkit-text-size-adjust: 100%; }

/* barra da loja (total + ordenacao) pode quebrar linha no celular */
.be-shop-toolbar { flex-wrap: wrap; }

/* imagens de pagamento/SSL do rodape NUNCA estouram a largura da tela */
@media (max-width: 520px) {
	.be-footer .be-footer-pay { gap: 14px; }
	.be-footer .be-footer-pay .be-payments-img { height: auto !important; width: auto !important; max-width: 260px !important; }
}

@media (max-width: 640px) {
	/* respiros verticais mais compactos no celular */
	.be-section { padding-block: 48px; }
	.be-news-grid { padding-block: 44px; }
	.be-ingredients { margin: 56px 0; }
	.be-single-reviews { margin-top: 56px; padding-top: 36px; }
	.single-product .related.products,
	.single-product .up-sells.products { margin-top: 56px; }
	.be-page-title { font-size: clamp(28px, 7vw, 40px); }

	/* cards da grade (2 colunas): tipografia proporcional a coluna estreita */
	.be-products li.product .woocommerce-loop-product__title,
	.be-shop li.product .woocommerce-loop-product__title { font-size: 15px; min-height: 2.6em; }
	.be-products li.product .price,
	.be-shop li.product .price { font-size: 18px; }
	.be-products li.product .be-pix-note { font-size: 12.5px; }
	.be-products a.button,
	.be-products a.add_to_cart_button,
	.be-shop a.button,
	.be-shop a.add_to_cart_button { font-size: 11px; letter-spacing: .03em; padding: 11px 8px; }

	/* iOS: campo com fonte menor que 16px da ZOOM automatico ao focar - evitamos */
	.be-input,
	.be-search-panel input[type="search"],
	.be-search-panel input[type="text"],
	.woocommerce-checkout .input-text,
	.woocommerce-checkout input[type="text"],
	.woocommerce-checkout input[type="email"],
	.woocommerce-checkout input[type="tel"],
	.be-single-reviews .comment-form input[type="text"],
	.be-single-reviews .comment-form input[type="email"],
	.be-single-reviews .comment-form textarea { font-size: 16px; }

	/* titulos/nomes longos nunca estouram a largura da tela */
	.product_title,
	.be-cart-item__name,
	.be-post-title,
	.be-breadcrumb,
	.woocommerce-loop-product__title { overflow-wrap: break-word; word-break: break-word; }
}

/* CELULARES PEQUENOS: header compacto (4 icones + logo + hamburguer cabem em 360px) */
@media (max-width: 480px) {
	:root { --be-pad: 16px; }
	.be-header-inner { gap: 8px; padding-top: 8px; }
	.be-icon { width: 40px; height: 40px; }
	.be-icon svg { width: 23px !important; height: 23px !important; min-width: 23px !important; min-height: 23px !important; }
	.be-cart-count { top: -2px; right: -4px; min-width: 16px; height: 16px; line-height: 16px; font-size: 10px; padding: 0 4px; }
	.be-logo img { max-height: 50px; max-width: 40vw; }
	.be-logo-text { font-size: 17px; }
	.be-nav-toggle { width: 38px; }
}

/* Produto com opcoes: a descricao da opcao aparece no acordeao "Descricao do Produto"
   (trocado pelo theme.js), entao escondemos a copia que o WooCommerce poe abaixo do seletor. */
.be-single .woocommerce-variation-description { display: none; }

/* Newsletter: mensagem de retorno e aviso de consentimento */
.be-news-form { position: relative; }
.be-news-msg { margin: 12px 0 0; min-height: 1.4em; font-size: 14px; line-height: 1.5; }
.be-news-msg.is-ok { color: var(--be-green); font-weight: 500; }
.be-news-msg.is-err { color: #b3261e; }
.be-news-consent { margin: 6px 0 0; font-size: 12px; color: var(--be-muted); max-width: 470px; }
